Просто настройте свою политику безопасности 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
, чтобы разрешить все хосты, что сводится только к вашему хосту, если ваша система является отдельной -одиночной машиной и/или вы не работа с удаленным администратором в подсети, например...
Вывод du
основан на статистике уровня файловой системы -, тогда какncdu
(и обычныйdu
)генерируют свои результаты путем сканирования каталогов, считывания размеров отдельных файлов и их суммирования.
Если команды стиляdu
-выполняются от имени пользователя, отличного от -root, им необязательно будет иметь полный доступ ко всем каталогам, и поэтому они не смогут видеть все.
Попробуйте запустить du -hs /
и сравните его результаты с «общим использованием диска», сообщаемым ncdu /
. Вы можете обнаружить, что результаты похожи... и с du
вы также можете увидеть сообщения о группе каталогов, к которым команда не имеет доступа и поэтому не принимает их во внимание. То же самое, вероятно, верно и для ncdu
, но он просто скрывает сообщения об ошибках.
Кроме того, мне кажется, что ncdu
мог не быть обновлен для понимания виртуальных файловых систем современных дистрибутивов Linux и может запутаться в них. В моей системе Debian 10 ncdu /
сообщает:
Total disk usage: 75.6 GiB Apparent size: 128.1 TiB Items: 469143
В моем случае «Видимый размер» явно бессмыслен и бесполезен. «Общее использование диска» примерно такое же, как то, что я получаю с du -hs /
... но, поскольку это включает в себя количество виртуальных файловых систем на основе RAM -(devtmpfs
, tmpfs
), это число также вряд ли будет очень полезно.
Но если я ограничу команду только одной файловой системой (, например. ncdu -x /
), я, кажется, получаю более разумные результаты, которые также совпадают с выводом du -shx /
с точностью до ошибки округления, а также с выводом df -h
, если вспомнить, что файловой системе может потребоваться некоторое пространство для ее внутренних метаданных.
Другим возможным источником ошибок может быть использование расширенных функций файловой системы, таких как моментальные снимки файловой системы BTRFS. Конечно, у вас может быть только 1,8 ГБ файлов в вашей корневой файловой системе, но если файловая система также содержит два снимка своих предыдущих состояний,общий объем используемого дискового пространства может быть в 3 раза больше, чем сумма размеров файлов, которую вы могли бы ожидать (и любуюdu
-подобную команду ).
Поскольку команда df
получает информацию, запрашивая драйвер файловой системы, большее «используемое» значение, сообщаемое ею, может включать моментальные снимки, которые в противном случае могли бы быть невидимыми до тех пор, пока к ним не будет получен доступ с помощью надлежащего метода.