Удаление пользователя из системы Linux
17.01.2022Если вы хотите удалить пользователя из системы, вам нужна команда userdel. По умолчанию команда userdel удаляет только информацию о пользователе из файлов /etc/passwd и /etc/shadow. Он не удаляет в системе файлы, принадлежащие учетной записи.
Если вы используете параметр -r, userdel удалит пользовательский каталог $HOME вместе с почтовым каталогом пользователя. Однако в системе могут оставаться другие файлы, принадлежащие удаленной учетной записи пользователя. Это может быть проблемой в некоторых средах.
Вот пример использования команды userdel для удаления существующей учетной записи пользователя:
# userdel -r test
# ls -al /home/test
ls: cannot access /home/test: No such file or directory
После использования параметра -r старый каталог пользователя /home/test больше не существует.
Будьте осторожны при использовании параметра -r в среде с большим количеством пользователей. Вы никогда не знаете, были ли у пользователя важные файлы, хранящиеся в его каталоге $HOME, которые используются кем-то другим или другой программой. Всегда проверяйте перед удалением каталога $HOME пользователя!
Изменение пользователя
Linux предоставляет несколько утилит для изменения информации о существующих учетных записях пользователей. Таблица внизу показывает эти утилиты:
Команда | Описание |
usermod | Редактирует поля учетной записи пользователя и указывает членство в первичной и вторичной группах. |
passwd | Изменяет пароль для существующего пользователя |
chpasswd | Читает файл с парами логина и пароля и обновляет пароли |
chage | Изменяет срок действия пароля |
chfn | Изменяет информацию о комментариях учетной записи пользователя. |
chsh | Изменяет оболочку учетной записи пользователя по умолчанию |
Каждая утилита предоставляет определенную функцию для изменения информации об учетных записях пользователей. В следующих разделах описывается каждая из этих утилит.
usermod
Команда usermod — самая надежная из утилит модификации учетной записи пользователя. Он предоставляет опции для изменения большинства полей в файле /etc/passwd. Для этого вам просто нужно использовать параметр командной строки, соответствующий значению, которое вы хотите изменить. Параметры в основном такие же, как и
параметры useradd (например, -c для изменения поля комментария, -e для изменения даты истечения срока действия и -g для изменения группы входа по умолчанию). Тем не менее, несколько дополнительных параметров могут пригодиться:-l изменить имя входа в учетную запись пользователя
-L, чтобы заблокировать учетную запись, чтобы пользователь не мог войти в систему
-p изменить пароль для учетной записи
-U, чтобы разблокировать учетную запись, чтобы пользователь мог войти в систему
Параметр -L особенно удобен. Используйте его, чтобы заблокировать учетную запись, чтобы пользователь не мог войти в систему, не удаляя учетную запись и данные пользователя. Чтобы вернуть учетную запись в нормальное состояние, просто используйте параметр -U.
passwd and chpasswd
Быстрый способ изменить только пароль для пользователя — команда passwd:
# passwd test
Changing password for user test.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
#
Если вы просто используете команду passwd отдельно, она изменит ваш собственный пароль. Любой пользователь в системе может изменить свой пароль, но только пользователь root может изменить чужой пароль.
Опция -e — это удобный способ заставить пользователя сменить пароль при следующем входе в систему. Это позволяет вам установить пароль пользователя на простое значение, а затем заставить его изменить его на что-то более сложное, что они смогут запомнить.
Если вам когда-нибудь понадобится выполнить массовую смену паролей для большого количества пользователей в системе, команда chpasswd может стать спасением. Команда chpasswd считывает список пар имени пользователя и пароля (разделенных двоеточиями) из стандартного ввода, автоматически шифрует пароль и устанавливает его для учетной записи пользователя. Вы также можете использовать команду перенаправления, чтобы перенаправить файл с парами имя пользователя: password в команду:
# chpasswd < users.txt
chsh, chfn and chage
Утилиты chsh, chfn и chage используются для определенных функций изменения учетной записи. Команда chsh позволяет быстро изменить оболочку входа пользователя по умолчанию. Вы должны использовать полный путь к оболочке, а не только имя оболочки:
# chsh -s /bin/csh test
Changing shell for test.
Shell changed.
Команда chfn предоставляет стандартный метод сохранения информации в поле комментариев в файле /etc/passwd. Вместо того, чтобы просто вставлять случайный текст, такой как имена или псевдонимы или даже просто оставлять поле комментария пустым, команда chfn использует специальную информацию, используемую в команде Unix finger, для сохранения информации в поле комментария. Команда finger позволяет легко найти информацию о людях в вашей системе Linux:
# finger rich
Login: rich
Name: Rich Blum
Directory: /home/rich
Shell: /bin/bash
On since Thu Sep 20 18:03 (EDT) on pts/0 from 192.168.1.2
No mail.
No Plan.
Из соображений безопасности большинство дистрибутивов Linux по умолчанию не устанавливают команду finger. Имейте в виду, что его установка может открыть вашу систему для атак.
Если вы используете команду chfn без параметров, она запрашивает у вас соответствующие значения для ввода в поле комментария:
# chfn test
Changing finger information for test.
Name []: Ima Test
Office []: Director of Technology
Office Phone []: (123)555-1234
Home Phone []: (123)555-9876
Finger information changed.
# finger test
Login: test
Name: Ima Test
Directory: /home/test
Shell: /bin/csh
Office: Director of Technology
Office Phone: (123)555-1234
Home Phone: (123)555-9876
Never logged in.
No mail.
No Plan.
Если вы сейчас проверите запись в файле /etc/passwd, она будет выглядеть так:
# grep test /etc/passwd
test:x:504:504:Ima Test,Director of Technology,(123)555-
1234,(123)555-9876:/home/test:/bin/csh
Вся finger информация аккуратно хранится в записи файла /etc/passwd.
Наконец, команда chage помогает управлять процессом устаревания паролей для учетных записей пользователей. Существует несколько параметров для установки индивидуальных значений, как показано в этой таблице:
Параметр | Описание |
-d | устанавливает количество дней с момента последней смены пароля |
-E | устанавливает дату истечения срока действия пароля |
-I | устанавливает количество дней бездействия после истечения срока действия пароля для блокировки учетной записи |
-m | устанавливает минимальное количество дней между сменой пароля |
-M | устанавливает максимальное количество дней действия пароля. |
-W | устанавливает количество дней до истечения срока действия пароля, за которое появляется предупреждающее сообщение. |
Значения даты изменения могут быть выражены одним из двух способов:
Дата в формате ГГГГ-ММ-ДД
Числовое значение, представляющее количество дней с 1 января 1970 г.
Одной из полезных функций команды chage является то, что она позволяет вам установить срок действия учетной записи. Используя эту функцию, вы можете создавать временные учетные записи пользователей, срок действия которых автоматически истекает в установленную дату и вам не нужно помнить об их удалении! Учетные записи с истекшим сроком действия аналогичны заблокированным учетным записям. Учетная запись все еще существует, но пользователь не может войти с ее помощью.