Операции с пользователями

mrvtn

Постоянный участник
ДРУЗЬЯ ФОРУМА

mrvtn

Постоянный участник
ДРУЗЬЯ ФОРУМА
Регистрация
2 Июн 2018
Сообщения
116
Реакции
58
Репутация
0
Для управления пользователями существует ряд основных команд:


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
 
Сверху