Syntax highlighting of linux/users
= Users & Groups = <<TableOfContents()>> == Теория == Почти все операционные системы Linux — многопользовательские. Администратор Linux должен уметь создать и настраивать пользователей. В Linux есть 3 группы пользователей: * '''Администраторы''' — привелегированные пользователи с полным доступом к системе. По умолчанию в ОС есть такой пользователь — root * '''Локальные пользователи''' — их учётные записи создаёт администратор, их права ограничены. Администраторы могут изменять права локальных пользователей * '''Системные пользователи''' — учетный записи, которые создаются системой для внутрениих процессов и служб. Например пользователь — nginx У каждого пользователя есть свой уникальный идентификатор — '''UID'''. Чтобы упростить процесс настройки прав для новых пользователей, их объединяют в группы. Каждая группа имеет свой набор прав и ограничений. Любой пользователь, создаваемый или добавляемый в такую группу, автоматически их наследует. Если при добавлении пользователя для него не указать группу, то у него будет своя, индивидуальная группа — с именем пользователя. Один пользователь может одновременно входить в несколько групп. Информацию о каждом пользователе сервера можно посмотреть в файле /etc/passwd Для более точных настроек пользователей можно использовать подключаемые модули аутентификации (PAM). '''PAM''' (Pluggable Authentication Modules - подключаемые модули аутентификации) — набор библиотек, которые позволяют интегрировать различные методы аутентификации в виде единого API. PAM решает следующие задачи: * '''Аутентификация''' — процесс подтверждения пользователем своей подлиности. Например: ввод логина и пароля, ssh-ключ и т д. * '''Авторизация''' — процесс наделения пользователя правами * '''Отчетность''' — запись информации о произошедших событиях PAM может быть реализован несколькоми способами: * Модуль ''pam_time'' — настройка доступа для пользователя с учётом времени * Модуль ''pam_exec'' — настройка доступа для пользователей с помощью скириптов == Полезные команды == {{{#!highlight bash # --- создание нового пользователя adduser user # --- добавление пользователя в группу sudo adduser user sudo # --- задать пароль пользователю sudo passwd username # --- список пользователей cut -d: -f1 /etc/passwd # --- список групп, в которых состоит пользователь groups username # --- удаление пользователя и домашней директории sudo deluser --remove-home userNameHere }}} == Как это сделать == === Отключаем пароль для sudo === [[https://security.stackexchange.com/questions/9308/sudo-password-when-authenticating-via-passwordless-ssh|source1|class=" moin-https"]][[https://www.digitalocean.com/community/questions/disable-password-ssh-works-ubuntu|source2|class=" moin-https"]][[https://askubuntu.com/questions/894237/disabling-ssh-password-login-for-ubuntu/894244|source3|class=" moin-https"]][[https://askubuntu.com/questions/869945/how-to-disable-password-and-root-ssh|source4|class=" moin-https"]] Устанавливаем vim как редактор для конфигурация {{{#!highlight bash sudo update-alternatives --config editor }}} Отключаем ввод пароля sudo {{{#!highlight bash sudo visudo # Меняем строку %sudo ALL=(ALL:ALL) ALL # на строку %sudo ALL=NOPASSWD: ALL }}} === Отключаем пароль sudo для пользователя === Отключаем пароль sudo для конкретного пользователя - https://losst.ru/otklyuchaem-parol-sudo-v-linux Добавляем в конце файла {{{#!highlight bash # ... zoid ALL=(ALL) NOPASSWD: ALL }}} Отключаем возможность авторизации через пароль {{{#!highlight bash sudo vim /etc/ssh/sshd_config PermitRootLogin no ChallengeResponseAuthentication no PasswordAuthentication no }}} {{{#!highlight bash sudo service ssh restart }}} === Отключаем пароль sudo для команд === [[https://stackoverflow.com/a/45071759/4498602|source|class=" moin-https"]] {{{#!highlight bash # --- create specific file with username sudo visudo -f /etc/sudoers.d/myuser # --- add line myuser ALL=(ALL) NOPASSWD: /usr/sbin/service nginx start,/usr/sbin/service nginx stop,/usr/sbin/service nginx restart # --- close and test (maybe re-login) sudo /usr/sbin/service nginx stop # no password needed }}}
