Щоб трохи уточнити: "Судо команди" немає, є лише команди, для коректної роботи яких потрібні кореневі привілеї, і sudo
це команда для отримання їх для однієї команди: sudo
просто запускає дану команду як root (читати "sudo" як імператив) речення "суперперукар, роби щось!"). Правила, щодо яких користувачі можуть це робити, записані в /etc/sudoers
. Під час встановлення програми Raspbian за замовчуванням користувач "pi" отримав свої дозволи з цього рядка:
pi ALL=(ALL) NOPASSWD: ALL
Це означає: "Користувачеві" pi "на ВСІХ хостах дозволено перемикатися на ВСІХ користувачів та чи НЕ повинен вводити свій PASSWD при використанні ВСІХ (читання: будь-яких) команд". (Я використовував тут шалену граматику, щоб зберегти порядок рядка. Примітка про те, чому існує спосіб розрізнити хости: таким чином, один і той же файл sudoers може бути поширений на декілька машин у мережі, щоб адміністратор мережі мав менше роботи) .
Це може бути те, що можливість запускати команди за допомогою sudo без видачі пароля адміністратора - це пункт, чому ви вважаєте, що використовувати sudo через SSH небезпечно (я не чув про загальну проблему з цим ... так що ви могли б поясніть, яку саме небезпеку ви маєте на увазі?).
Впевнені, що у вас може бути кілька користувачів із різними дозволами. Але я боюся, що використання sudo все ще є найкращим способом управління цими дозволами.
Отож, я сподіваюся, що ось цей маленький рецепт - це те, що вам потрібно:
$ sudo adduser admin
Це створить у користувача "адміністратора", запитає пароль, створить його домашній каталог тощо.
$ sudo adduser admin sudo
$ sudo adduser admin adm
Це додасть користувача "admin" до груп користувачів "sudo" та "adm". А оскільки дозволами керують в Linux шляхом додавання користувачів до груп користувачів, це надає користувачеві "адміністратор" всі привілеї та дозволи, які йому потрібні. Існує рядок, /etc/sudoers
який дозволяє будь-якому користувачеві, який знаходиться в групі користувачів "sudo", виконувати будь-яку команду як root; і ця привілей - це те, що нам потрібно для користувача адміністратора (додавання його до "adm" дозволяє йому читати деякі файли журналу /var/log
без використання sudo
та ще декілька речей). Вам все одно потрібно використовувати, sudo
коли ви ввійшли як адміністратор - але тепер sudo знову і знову запитує пароль адміністратора, коли ви не використовували sudo протягом п’яти хвилин.
Тепер вийдіть із системи та увійдіть як "адміністратор" користувача. Перевірте, чи
$ sudo apt-get update
$ sudo apt-get upgrade
працює. Якщо це так, ви можете скасувати деякі привілеї користувача "pi", тому що ви впевнені, що користувач адміністратора має правильні привілеї:
$ sudo deluser pi sudo
$ sudo deluser pi adm
Це викидає користувача "пі" з групи "sudo".
$ sudo visudo
Це запустить редактор, який дозволяє редагувати /etc/sudoers
. Поставте хеш-тег ( #
) перед рядком, що починається з "пі", коментуючи його (або просто видаліть). Потім збережіть та вийдіть із редактора, visudo потім негайно перезавантажить правила привілеїв. Тепер користувачеві "pi" заборонено більше використовувати судо.
Після цього ви можете повторно ввійти як користувач "pi". Якщо ви хочете перейти до адміністратора для деяких команд, використовуйте 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"!).