Для пояснения: нет никаких «команд sudo», есть только команды, которым для корректной работы требуются привилегии root, и sudo
это команда для получения их для одной команды: sudo
просто запускает данную команду как root (читается как «sudo» как императив предложение "суперпользователь, сделай что-нибудь!"). Правила, по которым пользователи могут это делать, записаны в /etc/sudoers
. При установке по умолчанию в Raspbian пользователь по умолчанию "pi" получает свои разрешения из этой строки:
pi ALL=(ALL) NOPASSWD: ALL
Это означает: «пользователю 'pi' на ВСЕХ хостах разрешено переключаться на ВСЕХ пользователей, и ему НЕ нужно вводить свой ПАРОЛЬ при использовании ВСЕХ (читай: любых) команд". (Я использовал сумасшедшую грамматику здесь, чтобы сохранить порядок строк. Примечание о том, почему существует способ различать хосты: таким образом, один и тот же файл sudoers может быть распределен по нескольким машинам в сети, поэтому у сетевого администратора меньше работы) ,
Может случиться так, что возможность запускать команды с использованием sudo без ввода пароля администратора - это причина, по которой вы считаете опасным использование sudo через SSH (я не слышал об общей проблеме с этим ... так что вы могли бы объясните, какую именно опасность вы имеете в виду?).
Конечно, у вас может быть несколько пользователей с разными разрешениями. Но я боюсь, что использование sudo все еще является лучшим способом управления этими разрешениями.
Итак, я надеюсь, что этот маленький рецепт здесь то, что вам нужно:
$ sudo adduser admin
Это создаст пользователя «admin», попросит пароль, создаст его домашний каталог и т. Д.
$ sudo adduser admin sudo
$ sudo adduser admin adm
Это поместит пользователя «admin» в группы «sudo» и «adm». А поскольку разрешениями в Linux управляют путем добавления пользователей в группы пользователей, это дает пользователю «admin» все необходимые ему разрешения и разрешения. Есть строка, /etc/sudoers
которая позволяет любому пользователю, входящему в группу "sudo", выполнять любую команду от имени пользователя root; и эта привилегия - то, что нам нужно для пользователя с правами администратора (добавление его в «adm» позволяет ему читать некоторые файлы журнала /var/log
без использования sudo
и некоторые другие вещи). Вам все еще нужно использовать, sudo
когда вы вошли в систему как администратор - но теперь sudo снова и снова запрашивает пароль администратора, если вы не использовали sudo в течение пяти минут.
Теперь выйдите и войдите как пользователь "admin". Проверьте,
$ sudo apt-get update
$ sudo apt-get upgrade
работает. Если это так, вы можете отозвать некоторые привилегии пользователя «pi», потому что теперь вы уверены, что у вашего администратора есть нужные привилегии:
$ sudo deluser pi sudo
$ sudo deluser pi adm
Это выбрасывает пользователя "pi" из группы пользователей "sudo".
$ sudo visudo
Это запустит редактор, который позволит вам редактировать /etc/sudoers
. Поместите хэш-тег ( #
) перед строкой, начинающейся с «пи», закомментировав ее (или просто удалите). Затем сохраните и выйдите из редактора, visudo немедленно перезагрузит правила привилегий. Теперь пользователю "pi" больше не разрешено использовать sudo.
После этого вы можете повторно войти в систему как пользователь «пи». Если вы когда-нибудь захотите переключиться на администратора для некоторых команд, используйте su
(«переключить пользователя»):
$ su - admin
Если вы хотите добавить больше пользователей: используйте, sudo adduser <name>
как указано выше, затем проверьте список групп пользователей, которые есть у пользователя "pi":
$ groups pi
pi : pi dialout cdrom audio video plugdev games users netdev input
Используйте, sudo adduser <username> <groupname>
чтобы добавить своего нового пользователя в несколько из этих групп пользователей, позволяя ему использовать аудио, ускоренное видео, использовать подключаемые устройства и т. Д. Если не уверены, добавьте его во все эти группы пользователей (но не в «sudo»!).