Для управления пользователями существует ряд основных команд:
useradd — регистрирует нового пользователя или изменяет информацию по умолчанию о новых пользователях;
usermod — изменяет учётную запись пользователя;
userdel — удаляет учётную запись и файлы пользователя;
passwd — изменяет пароль пользователя.
И некоторые другие. Далее небольшие примеры использования каждой команды.
useradd
Создаем пользователя test01 (без домашнего каталога и без пароля):
useradd test01
Создаем пользователя test01 с домашним каталогом /home/test01:
useradd -m -d /home/test01 test01
-m — создать домашний каталог пользователя
-d — домашний каталог новой учётной записи
Примечание: удобство использования ключей -m и -d в том, что автоматически созданный каталог уже будет иметь необходимые права. Если каталог вы будете создавать отдельно, то придется менять владельца командой chown и возможно разрешения по умолчанию командой chmod. Подробнее читайте в статье .
Создаем пользователя testuser01 с домашним каталогом /home/testuser01, оболочкой /bin/bash и паролем Qwerty123:
useradd -g testgroup01 -m -d /home/testuser01 -s /bin/bash -p Qwerty123 testuser01
-g — имя или ID первичной группы новой учётной записи
-s — оболочка новой учётной записи
-p — зашифрованный пароль новой учётной записи
Примечание: если вы создаете учетную запись для служебных задач и не планируете чтобы кто-то под ней реально логинился, то есть смысл установить окружение /bin/false.
Надо отметить, что вводить пароль в открытом виде в командную строку не совсем правильно, лучше использовать две команды последовательно:
useradd -g testgroup01 -m -d /home/testuser01 -s /bin/bash testuser01
passwd testuser01
В этом случае вы устанавливаете пароль отдельной командой и он не запоминается в кэше командной строки, этот способ более предпочтителен.
usermod
Смена имени пользователя testuser01 на testuser02:
usermod -l testuser02 testuser01
-l Имя пользователя будет изменено с testuser01 на testuser02. Больше ничего не меняется. В частности, вероятно, должно быть изменено имя домашнего каталога и почтового ящика.
Изменение первичной группы пользователя testuser02 на группу testgroup02:
usermod -g testgroup02 testuser02
-g — Имя или числовой идентификатор новой первичной группы пользователя. Группа с таким именем должна существовать. Все файлы в домашнем каталоге пользователя, принадлежавшие предыдущей первичной группе пользователя, будут принадлежать новой группе. Группового владельца файлов вне домашнего каталога нужно изменить вручную.
Создание нового домашнего каталога /home/testuser02 пользователя testuser02 и перенос данных из старого в новый:
usermod -d /home/testuser02 -m testuser02
-d — Домашний каталог нового пользователя. Если указан параметр -m, то содержимое текущего домашнего каталога будет перемещено в новый домашний каталог, который будет создан, если он ещё не существует.
-m — Переместить содержимое домашнего каталога в новое место. Этот параметр можно использовать только с параметром -d (или —home). Команда usermod пытается изменить владельцев файлов и копирует права, ACL и расширенные атрибуты, но после неё всё равно могут потребоваться некоторые ручные действия.
В принципе для команды usermod ничего интересного больше нет, разве что кроме предупреждения в «манах»:
Переходим к следующей команде.
userdel
Удаление пользователя testuser02. Домашний каталог и файлы в нем останутся нетронутыми:
userdel testuser02
Удаление пользователя testuser02 вместе с домашним каталогом и файлами в нем, а также почтового ящика, если он есть:
userdel -r testuser02
passwd
Отобразить состояние текущей учетной записи (имя, инф. о пароле, дата последнего изменения пароля, минимальный срок, максимальный срок, период выдачи предупреждения, период неактивности пароля):
root@debian7:~# passwd -S
Отображение состояния всех учетных записей:
root@debian7:~# passwd -S -a
Задать пароль для учетной записи testuser02:
root@debian7:~# passwd testuser02
Обычный пользователь может изменить пароль только своей учётной записи, суперпользователь может изменить пароль любой учётной записи.
Об основных командах все. Ниже есть информация о других вспомогательных командах, связанных с пользователями.
Дополнительные команды
id — Print user and group information for the specified USERNAME, or (when USERNAME omitted) for the current user;
groups — print the groups a user is in;
last, lastb — show listing of last logged in users.
Отобразить информацию о трех последних входах в систему пользователя root:
root@debian7:~# last -n 3 root
lastlog — выводит отчёт о последней регистрации в системе всех или указанного пользователя
logname — print user´s login name.
whoami — Print the user name associated with the current effective user ID.
mesg — control write access to your terminal.
Включение приема сообщений от пользователей, отправленных с помощью команды write:
root@debian7:~# mesg y
su — изменяет ID пользователя или делает его суперпользователем
sudo, sudoedit — execute a command as another user
По поводу корректности использований той или иной команды есть масса рассуждений, например, в статье «»
Но кратко вывод можно сформулировать следующим образом — пользоваться «su» уже не кошерно. Вот так, например, можно поставить программу sudo (да и любые другие) от обычного пользователя, зная пароль рута:
su -c «apt-get install sudo» root
users — print the user names of users currently logged in to the current host
w — Show who is logged on and what they are doing.
who — show who is logged on
write — send a message to another user
useradd — регистрирует нового пользователя или изменяет информацию по умолчанию о новых пользователях;
usermod — изменяет учётную запись пользователя;
userdel — удаляет учётную запись и файлы пользователя;
passwd — изменяет пароль пользователя.
И некоторые другие. Далее небольшие примеры использования каждой команды.
useradd
Создаем пользователя test01 (без домашнего каталога и без пароля):
useradd test01
Создаем пользователя test01 с домашним каталогом /home/test01:
useradd -m -d /home/test01 test01
-m — создать домашний каталог пользователя
-d — домашний каталог новой учётной записи
Примечание: удобство использования ключей -m и -d в том, что автоматически созданный каталог уже будет иметь необходимые права. Если каталог вы будете создавать отдельно, то придется менять владельца командой chown и возможно разрешения по умолчанию командой chmod. Подробнее читайте в статье .
Создаем пользователя testuser01 с домашним каталогом /home/testuser01, оболочкой /bin/bash и паролем Qwerty123:
useradd -g testgroup01 -m -d /home/testuser01 -s /bin/bash -p Qwerty123 testuser01
-g — имя или ID первичной группы новой учётной записи
-s — оболочка новой учётной записи
-p — зашифрованный пароль новой учётной записи
Примечание: если вы создаете учетную запись для служебных задач и не планируете чтобы кто-то под ней реально логинился, то есть смысл установить окружение /bin/false.
Надо отметить, что вводить пароль в открытом виде в командную строку не совсем правильно, лучше использовать две команды последовательно:
useradd -g testgroup01 -m -d /home/testuser01 -s /bin/bash testuser01
passwd testuser01
В этом случае вы устанавливаете пароль отдельной командой и он не запоминается в кэше командной строки, этот способ более предпочтителен.
usermod
Смена имени пользователя testuser01 на testuser02:
usermod -l testuser02 testuser01
-l Имя пользователя будет изменено с testuser01 на testuser02. Больше ничего не меняется. В частности, вероятно, должно быть изменено имя домашнего каталога и почтового ящика.
Изменение первичной группы пользователя testuser02 на группу testgroup02:
usermod -g testgroup02 testuser02
-g — Имя или числовой идентификатор новой первичной группы пользователя. Группа с таким именем должна существовать. Все файлы в домашнем каталоге пользователя, принадлежавшие предыдущей первичной группе пользователя, будут принадлежать новой группе. Группового владельца файлов вне домашнего каталога нужно изменить вручную.
Создание нового домашнего каталога /home/testuser02 пользователя testuser02 и перенос данных из старого в новый:
usermod -d /home/testuser02 -m testuser02
-d — Домашний каталог нового пользователя. Если указан параметр -m, то содержимое текущего домашнего каталога будет перемещено в новый домашний каталог, который будет создан, если он ещё не существует.
-m — Переместить содержимое домашнего каталога в новое место. Этот параметр можно использовать только с параметром -d (или —home). Команда usermod пытается изменить владельцев файлов и копирует права, ACL и расширенные атрибуты, но после неё всё равно могут потребоваться некоторые ручные действия.
В принципе для команды usermod ничего интересного больше нет, разве что кроме предупреждения в «манах»:
Вы должны убедиться, что от указанного пользователя не запущено никаких процессов, если при выполнении этой команды изменяется числовой пользовательский ID, имя пользователя или домашний каталог пользователя. В Linux команда usermod выполняет такую проверку, но на других архитектурах проверяется только присутствие пользователя в системе согласно данным utmp. Вы должны вручную изменить владельца всех файлов crontab или заданий at. Вы должны сделать все изменения NIS на сервере NIS самостоятельно.
Переходим к следующей команде.
userdel
Удаление пользователя testuser02. Домашний каталог и файлы в нем останутся нетронутыми:
userdel testuser02
Удаление пользователя testuser02 вместе с домашним каталогом и файлами в нем, а также почтового ящика, если он есть:
userdel -r testuser02
passwd
Отобразить состояние текущей учетной записи (имя, инф. о пароле, дата последнего изменения пароля, минимальный срок, максимальный срок, период выдачи предупреждения, период неактивности пароля):
root@debian7:~# passwd -S
Отображение состояния всех учетных записей:
root@debian7:~# passwd -S -a
Задать пароль для учетной записи testuser02:
root@debian7:~# passwd testuser02
Обычный пользователь может изменить пароль только своей учётной записи, суперпользователь может изменить пароль любой учётной записи.
Об основных командах все. Ниже есть информация о других вспомогательных командах, связанных с пользователями.
Дополнительные команды
id — Print user and group information for the specified USERNAME, or (when USERNAME omitted) for the current user;
groups — print the groups a user is in;
last, lastb — show listing of last logged in users.
Отобразить информацию о трех последних входах в систему пользователя root:
root@debian7:~# last -n 3 root
lastlog — выводит отчёт о последней регистрации в системе всех или указанного пользователя
logname — print user´s login name.
whoami — Print the user name associated with the current effective user ID.
mesg — control write access to your terminal.
Включение приема сообщений от пользователей, отправленных с помощью команды write:
root@debian7:~# mesg y
su — изменяет ID пользователя или делает его суперпользователем
sudo, sudoedit — execute a command as another user
По поводу корректности использований той или иной команды есть масса рассуждений, например, в статье «»
Но кратко вывод можно сформулировать следующим образом — пользоваться «su» уже не кошерно. Вот так, например, можно поставить программу sudo (да и любые другие) от обычного пользователя, зная пароль рута:
su -c «apt-get install sudo» root
users — print the user names of users currently logged in to the current host
w — Show who is logged on and what they are doing.
who — show who is logged on
write — send a message to another user