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

Print Friendly, PDF & Email

Задача:

Рассмотреть инструменты для работы с пользователями и группами в системе 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 в три остальных файла 
Помогла статья? Есть возможность отблагодарить автора

QR Link:

QR Code

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *