Предполагая, что вы имели в виду : prev
(: p
- это сокращение от : print
, а не : previous
), вы можете добавить файл в список, отредактировав его:
:e filename
Или, если вы не хотите сразу переключаться на новый файл, вы можете добавить его в список аргументов:
:argadd filename
Список буферов отдельный, при редактировании нового файла файл действительно создает буфер, вы можете создать буфер без добавления в список аргументов:
:badd filename
Чтобы пройти по буферам, вы можете выполнить : bn
и : bp
.
Просто настройте свою политику безопасности sudo, создав правило в /etc/sudoers.d
, которое позволяет:
modprobe
и rmmod
, psmouse
, Это именно то, для чего обычно используется '/etc/sudoers.d'. Итак, приступим... (предполагая конфигурацию с одним хостом и помня, что файлы, расположенные в /etc/sudoers.d
, анализируются sudo
в отсортированном лексическом порядке.)
/etc/sudoers
включает строку#include /etc/sudoers.d
/etc/sudoers.d/00_aliases
, где я определяю псевдонимы пользователя, cmd, хоста и группы по вкусу. Таким образом, я не только радикально сокращаю использование sudo visudo
для настройки /etc/sudoers
, который содержит базовые системные настройки -по умолчанию, но и другие мои файлы в /etc/sudoers.d/
получают возможность использовать псевдонимы, сначала проанализированные sudo
в /etc/sudoers.d/00_aliases
. /etc/sudoers.d
, с именем, например, 20 _psmouse Если вы не планируете широко использовать drop -в файлах sudoers.d, вы можетенесоздавать /etc/sudoers.d/00_aliases
и вместо этого включать псевдонимы ad -hoc непосредственно в свой поместите -в файлы, как показано ниже.
User_Alias MOUSE_TWKR = user1[, user2[, user3[,...]]]
Cmnd_Alias MOUSE_MOD_TWK = /usr/bin/modprobe, /usr/bin/rmmod
MOUSE_TWKR your-host = NOPASSWD: MOUSE_MOD_TWK psmouse
Истина в пудинге, поэтому вам нужно будет:
1 )обратитесь кman sudoers
(по Archlinux, примеры начинаются со строки 1911 из 2038 строк !! )и
2 )немного поэкспериментируйте.
Например, если приведенное выше правило является слишком разрешающим, и вы хотите ограничить использование любых параметров вместе с cmds modprobe
и rmmod
в контексте, которым вы управляете, замените запись файла на:
MOUSE_TWKR your-host = NOPASSWD: MOUSE_MOD_TWK [!-] psmouse
...и с обязательным вводом пароля:
MOUSE_TWKR your-host = MOUSE_MOD_TWK [!-] psmouse
(*)замените «ваш -хост» на ваше имя хоста или на ALL
, чтобы разрешить все хосты, что сводится только к вашему хосту, если ваша система является отдельной -одиночной машиной и/или вы не работа с удаленным администратором в подсети, например...
Изменение прав доступа к файлу psmouse.ko
мало что даст, кроме того, что кто-то сможет изменить файл (, что было бы плохо! )Вы можете разрешить им запускать modprobe
и rmmod
, но это тоже будет опасно, потому что теоретически они могут загружать и выгружать любой модуль ядра, установленный в вашей системе!
Вы хотите создать небольшой вспомогательный скрипт и позволить разрешенным пользователям запускать его какroot
:
Сделать скрипты:
/usr/local/bin/load _mouse.sh
#!/bin/sh
/sbin/modprobe psmouse
/usr/local/bin/unload _mouse.sh
#!/bin/sh
/sbin/rmmod psmouse
Скрипты должны находиться в общедоступном -доступном каталоге (Мне нравится /usr/local/bin
, но это личное предпочтение ), с владельцем root:root
и разрешениями 755
. root
Владение не требуется, но людям будет труднее вносить изменения :Помните, что эти сценарии нужно запускать от имени суперпользователя, поэтому вам нужно, чтобы они были безопасными!
Разрешить пользователям запускать их
Используяvisudo
(или добавив перетаскивание -в файле в /etc/sudoers.d
), добавьте следующее:
username ALL=(root) /usr/local/bin/load_mouse.sh,/usr/local/bin/unload_mouse.sh
Замените username
соответствующим именем пользователя или %groupname
, если вы хотите, чтобы члены группы могли запускать это.
Теперь пользователи должны иметь возможность запускать скрипт, используяsudo /usr/local/bin/load_mouse.sh
(илиunload_mouse
). Если /usr/local/bin
находится в их PATH
, то sudo load_mouse.sh
тоже будет работать.
(необязательный )Обернуть вызов sudo
Наконец, вы можете заключить sudo
в другой скрипт, чтобы его было легче набирать/выполнять:
/usr/local/bin/mouse _на
#!/bin/sh
sudo /usr/local/bin/load_mouse.sh
/usr/local/bin/мышь _выкл
#!/bin/sh
sudo /usr/local/bin/unload_mouse.sh
Они не должны иметь каких-либо особых прав, но я предпочитаю, чтобы они принадлежали root:root
с разрешениями 755
. Теперь пользователи могут просто набирать mouse_on
и mouse_off
(, если вы разрешили им запускать сценарии!)