Главная | Контакты



Главная > Операционные системы > UNIX > BSD > FreeBSD

Управление пользователями во FreeBSD


Полномочия пользователей и файлов, принадлежащих им, формирует концепцию ОС UNIX. Так как FreeBSD является многопользовательской ОС и принадлежит к семейству ОС относящихся к общему названию UNIX, поэтому умение грамотно управлять пользователями позволит избежать различных неприятностей.

Учётные записи пользователей и групп хранятся в двух файлах:

  • /etc/master.passwd - в данном файле хранятся учётные данные пользователей и их пароли в    зашифрованном виде.
  • /etc/group - файл, отвечающий за группы

    В FreeBSD используется технология теневых паролей - это когда системные данные пользователей разделены на два файла:

    1.файл /etc/master.passwd в котором находятся пароли в зашифрованном виде, он имеет права только на чтение и запись для пользователя root

    2.файл /etc/passwd, созданный с помощью команды pwd_mkdb(8) (генерация базы с паролями) из файла /etc/master.passwd, он имеет права на чтение для группы и других пользователей, в нём пароли заменены на *. Также с помощью команды pwd_mkdb(8) из файла /etc/master.passwd создаются два файла - /etc/pwd.db и /etc/spwd.db (индексированные базы данных), они предназначены для ускорения поиска, в случае большого количества системных пользователей. Файл /etc/spwd.db является секретным как и файл /etc/master.passwd и имеет теже права доступа и владельца.


    Рассмотрим синтаксис файла  /etc/master.passwd:

    root:$1$SJSDMXQE$LRpetLGNt5xO8k980r2om.:0:0::0:0:Charlie &:/root:/bin/csh
    toor:*:0:0::0:0:Bourne-again Superuser:/root:
    daemon:*:1:1::0:0:Owner of many system processes:/root:/usr/sbin/nologin
    operator:*:2:5::0:0:System &:/:/usr/sbin/nologin
    bin:*:3:7::0:0:Binaries Commands and Source:/:/usr/sbin/nologin
    tty:*:4:65533::0:0:Tty Sandbox:/:/usr/sbin/nologin
    kmem:*:5:65533::0:0:KMem Sandbox:/:/usr/sbin/nologin
    games:*:7:13::0:0:Games pseudo-user:/usr/games:/usr/sbin/nologin
    
    

    Каждая новая строка в файле описывает пользователя, она содержит в себе столбцы разделённые (:).

    Столбцы по порядку:

    1.name - логин пользователя, который будет использоваться при входе в систему
    2.password - зашифрованный пароль в файле /etc/master.passwd и * в /etc/passwd
    3.uid - уникальный идентификатор пользователя.
    4.gid - уникальный идентификатор группы.
    5.class - класс настроек и установок, который берётся из файла /etc/login.conf
    6.change - время жизни пароля, т.е период через который необходимо сменить пароль. Количество секунд с 1 января 1970. Проверить на какую дату указывают секунды в поле можно с помощью команды: date -r seconds, где seconds - значение поля.
    7.expire - время жизни аккуанта, после прошествия этого периода времени он заблокируется, 1 января 1970. Проверить на какую дату указывают секунды в поле можно с помощью команды: date -r seconds, где seconds - значение поля.
    8.gecos - общая информация о пользователе
    9.home dir - домашний каталог пользователя
    10.shell - оболочка, которую будет использовать пользователь

    При создании файла /etc/passwd из файла /etc/master.passwd поля class, change, expire удаляются, а пароль заменяется на *.
    Поле логина (name) не может начинаться с символа (-), так же не советуется использовать прописные буквы в имени пользователя и разделять логин символом (.), что может вызвать проблемы при работе с почтой. В файле /etc/master.passwd поле password зашифровано, если поле отсутствует, т.е вместо пароля стоит символ *, то доступ к машине вы не получите. Для быстрого редактирования файла /etc/master.passwd и без последующего применения команды pwd_mkdb(8) применяется команда vipw(8), это тот же редактор vi(1), поэтому перед применение команды vipw(8) ознакомьтесь с man страницей по vi(1).

    Пример:

    # vipw
    root:$1$SJSDMXQE$LRpetLGNt5xO8k980r2om.:0:0::0:0:Charlie &:/root:/bin/csh
    toor:*:0:0::0:0:Bourne-again Superuser:/root:
    daemon:*:1:1::0:0:Owner of many system processes:/root:/usr/sbin/nologin
    operator:*:2:5::0:0:System &:/:/usr/sbin/nologin
    bin:*:3:7::0:0:Binaries Commands and Source:/:/usr/sbin/nologin
    tty:*:4:65533::0:0:Tty Sandbox:/:/usr/sbin/nologin
    kmem:*:5:65533::0:0:KMem Sandbox:/:/usr/sbin/nologin
    games:*:7:13::0:0:Games pseudo-user:/usr/games:/usr/sbin/nologin
    
    

    При использовании (*) в /etc/master.passwd вместо поля password запрещается авторизация в системе так как символ (*) не может быть зашифрованным паролем. Например, для временной блокировки пользователя, можно использовать вместо поля password в файле /etc/master.passwd такую комбинацию *LOCKED* или добавить такую комбинацию в начало пароля, если он существует, а при разблокировке просто её удалить, для этого Вам понадобится команда vipw(8). Для того, чтобы посмотреть как блокировать аккуант с помощью командной строки прочтите man по команде pw(8).
       Поле gecos дающее общую информацию о пользователи, содержит в себе следующие поля, разделённые запятой:

  • name - полное имя пользователя
  • office - номер офиса
  • wphone - рабочий телефон
  • hphone - домашний телефон

         Поле home_dir, определяет путь к домашнему каталогу пользователя, владельцем которого он будет являться.
         Поле shell, определяет оболочку пользователя, список доступных оболочек для пользователя можно посмотреть в файле /etc/shells. Для пользователя root изменять текущую оболочку не рекомендуется, т.к в случае аварии файловая система /usr может быть не примонтирована, в следствии чего пользователь root не получит доступ к системе.
    Если Вы хотите запретить доступ пользователя к системе, замените его оболочку на /sbin/nologin. Данная программа более корректно, чем другие (пр.: /dev/null) обработает попытку входа пользователя.
       
       При добавлении нового пользователя необходимо выбрать уникальное имя (login name) которое не будет встречаться в файле /etc/passwd и /etc/mail/aliases. Так же имя не должно начинаться с символа (-) и содержать в себе символ (.), и прописные буквы, так как могут возникнуть непредвиденные ситуации при работе с почтой. Новый пользователь получает уникальный id - UID и становится членом группы, имя которой совпадает с именем пользователя, в которой он будет один. Такая стратегия именования группы позволяет улучшить безопасность и гибкость при управлении доступом. UID и имя пользователя(login name) являются уникальными в системе и будут использоваться при осуществлении контроля доступа к файловой системе. После добавления пользователя в систему, в его домашний каталог копируются файлы .profile (выполняется при заходе пользователя в систему), если используется оболочка /bin/sh или .cshrc(при старте оболочки) и .login(при заходе пользователя в систему), если используется оболочка /bin/csh. Все эти файлы копируются из каталога /usr/share/skel.

       В файле /etc/group находятся все локальные группы системы. Данный файл можно редактировать любым текстовым редактором на Ваше усмотрение, т.е чтобы добавить группу достаточно отредактировать вышеуказанный файл.
       Файл состоит из отдельных строк, столбцы в которых разделены с помощью специального символа (:). Строка состоит из следующих столбцов или полей:
  • group - название или имя группы
  • password - зашифрованный пароль для группы
  • gid - уникальный номер группы
  • member - члены данной группы

    В данном файле, каждая строка, начинающаяся с символа (#) является комментарием.
       Поле group  является именем группы, которое определяет доступ пользователям к файлам, являющимися членами данной группы. С полем group ассоциируется поле gid, которое определяет уникальный идентификатор группы. Два этих поля неразрывно связаны, точно также как имя пользователя и его UID. Поле password является необязательным, оно редко используется и поэтому символ (*) никак лучше подходит вместо шифрованного пароля. Поле member содержит членов группы, виде имён пользователей разделённых между собой с помощью сивола (,) - запятая.  В группе может находится не больше 200 пользователей. Максимальная длина строки в файле /etc/group 1024 символа.


    Управление ресурсами пользователя и ограничения.

         Управление ресурсами пользователя осуществляется с помощью классов, которые определяются в специальном файле /etc/login.conf, а также задаются пользователю при его добавлении.  Если для пользователя не определён какой-либо класс, то ему присваивается класс - default. Каждый класс имеет набор характеристик в виде имя=значение. Для ускорения доступа к данным система непосредственно не читает файл /etc/login.conf,  а вместо этого читает файл /etc/login.conf.db, который создаётся специальной командой cap_mkdb(1)

    cam_mkdb /etc/login.conf
    

    Поэтому после каждого изменения файла /etc/login.conf не забывайте исполнять команду cap_mkdb(1)
       Изменить или задать класс пользователю можно в файле /etc/master.passwd, в котором для этого имеется специальное поле class. Это обсуждалось выше. Пользователь с UID = 0, т.е администратор системы (root) не имеет действующего класса, к нему применяется запись root в /etc/login.conf или класс default, если запись root отсутствует.
       Пользователь может для себя создать индивидуальный файл с настройками ресурсов в домашнем каталоге под названием ~/login.conf, этот файл использует тот же синтаксис, что и файл /etc/login.conf, но он содержит только запись id с именем . В этом файле пользователь может только уменьшать предоставляемые ему ресурсы, но никак не увеличивать.
       В качестве разделителя полей в файле /etc/login.conf используется символ (:). Первое поле в файле означает имя класса, который в последующем будет применяться к тому или иному пользователю.

       Каждое поле в файле /etc/login.conf  может принимать следующие значения:

  • bool - если параметр является булевым, то оно может принимать следующие значения - true или false; Просто запись опции в файле /etc/login.conf без указания явного значения означает - true. Для определения false необходимо явно указать.
  • file - опция принимает значение в виде  пути к файлу;
  • program - опция принимает значение в виде пути к исполняемуму файлу или программе;
  • list - опция принимает значения в виде списка разделённого запятой или пробелом;
  • path - опция принимает значения путей, разделённых запятой или пробелом. Тильда (~) раскрывается в домашний каталог пользователя;
  • number - числовой значение, в десятичном, шестнадцатиричном или восьмеричном виде.
  • string - в виде строки;
  • size - размер. По умолчанию принимается в байтах. Может принимать следующие суффиксы для обозначения единиц размеров:
         b - байты
         k - килобайты
         m - мегабайты
         g - гигабайты
         t - терабайты
    Возможно объединение значений с указанием соответствующих суффикосв: 1m30k
  • time - период времени, по умолчанию выраженный в секундах. В качестве суффикса используются следующие обозначения:
        y - год
        w - неделя
        d - день
        h - час
        m - минуты
        s - секунды
    Возможно объединение значений с указанием соответствующих суффиксов: 2h30m
  • unlimited - отсутствие ограничений



    Ограничение ресурсов:

    Название опции    Тип значения Описание
    coredumpsize size Ограничивает размер файла coredump
    cputime time Ограничивает время использования процессора
    datasize size Максимальный размер данных
    filesize size Максимальный размер файла. Запрещает создавать файлы больше указанного размера
    maxproc number Максимальное число процессов которые может создать пользователь
    memorylocked size Максимальный размер в core memory котрую может заблокировать процесс
    memoryuse size Максимальный размер памяти которую может использовать процесс
    openfiles number Максимально количество файлов которые может открыть каждый процесс
    sbsize size Максимально разрешённый размер сокетбуфера
    vmemoryuse size Максимально разрешенный размер виртуальной памяти для каждого процесса
    stacksize size Максимальный размер стека


       Ресурсы могут ограничиваться как мягкими, так и жёсткими ограничениями, разница между ними состоит  в том, что жёсткие ограничения пользователь не сможет увеличивать, а мягкие сможет, но не больше чем жёсткое значение. Для обозначения мягких и жёстких ограничений используются специальные суффиксы -max и -cur. Пр: filesize-max


    Окружение пользователя:

    Название опции    Тип значения    Дефолт    Описание
    charset    string         Устанавливает значение переменной окружения $MM_CHARSET. Пр: KOI8-R
    hushlogin    bool    false    Разрешает (false) показывать файл /etc/motd при загрузке или запрещает (true). Тоже самое что присутствие файла ~/.hushlogin в домашнем каталоге.
    ftp-chroot    bool    false    Делать chroot(2) пользователя в его домашнем каталоге при заходе по FTP. Применительно только к стандартному демону ftpd(8).
    ignorenologin    bool    false    Логин не блокируется nologin.
    label    string         Политика MAC (maclabel(7)) применяемая к пользователю.
    lang    string Устанавливает значение переменной окружения $LANG. Пр: ru_RU.KOI8-R
    manpath    path         Определяет пути поиска man страниц
    nocheckmail    bool    false    Показывать состояние почтового ящика при заходе пользователя в систему.
    nologin    file         Если данный файл существует то отображается его содержимое при заходе в систему и сессия закрывается. Можно указать данную опцию в классе для пользователя и заблокировать для него вход в систему если даже у него в файле /etc/master.passwd установлена оболочка.
    path    path         Определяет пути поиска выполняемых файлов или программ.
    priority    number         Определяет первоначальный приоритет пользователя (nice(1)).
    requirehome    bool    false    Требуется ли пользователю рабочий домашний каталог. Если его нет то пользователь не сможет войти в систему.
    setenv    list         Устанавливает переменные окружения в виде переменная=значение разделённые запятой
    shell    prog         Оболочка пользователя. Имеет приоритет над оболочкой указанной в файле /etc/master.passwd.
    term    string         Определяет тип терминала.
    timezone    string         Устанавливает значение переменной окружения $TZ. Зоны находятся /usr/share/zoneinfo.
    umask    number    022    Определяет права на создаваемые файлы. Права рассчитываются вычитанием маски из 666 а на каталог из 777.
    welcome    file    ./etc/motd    Файл приветствия который показывается при заходе пользователя в систему.



    Авторизация пользователя:

    Название опции    Тип значения    Дефолт    Описание
    copyright    file         Дополнительный файл содержащий информацию о кооперайтах
    host.allow    list         Список удалённых хостов с которых пользователи данного класса могут заходить на машину.
    host.deny    list         Список удалённых хостов с которых пользователи данного класса не могут заходить на машину.
    login_prompt    string         Строка выводимая при запросе логина login(1)
    login-backoff    number         Определяет величину задержки умноженную на 5 секунд между неправильными логинами после того как исчерпаются попытки входа параметр ниже. Применимо к неудалённому терминалу.
    login-retries    number    10    Количество разрешённых неправильных попыток входа прежде чем логин будет признан неудачным.
    passwd_format    string         Формат в котором будет шифроваться новый пароль. Значения которые можно использовать - 'md5' 'blf' 'des'. Советую по умолчанию использовать формат шифрования - 'blf' так как это наиболее криптостойкий алгоритм.
    passwd_prompt    string         Приветствие для пароля.
    times.allow    list         Список периодов времени в течение которых заходить в систему можно
    times.deny    list         Список периодов времени в течение которых заходить в систему запрещено
    ttys.allow    list         Список терминалов или групп терминалов которые пользователь с данным классом может использовать. Группы терминалов указаны в файле /etc/ttys(5)
    ttys.deny    list         Список терминалов или групп терминалов которые пользователю с данным классом запрещено использовать. Группы терминалов указаны в файле /etc/ttys(5)
    warnexpire    time         Период времени за который необходимо предупреждать пользователя об истечении срока действия учётной записи.
    warnpassword    time         Период времени за который необходимо предупреждать пользователя об истечении срока действия пароля.


    В опциях host.allow и host.deny  разделителем хостов является запятая.
       
       В опциях times.allow и times.deny записи разделяются запятой. Значения периодов времени записываются в 24 -х часовом формате, отделённых друг от друга дефисом.
    Для примера: MoThSa0200-1300 Данная запись расшифровывается следующим образом: доступ пользователю разрешён по понедельникам, четвергам, субботам в период с 2 -ч часов ночи до часу дня. Если обе опции в пользовательском классе отсутствуют, то доступ разрешается в любое время. Если период времени разрешённый в опции times.allow запрещается периодом времени в файле times.deny, то приоритет имеет опция times.deny.
       
       В опциях ttys.allow и ttys.deny содержаться записи tty устройств, разделённые запятой (без префикса /dev/) и список ttygroups (смотрите getttyent(3) и ttys(5)) к которым пользователь данного класса имеет или не имеет доступ. Если в опции нет ни одной записи, то пользователь имеет неограниченный доступ.
       
       Параметры пароля такие как минимальная длинна (minpasswordlen) и параметр отвечающий за предупрждение, если пользователь вводит пароль только в нижнем регистре (minpasswordcase) не поддерживаются, для этих ограничений применяется pam модуль pam_passwdqc(8).

       Задание классов для системных пользователей является очень хорошим средством индивидуального ограничения пользователя, но используйте это средство осознанно и с осторожностью.



    Для управления пользователями и группами будут полезны следующие команды:

  • pw(8) - создание, удаление, изменение, отображение пользователей и групп;
  • adduser(8) - интерактивное добавление нового пользователя;
  • rmuser(8) - удаление пользователя из системы;
  • id(1) - отображение имени пользователя, UID и групп в которых он состоит с указанием их GID;
  • finger(1) - отображает информацию о системном пользователе;
  • users(1) - показывает список текущих пользователей;
  • who(1) - показывает тех кто находится в системе;
  • whoami(1) - показывает эффективный id пользователя соответствующий имени;
  • last(1) - показывает когда пользователь пользовался терминалом;
  • lastlogin(8) - показывает информацию о последнем использовании терминала;
  • lastcomm(1) - показывает список последних выполняем команд пользователем;
  • ac(8) - показывает время, которое пользователь находился в системе;
  • sa(8) - показывает статистику по пользователям;
  • passwd(8) - смена пароля пользователю;
  • chpass(1) - смена пароля пользователя;
  • chfn(1) - изменение пользовательских данных;
  • groups(1) - показывает кто в каких группах состоит;
  • chgrp(1) - изменение группы;
  • chkgrp(8) - проверка синтаксиса файла групп;

       Для полноценного использования команд lastcomm(1), sa(8) Вам необходимо включить учёт используемых ресурсов. Учёт используемых процессами ресурсов представляет собой метод защиты, при котором администратор может отслеживать использование системных ресурсов и их распределение между пользователями для нужд системного мониторинга и минимального отслеживания команд пользователей.
       Для того что бы включить систему учёта используемых ресурсов Вам необходимо выполнить несколько действий.
    1.mkdir /var/account
    2.touch /var/account/acct
    3.accton /var/account/acct
    4.echo 'accounting_enable="YES"' >> /etc/rc.conf
    
    


    После выполнения 3 действия Вы уже можите использовать команды lastcomm(1), sa(8). Команда accton(8) включает систему учёта используемых ресурсов.


       
    Практика:
    (Для более подробной информации о командах обязательно читайте манны)


    Использование системы учёта ресурсов, команда lastcomm(1) и sa(8):

    
    fdesktop1# lastcomm root
    lastcomm         -       root             ttyp0     0.023 secs Tue May 19 02:25
    
    cron             -F      root             __        0.004 secs Tue May 19 02:25
    sh               -       root             __        0.005 secs Tue May 19 02:25
    
    atrun            -       root             __        0.004 secs Tue May 19 02:25
    man              -       root             ttyp0     0.032 secs Tue May 19 02:24
    
    sh               -       root             ttyp0     0.019 secs Tue May 19 02:24
    more             -       root             ttyp0     0.071 secs Tue May 19 02:24
    
    zcat             -       root             ttyp0     0.025 secs Tue May 19 02:24
    man              -       root             ttyp0     0.038 secs Tue May 19 02:24
    
    sh               -       root             ttyp0     0.020 secs Tue May 19 02:24
    zcat             -       root             ttyp0     0.030 secs Tue May 19 02:24
    
    more             -       root             ttyp0     0.039 secs Tue May 19 02:24
    lastcomm         -       root             ttyp0     0.014 secs Tue May 19 02:24
    
    man              -       root             ttyp0     0.013 secs Tue May 19 02:24
    sh               -       root             ttyp0     0.031 secs Tue May 19 02:24
    
    

    
    fdesktop1# sa
          73       9.617re        0.03cp        0avio     2804k
           9       3.187re        0.01cp        0avio     1383k   more
    
          13       3.196re        0.00cp        0avio     4158k   sh
           9       3.197re        0.00cp        2avio     3484k   man
    
           9       0.026re        0.00cp        0avio     1547k   zcat
           7       0.003re        0.00cp        0avio     2386k   sa
           7       0.002re        0.00cp        0avio     4726k   lastcomm
           5       0.001re        0.00cp        0avio     4516k   ***other
           7       0.001re        0.00cp        0avio     4584k   mv
    
    




    Добавление нового пользователя в систему, будем использовать команду pw(8):

    # pw useradd test -s /bin/sh -c "Test users" -m -b /home -e 03-06-2009 -p  02-6-2009
    

    Давайте разберём наше действие:
       -s - указывает какой терминал будет использоваться, поле shell
       -с - комментарии к созданному пользователю, поле gecos
       -e - время жизни аккуанта, поле expire. Формат поля аналогичен опции '-p'
           -p - время жизни пароля, поле change. Формат задания даты или времени таков:
                dd-mm-yy[yy], где dd - день, mm - месяц, yy[yy] - год. Или используется следующий
                формат: +0mhdwoy, где m - минуты, h - часы, d - дни, w - недели, o - месяц, y - год
           -m - заставляет создать домашний каталог пользователя и скопировать в него стандартные файлы
                и каталога /usr/share/skel
           -b - базовая директория в которой будет находится домашний каталог пользователя, поле home_dir
           -L - задаёт класс для пользователя из файла login.conf, поле class

    Результаты работы, из файла /etc/master.passwd:

    test:*:1002:1002::40:30:Test users:/home/test:/bin/sh
    
    


    Более интерактивная команда adduser(8), она имеет конфигурационный файл, в котором вы можите предопределить вводимые данные.

    Как видим пользователь у нас не имеет пароля, поэтому не сможет войти в систему, для того что бы задать пароль используем команду passwd(8):

    # passwd test
    
    Changing local password for test
    New Password:
    Retype New Password:
    


    Для более корректного удаления пользователя из системы используйте команду rmuser(8), данная команда не просто удаляет пользователя из файла /etc/master.passwd, но и все его данные в системе:

    1.Удаляет пользовательский crontab(1), если он существует
    2.Удаляет задания пользователя, созданные командой at(1)
    3.Отправляет всем процессам работающим от имени этого пользователя сигнал SIGKILL
    4.Удаляет пользователя из файла /etc/passwd
    5.Удаляет домашнюю директорию пользователя, включая символические ссылки на домашний каталог
    6.Удаляет входящие письма из каталога /var/mail
    7.Удаляет все файлы владельцем которых является пользователь из каталогов /tmp, /var/tmp и  /var/tmp/vi.recover
    8.Удаляет пользователя из всех группы, в которых он состоит (файл /etc/groups)
    9.Удаляет все очереди сообщений, общую разделяемую память, семафоры владельцем которых является пользователь. (Для справки: все это интерфейсы межпроцессорного взаимодействия)

    Используйте утилиту rmuser(8) с параметром '-y' что бы она не спрашивала подтверждения на удаление.

    Пример удаления без опции '-y' и с опцией 'y':

    fdesktop1# rmuser test
    Matching password entry:
    test:*:1002:1002::0:0:Test users:/home/test:/bin/sh
    Is this the entry you wish to remove? y
    
    Remove user's home directory (/home/test)? y
    Removing user (test): mailspool home passwd.
    fdesktop1# pw useradd test -s /bin/sh -m -b /home -c "Test users"
    fdesktop1# rmuser -y test
    Removing user (test): mailspool home passwd.
    
    


    Посмотрим теперь информацию о существующих пользователях, для этого будем использовать каманды id(1), finger(1):

    
    fdesktop1# id root
    uid=0(root) gid=0(wheel) groups=0(wheel),5(operator)
    
    


    Как видим утилита показывает информацию, к каким группам принадлежит пользователь. У данной команды есть много полезных опций, поэтому почитайте манн.


    fdesktop1# id -P root
    root:$1$SJSDMXQE$LRpetLGNt5xO8k980r2om.:0:0::0:0:Charlie &:/root:/bin/csh
    
    
    
    fdesktop1# finger root
    
    Login: root                             Name: Charlie Root
    Directory: /root                        Shell: /bin/csh
    On since Sun May 17 23:10 (MSD) on ttyp0 from 192.168.0.2
    
    New mail received Wed Feb 18 01:21 2009 (MSK)
         Unread since Fri Feb 13 00:52 2009 (MSK)
    
    No Plan.
    


    Давайте теперь узнаем кто сейчас находится в системе, для этого будем использовать команды users(1) и who(1):

    
    $ who
    root             ttyp0    May 17 23:10 (192.168.0.2)
    atrium           ttyp1    May 17 23:19 (192.168.0.2)
    
    $ users
    atrium root
    
    



       
    Создадим новую группу:

    
    fdesktop1# echo 'test:*:200:atrium' >> /etc/group
    
    fdesktop1# id atrium
    uid=1001(atrium) gid=20(staff) groups=20(staff),200(test)
    


    Мы создали новую группу 'test' и сразу же добавили в неё пользователя 'atrium'.


    
    fdesktop1# pw groupadd list -M atrium,root
    fdesktop1# pw groupshow list
    list:*:1002:atrium,root
    
    


    С помощью прекрасной команды pw(8) мы создали группу 'list' и добавили в неё пользователя atrium и root. Так же посмотрели созданную группу.


    Главная > Операционные системы > UNIX > BSD > FreeBSD