Работа с пользователями в системе FreeBSD

Задача:
---------------------------------------------------------------Рассмотреть инструменты для работы с пользователями и группами в системе FreeBSD
Система FreeBSD допускает одновременную работу нескольких и даже множества пользователей в рамках одной системы. В то время, как один пользователь может сидеть перед экраном за клавиатурой , другие пользователи могут войти в систему через сеть. Для использования системы у каждого пользователя должна быть учетная запись.
В системе FreeBSD существуют четыре файла, относящиеся к пользователям системы.
- /etc/spwd.db – основная база пользователей, именно с данными из этого файла работают программы. Данные в файле в двоичном виде, вот что получим если просмотрим при помощи cat

/etc/master.passwd – аналогичная база пользователей, только в текстовом виде и изменять его можно обычным текстовым редактором. Добавление, удаление или редактирование пользователей лучше производить с помощью специальных утилит или придется после изменения синхронизировать с остальными файлами.

Каждая новая строка файла это отдельный пользователь с информацией о нём. Информация в строке разделена знаком : (двоеточие).
- name – имя пользователя, используемый для авторизации в системе.
- password – зашифрованный пароль. В файле /etc/passwd он в виде *
- uid – уникальный идентификатор пользователя.
- gid – уникальный идентификатор группы.
- class – класс настроек и установок, из файла /etc/login.conf
- change – время жизни пароля, представлено в виде Unix – времени (количество секунд с 01.01.1970). Узнать сегодняшнюю дату в Unix-форматеили перевести Unix – время в читаемый вид, можно командами:
root@ws1:/usr/home/xaxa # date +%s 1606594380 root@ws1:/ # date -r 1606604400 Sun Nov 29 00:00:00 CET 2020 root@ws1:/ #
- seconds – дата в формате Unix, после которой система будет предлагать пользователю сменить пароль. работать это будет при входе в систему.
- expire – время жизни пользователя, по истечению этого периода он заблокируется. Представлено также в UNIX формате
- gecos – общая информация о пользователе, например для пользователя vnStat он выглядет “vnStat Network Monitor”
- home dir – домашний каталог пользователя, в который помещаются конфигурационные файлы программ с настройками под конкретного юзера. В этом каталоге данный пользователь имеет полные права.
- shell – оболочка пользователя. Для пользователей которым запрещен локальный вход в систему, существует оболочка “/usr/sbin/nologin”. Другие доступные оболочки можно посмотреть командой из консоли
root@ws1:/ # cat /etc/shells # $FreeBSD: releng/12.0/lib/libc/gen/shells 336840 2018-07-28 20:21:23Z brd $ # # List of acceptable shells for chpass(1). # Ftpd will not allow users to connect who are not using # one of these shells. /bin/sh /bin/csh /bin/tcsh /usr/local/bin/bash /usr/local/bin/rbash root@ws1:/
/etc/pwd.db – аналогичный файлу spwd.db но не содержащий паролей.
/etc/passwd – то же, что и /etc/master.passwd но без паролей
Если глянуть на права файлов, то видно что для обеспечения безопасности, файлы содержащие зашифрованные пароли доступны не всем
root@ws1:/ # ls -l /etc/ | grep wd -rw------- 1 root wheel 2252 Nov 26 20:00 master.passwd -rw-r--r-- 1 root wheel 1892 Nov 26 20:03 passwd -rw-r--r-- 1 root wheel 40960 Nov 26 20:03 pwd.db -rw------- 1 root wheel 40960 Nov 26 20:03 spwd.db root@ws1:/ #
и если попытаться посмотреть содержимое файла от обычного пользователя, получим соответствующее сообщение
$ cat /etc/master.passwd cat: /etc/master.passwd: Permission denied $
Если вы всё таки изменили файл master.passwd, то необходимо выполнить команду
root@ws1:/usr/home/xaxa # pwd_mkdb -p /etc/master.passwd root@ws1:/usr/home/xaxa #
Данная утилита обновляет /etc/pwd.db и /etc/spwd.db в соответствии с изменениями в файле /etc/master.passwd, так же можно указать определенного пользователя:
pwd_mkdb -p -u osbsduser /etc/master.passwd
Лучше конечно пользоваться специальными программа для работы с пользователями и группами.
adduser
adduser – программа для добавления пользователей, изменяет системные файлы passwd и group и копирует файлы настроек по умолчанию из директории /usr/share/skel. Пример создания пользователя с доступом по SSH и генерированным паролем:
root@ws1:/ # adduser Username: osbsduser Full name: osBSD user Uid (Leave empty for default): Login group [osbsduser]: Login group is osbsduser. Invite osbsduser into other groups? []: wheel Login class [default]: Shell (sh csh tcsh bash rbash nologin) [sh]: Home directory [/home/osbsduser]: Home directory permissions (Leave empty for default): Use password-based authentication? [yes]: Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: yes Lock out the account after creation? [no]: Username : osbsduser Password : <random> Full Name : osBSD user Uid : 1002 Class : Groups : osbsduser wheel Home : /home/osbsduser Home Mode : Shell : /bin/sh Locked : no // заблокировать учетную запись пользователя после создания OK? (yes/no): yes adduser: INFO: Successfully added (osbsduser) to the user database. adduser: INFO: Password for (osbsduser) is: FYVodb0KYAJyZ Add another user? (yes/no): no Goodbye! root@ws1:/ #
rmuser
rmuser – программа для удаления пользователей. Пример удаления ранее созданного пользователя. Можно сразу указать логин пользователя (rmuser osbsduser) или в процессе удаления:
root@ws1:/ # rmuser Please enter one or more usernames: osbsduser Matching password entry: osbsduser:$6$RKTv.9Qa.fdp4QZW$p2yFKaFKBLpsOd5LMNuLdabKQCAJ85ynP7SuZY89KNY6r0dH7SdLVFC.8YPrzwYCJyvOTf8arcASJ955hepYt.:1002:1002::0:0:osBSD user:/home/osbsduser:/bin/sh Is this the entry you wish to remove? y Remove user's home directory (/home/osbsduser)? y Removing user (osbsduser): mailspool home passwd. root@ws1:/ #
Список всех известных мне программ и утилит для управления учетными записями и группами пользователей и мониторинга:групп:
- ac – показывает время, которое пользователь находился в системе;
- adduser – интерактивное добавление нового пользователя;
- chfn – изменение пользовательских данных;
- chgrp – изменение группы;
- chkgrp – проверка синтаксиса файла групп;
- chpass – смена пароля пользователя;
- finger – отображает информацию о системном пользователе;
- groups – показывает кто в каких группах состоит;
- id – отображение имени пользователя, UID и групп в которых он состоит с указанием их GID;
- last – показывает когда пользователь пользовался терминалом;
- lastcomm – показывает список последних выполняем команд пользователем;
- lastlogin – показывает информацию о последнем использовании терминала;
- passwd – смена пароля пользователю;
- pw – создание, удаление, изменение, отображение пользователей и групп
- rmuser – удаление пользователя из системы;
- sa – показывает статистику по пользователям;
- users – показывает список текущих пользователей;
- who – показывает тех кто находится в системе;
- whoami – показывает эффективный id пользователя соответствующий имени;
- vipw – редактор для /etc/passwd
- vigr – редактор для /etc/group
- pwd_mkdb – утилита для преобразования файла master.passwd в три остальных файла
Свежие комментарии