Потребители, sudo и root в Ubuntu и Debian
Управлението на потребители е първото нещо, което се прави на нова машина. Отделни акаунти с точно толкова права, колкото им трябват, са разликата между сървър, който преживява грешка, и сървър, който не я преживява. Тук са трите обичайни задачи: нов потребител със sudo, работа като root и въпросът дали root изобщо да има достъп по SSH.
Нов потребител със sudo права
Създаваме нов потребител с име Иван:
samyil@host2:~$ sudo adduser ivan
Терминалът подканва да зададем парола:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
След това иска служебна информация, която не е задължителна — натискаме Enter за всяко поле:
Changing the user information for username
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
За да получи Иван sudo права, добавяме го в групата sudo:
samyil@host2:~$ sudo usermod -aG sudo ivan
Проверка
Влизаме като Иван и проверяваме дали може да чете root директорията:
samyil@host2:~$ su ivan
ivan@host2:~$ sudo ls -la /root
Ако правата са зададени правилно, командата изброява съдържанието на /root. Ако Иван не е добавен коректно в групата, отговорът е:
ivan is not in the sudoers file. This incident will be reported.
Групите на потребителя се виждат и направо:
id ivan
groups ivan
Промяната влиза в сила при следващото влизане на потребителя. Обратното — отнемане на правата — става със същата команда, но с -r:
sudo gpasswd -d ivan sudo
sudo права се дават само на доверени потребители — те означават пълен административен контрол върху машината.
Работа като root
Преминаване към root от потребител със sudo права:
$ sudo su
На самия root може да се зададе парола, ако това е нужно за конзолен достъп:
# passwd
В Ubuntu root по подразбиране няма парола и това не е пропуск, а решение — всичко минава през sudo, което оставя следа в лога кой какво е направил. Задавайте парола на root само когато имате конкретна причина.
root вход по SSH — и защо обикновено не бива
За да се разреши, се редактира конфигурационният файл на демона:
# nano /etc/ssh/sshd_config
Намираме реда PermitRootLogin prohibit-password и го подменяме с PermitRootLogin yes. След това рестартираме демона, за да влязат правилата в сила:
# service ssh restart
След тази операция root има директен достъп по SSH от отдалечена машина.
Внимание. root вход с парола по SSH е удобен в лаборатория, но на публично достъпен сървър е лоша практика — root е първата цел на всеки brute-force и единственото име, което атакуващият знае със сигурност. На производствени машини оставете PermitRootLogin prohibit-password (вход само с ключ) и защитете SSH с fail2ban — вижте как подсигуряваме сървър зад рутера.