0887 371 498 support@itservice-bg.net
16.12.2016 · Самуил Арсов · Debian, Linux commands, Ubuntu

Потребители, 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 — вижте как подсигуряваме сървър зад рутера.