Урок 3. Первые шаги: root, su и sudo
В Linux есть один всемогущий пользователь — root. Ему разрешено всё: ставить программы, менять настройки, читать и удалять любые файлы. Обычный пользователь может менять только своё. Так система защищена от ошибок и от чужих программ, запущенных от вашего имени.
Как вы будете становиться root, решилось при установке. Если пароль root оставили пустым — через sudo, как в Ubuntu. Если задали — через su -. В этом уроке — оба способа и как перейти от второго к первому.
Какой у вас вариант
Откройте терминал и выполните:
groupsКоманда показывает группы, в которых вы состоите. Найдите среди них слово sudo:
Слово sudo естьу вас уже sudo
Вам доступна команда sudo, и её пароль — ваш собственный. Раздел Поставьте sudo и дайте себе права можно пропустить: всё уже настроено.
Слова sudo нету вас su -
При установке задали пароль root, и администрирование идёт через su -. Ниже — как им пользоваться и как за минуту перейти на sudo.
su — стать root
su -su спросит пароль root (не ваш). Приглашение сменится: вместо ivan@debian:~$ появится root@debian:~# — знак # в конце означает, что вы root. Все команды теперь выполняются с полными правами, без sudo. Вернуться к своему пользователю — командой exit или Ctrl+D.
Минус в том, что # легко не заметить и продолжать работать root дольше, чем нужно. Выполнили нужное — выходите.
Почему с минусом: su и su -
Команда su без минуса тоже делает вас root, но оставляет настройки окружения вашего пользователя — в том числе список папок, где искать программы (переменная PATH). Программы для администратора — usermod, adduser, visudo, sshd — лежат в /usr/sbin, а этой папки в списке обычного пользователя нет. Отсюда частая ошибка:
$ su
Пароль:
# usermod -aG sudo ivan
bash: usermod: команда не найденаС минусом (su -) запускается полноценный вход root со своим окружением, и всё находится. Запомните: в Debian пишут su -, а не su.
Поставьте sudo и дайте себе права
Работать через sudo удобнее: не нужно помнить второй пароль, а каждая команда записывается в журнал. Если пароль root задан при установке, sudo настраивается за минуту. Станьте root и выполните три команды, подставив своё имя пользователя вместо ivan:
su -
apt update
apt install sudo
usermod -aG sudo ivan
exitapt install sudo ничего не сделает, если sudo уже стоит, — это не ошибка. usermod -aG sudo ivan добавляет пользователя в группу sudo; то же делает команда adduser ivan sudo.
Ключ -a обязателен. Без него usermod -G sudo ivan заменит все дополнительные группы пользователя одной группой sudo, и он потеряет остальные права — например, доступ к звуку, флешкам и сети на рабочем столе.
Права начинают действовать после нового входа: выйдите из системы и войдите снова (на рабочем столе — полностью выйдите из сеанса или перезагрузитесь, по SSH — переподключитесь). Проверка:
sudo whoamisudo спросит ваш пароль, символы при наборе не показываются. Ответ root — всё работает.
Нужен ли теперь пароль root
Когда sudo работает, пароль root можно оставить — он пригодится в аварийном режиме загрузки. А можно заблокировать, чтобы root был доступен только через sudo:
sudo passwd -l rootБлокируйте root, только убедившись, что sudo whoami отвечает root. Иначе в системе не останется ни одного способа выполнить команду администратора без загрузки в обход системы.
Обратно пароль задаётся командой sudo passwd root.
Пользователи
Новый пользователь создаётся командой adduser — она в Debian спрашивает пароль и данные о человеке (полное имя и т. п.; необязательные поля можно пропустить клавишей Enter) и создаёт домашнюю папку:
sudo adduser petrЕсть и useradd, но это низкоуровневая команда: без ключей она не создаёт домашнюю папку и не задаёт пароль. Для работы вручную берите adduser.
Полезные команды:
| Задача | Команда |
|---|---|
| Сменить свой пароль | passwd |
| Сменить пароль другому | sudo passwd petr |
| Группы пользователя | groups petr |
| Номер и группы подробно | id petr |
| Дать права администратора | sudo usermod -aG sudo petr |
| Убрать права администратора | sudo deluser petr sudo |
| Удалить пользователя, оставив файлы | sudo deluser petr |
| Удалить вместе с домашней папкой | sudo deluser --remove-home petr |
deluser --remove-home удаляет домашнюю папку со всеми файлами пользователя. Перед этим скопируйте то, что может понадобиться.
Частые ошибки
bash: sudo: команда не найдена(sudo: command not found) — программаsudoне установлена. Поставьте её черезsu -, как выше.ivan is not in the sudoers file—sudoстоит, но пользователя нет в группеsudo. Подробно — в справке Пользователь отсутствует в файле sudoers.su: Authentication failure(Сбой при проверке подлинности) — неверный пароль root, или у root нет пароля вовсе (его оставили пустым при установке). Во втором случае пользуйтесьsudo.- Команда администратора не находится у обычного пользователя — запускайте её через
sudo:sudoищет программы и в/usr/sbin.
Коротко
- Root — всемогущий пользователь; в Debian им становятся через
sudoили черезsu -. su -спрашивает пароль root,sudo— ваш пароль.suбез минуса не находит команды из/usr/sbin— пишитеsu -.- Права через
sudo:apt install sudoиusermod -aG sudo имяот root, потом новый вход. - Пользователей создаёт
adduser, удаляетdeluser, пароль меняетpasswd.