====== Управление учетными записями в Linux ======
===== Просмотр базы данных пользователей и групп =====
$ cat /etc/passwd
# cat /etc/shadow
$ cat /etc/group
* [[Использование библиотеки NSSWITCH]]
===== Добавление учетной записи =====
!!!! В ubuntu была замечана необходимость указывать shell !!!!
# useradd -u 10001 -m -s /bin/bash user1
# cat /etc/default/useradd
===== Назначение пароля =====
* [[Настройка командных интерпретаторов#bash]]
# passwd user1
# echo user1:password1 | chpasswd
# apt install whois
$ mkpasswd -m sha-512
$ openssl passwd -1
===== Добавление групп =====
# groupadd -g 15001 group1
# groupadd -g 15002 group2
===== Изменение атрибутов учетной записи =====
==== Заполнение поля GECOS ====
# usermod -c "Ivan Ivanovitch Ivanov,RA7,401,499-239-45-23" user1
==== Управление членством в группах ====
# usermod -G group1,group2 user1
или
# usermod -a -G group1 user1
# usermod -a -G group2 user1
или
# gpasswd -a user1 group1
# gpasswd -a user1 group2
# gpasswd -d user1 group1
# cat /etc/group
# getent group
# id user1
==== Назначение пользователю shell ====
# cat /etc/shells
...
/usr/sbin/nologin
/usr/bin/passwd
# usermod -s /usr/bin/passwd user1
См. также chsh, chfn
==== Назначение пользователю домашнего каталога ====
server# usermod -d /home/zabbix zabbix
server# mkhomedir_helper zabbix
===== Управление временем жизни учетной записи и ее пароля =====
# man chage
# chage -l userX
# chage -E 2020-08-30 userX
===== Блокировка учетной записи =====
* первый символ "!" в поле пароля
# passwd -l user1
# passwd -S user1
# passwd -u user1
или, если надо разблокировать, но не задавать пароль
# usermod -p '*' root
===== Удаление учетной записи =====
# userdel -r student
===== Использование учетной записи root =====
$ sudo -s
...
# passwd
...
===== Переименование учетных записей =====
* [[https://serverfault.com/questions/437342/how-can-i-rename-an-unix-user|How can I rename an unix user?]]
# usermod -l ivanovii -m -d /home/ivanovii user1
# groupmod -n ivanovii user1
===== Перемещение учетных записей =====
* [[http://www.cyberciti.biz/faq/howto-move-migrate-user-accounts-old-to-new-server/|Move or migrate user accounts from old Linux server to a new Linux server]]
# ###export UGIDLIMIT=1000
# UGIDLIMIT=1001
# awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/passwd >> /var/lib/lxc/www/rootfs/etc/passwd
# awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/passwd | ssh www 'cat >> /etc/passwd'
# awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/group >> /var/lib/lxc/www/rootfs/etc/group
# awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/group | ssh www 'cat >> /etc/group'
# awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534) {print $1}' /etc/passwd | tee - | egrep -f - /etc/shadow >> /var/lib/lxc/www/rootfs/etc/shadow
# awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534) {print $1}' /etc/passwd | tee - | egrep -f - /etc/shadow | ssh www 'cat >> /etc/shadow'
# cd /home; tar -cf - . | (cd /var/lib/lxc/www/rootfs/home; tar -xvf -)
# cd /home; tar -cf - . | ssh www '(cd /home; tar -xvf -)'
# cd /var/mail; tar -cf - . | (cd /var/lib/lxc/www/rootfs/var/mail; tar -xvf -)
# cd /var/mail; tar -cf - . | ssh www '(cd /var/mail; tar -xvf -)'
===== Создание тестового набора учетных записей =====
groupadd -g 15001 group1
useradd -u 10001 -m -s /bin/bash -c "Ivan Ivanovitch Ivanov,RA7,401,499-239-45-23" -G group1 user1
useradd -u 10002 -m -s /bin/bash -c "Petr Petrovitch Petrov,RA7,402,499-323-55-53" -G group1 user2
useradd -u 10003 -m -s /bin/bash -c "Сидор Сидорович Сидоров,РА7,403,499-323-55-53" -G group1 user3
echo 'user1:password1' | chpasswd
echo 'user2:password2' | chpasswd
echo 'user3:password3' | chpasswd