Пользователи в Linux
Основу управления правами доступа в Linux и уровнем привилегий в Linux составляют именно пользователи. Изначально, еще при проектировании системы существовал пользователь root
, которому позволено выполнять любые действия и другие пользователи, права которых настраиваются с помощью вступления их в группы Linux и установки прав на каталоги.
Создание пользователя
Вся информация о пользователях находится в файле /etc/passwd. Мы могли бы создать пользователя linux просто добавив его туда, но так делать не следует, поскольку для этой задачи существуют специальная команда useradd
.
useradd опции имя_пользователя
Основные опции команды, с помощью которых настраивать нового пользователя:
Короткий формат опции |
Описание |
---|---|
-b |
Базовый каталог для размещения домашнего каталога пользователя, по умолчанию /home |
-c |
Комментарий к учетной записи |
-d |
Домашний каталог, в котором будут размещаться файлы пользователя |
-e |
Дата, когда учетная запись пользователя будет заблокирована, в формате ГГГГ-ММ-ДД |
-f |
Заблокировать учетную запись сразу после создания |
-g |
Основная группа пользователя |
-G |
Список дополнительных групп |
-k |
Каталог с шаблонами конфигурационных файлов |
-l |
Не сохранять информацию о входах пользователя в lastlog и faillog |
-m |
Создавать домашний каталог пользователя, если он не существует |
-M |
Не создавать домашнюю папку |
-N |
Не создавать группу с именем пользователя |
-o |
Разрешить создание пользователя linux с неуникальным идентификатором UID |
-p |
Задать пароль пользователя |
-r |
Создать системного пользователя, не имеет оболочки входа, без домашней директории и с идентификатором до SYS_UID_MAX |
-s |
Командная оболочка для пользователя |
-u |
Идентификатор для пользователя |
-D |
Отобразить параметры, которые используются по умолчанию для создания пользователя. Если вместе с этой опцией задать еще какой-либо параметр, то его значение по умолчанию будет переопределено |
Посмотреть какие параметры будут применены для пользователя по умолчанию:
useradd -D
Создание минимального пользователя с минимальными настройками:
sudo useradd имя_пользователя
Создание пользователя и директории по умолчанию в каталоге /home
:
sudo useradd -m имя_пользователя
Посмотреть данные о пользователе:
sudo id имя_пользователя
Задать пароль пользователю
sudo passwd опции имя_пользователя
Короткий формат опции |
Описание |
---|---|
-d |
Удалить пароль пользователя, после этого он не сможет войти |
-e |
Сделать пароль устаревшим |
-i |
Через сколько дней после того, как пароль устарел, отключить аккаунт, если пользователь не сменил пароль |
-l |
Запретить пользователю входить в систему |
-n |
Минимальное количество дней между сменами пароля |
-S |
Отобразить информацию об аккаунте |
-u |
Отменяет действие параметра -l |
-x |
Максимальное количество дней, пока пароль можно использовать |
-w |
Количество дней, после которых нужно предупреждать пользователя о том, что надо сменить пароль |
Удаление пользователя
Для блокировки учетной записи пользователя можно использовать утилиту passwd. Это запретит пользователю доступ к системе и предотвратит запуск новых процессов:
passwd --lock имя_пользователя
Теперь давайте найдем все запущенные от имени пользователя процессы и завершим их:
ps -f --pid $(pgrep -u имя_пользователя)
Теперь, когда вы убедились, что там нет ничего важного, можно уничтожить все процессы:
Killall -9 -u имя_пользователя
Опция -9
говорит программе, что нужно отправить этим процессам сигнал завершения SIGKILL
, а -u
задает имя пользователя.
В основанных на Red Hat
системах, для использования killall
необходимо будет установить пакет psmisc
:
sudo yum install psmisc
Резервное копирование данных пользователя, это вовсе не обязательно. Для этого можно использовать, например, утилиту tar
:
sudo tar jcvf /user-backups/имя_пользователя-backup.tar.bz2 /home/имя_пользователя
Теперь, когда все подготовлено, начинаем удаление пользователя:
deluser --remove-home имя_пользователя
Если нужно удалить все файлы, принадлежащие пользователю в системе используйте опцию --remove-all-files
, только будьте с ней осторожны, так и важные файлы можно затереть:
deluser --remove-all-files имя_пользователя