Нежданно поддавшись паранойе я решил что слишком слабо защищен от взлома по сети, поэтому, покопавшись в интернете пришел к довольно простому решению, на мой скромный взгляд. Вполне подходящему для большинства пользователей, не слишком желающих разбираться в тонкостях безопасности системы. Вот его принцип: для поднятия уровня сохранности выключаем возможность залогиниться в системе под рутом, придумываем и устанавливаем новый супер сложноватый пароль для собственного пользователя. Все! Все гениальное просто! Но всегда есть но. Новый сложный пароль желанно вписать на бумажный носитель или в текстовый файл (главное в безопасном месте) чтобы не позабыть, по-другому без рута при утере пароля поможет только Live диск. И еще одно но, наиболее основное: при сложном пароле пользователя администрировать систему становится крайне неудобно, так как любой раз включать пароль, особенно когда не помнишь его наизусть несколько проблематично.
Для этого нам потребуется флешка. Другая. Причем после всех манипуляций с флешкой ею по-прежнему можно станет пользоваться как как обычно. В чем суть: флешка будет своего рода физическим ключем доступа к управлению пк. Подключили флешку — можете редактировать конфиги, устанавливать/удалять приложения без ввода пароля (относительное слово или набор знаков, предназначенный для подтверждения личности или полномочий). Выключили — все тоже наиболее сможете делать, но уже как обычно, после ввода пароля пользователя. На мой взгляд удобно. Значит так, теперь конкретные шаги по реализации задуманного. Чтобы ключем была лишь один-единственная выбранная нами флешка нужно однозначно ее идентифицировать. Сделать это можно по ее массовому номеру, он чудесен. За подсказку спасибо пользователю русскоязычного форума archlinux 52th. Подключаем флешку, оприделяем плагиированное ей в системе имя командой от рута (его мы еще не отключили):
fdisk - l
Интересует только присвоенная литера после sd. Номер разоблачила на флешке нам не нужен. Допустим это буква b, тогда следующей командой мы определим уникальный серийный номер флешки:
udevadm info - a - p /sys/block/sdb | grep serial
Вывод будет подобен этому:
ATTRS{serial}=="1234567898765432"
Его запоминаем. Теперь в папке /etc/udev/rules. d создаваем файл 10-tmp-root. rules:
ACTION=="add" KERNEL=="sd[a-z]" ATTRS{serial}=="1234567898765432" RUN=="/usr/bin/systemctl start tmp-root"
ACTION=="remove" KERNEL=="sd[a-z]" ATTRS{serial}=="1234567898765432" RUN=="/usr/bin/systemctl stop tmp-root"
В какой-никаком прописываем серийный номер флешки. Этот файл будет запускать сервис tmp-root при вложенье флешки (-флеш-накопитель (сленг) и останавливать его при отключении.
Далее идем в папку /etc/systemd/system и творим в ней вышеупомянутый сервис tmp-root. service со следующим содержимым:
[Unit]
Description=Temporary Root privileges for regular user
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/sh /home/user/.local/bin/tmp-root-start
ExecStop=/usr/bin/sh /home/user/.local/bin/tmp-root-stop
[Install]
WantedBy=multi-user. target
Вместо user не забудьте вставить имя своего пользователя.
Теперь для правильной работы сервиса нужно создать два скрипта в папке /home/user/.local/bin. Для старта сервиса tmp-root-start:
#!/bin/bash
sed - i 's/# %wheel ALL=(ALL) NOPASSWD: ALL/%wheel ALL=(ALL) NOPASSWD: ALL/g' /etc/sudoers. d/10-tmp-root
И для задержки сервиса tmp-root-stop:
#!/bin/bash
sed - i 's/%wheel ALL=(ALL) NOPASSWD: ALL/# %wheel ALL=(ALL) NOPASSWD: ALL/g' /etc/sudoers. d/10-tmp-root
Эти скрипты запросто комментируют и раскомментируют строку в файле 10-tmp-root, который осталось создать в папке /etc/sudoers. d:
# %wheel ALL=(ALL) NOPASSWD: ALL
Сначало строчка закомментирована, чтобы соответствовать состоянию системы при остановленном сервисе.
На этом шаге все нужные файлы созданы. Осталось только отключить рута.
Для этого выполним команду:
passwd - l root
Все, наладка завершена. Теперь при подключении флешки можно администрировать систему без ввода пароля, впрочем нужно вводить перед каждой командой sudo. Чтобы этого избежать (так как вдобавок не совсем удобно) можно или написать алиасы в. bashrc на часто используемые команды, или ввести в терминале:
sudo su
Тем самым залогинившись в системе под рутом без ввода пароля, несмотря на то что идентификатор с паролем (только с паролем!) под рутом мы отключили. Как только вы отсоединяете флешку, возможность залогиниться под рутом пропадает, а администрировать систему можно по прежнему с помощью sudo вводя пароль своего пользователя. Вернуть возможность логиниться под рутом можно следующей командой:
sudo passwd - u root
И ввести новый пароль для рута.

