Права, пользователи и прочее в Linux (часть 2)

Права, пользователи и прочее в Linux (часть 2)В далеком 2011 мы выживали как могли я написал небольшую заметку про атрибуты файлов и директорий и то как их изменять, но вот про основы пользователей и групп так и не написал.. Ну пришло время исправиться, тем более я обещал)

В данной статье мы рассмотрим, что такое пользователи в Linux, как их смотреть, как их создавать, изменять и удалять, а так же, как рулить группами пользователей. Поехали?

Что такое пользователи?

По факту это любой кто использует компьютер. Имя пользователя это как правило его псевдоним, логин, который может состоять из букв Eng алфавита, арабских чисел и нижнего подчеркивания. Использовать можно любое имя кроме root, hal и adm, так как эти имена являются зарезервированными системой именами. Кроме логина в системе может храниться и полное имя реального пользователя, что иногда, при администрировании бывает полезным.

Что имеет каждый пользователь в linux системе?

  1. домашняя папка — для каждого пользователя создается своя домашняя директория в директории /home. Там могут храниться все его личные данные;
  2. командная оболочка — каждый пользователь имеет свою командную оболочку (командный интерпретатор), например /bin/bash, bin/sh и другие. (по умолчанию, как правило, используется /bin/bash)
  3. личный идентификатор (User ID) — каждый пользователь нумеруется, чтобы система могла отслеживать его, ибо она это делает только по uid пользователя
  4. пароль — естественно, каждый пользователь имеет свой пароль, которых храниться в зашифрованном виде (encripted)
  5. группа — и каждый пользователь может находиться в одной или более группе, о них мы поговорим немного подробнее..

Что такое группы?

Чтобы администраторам было проще разделять полномочия между пользователями, в Linux системах существуют группы, поэтому для каждого файла в linux системе определяется не только пользователь но и группа. По факту группы нужны для того, чтобы предоставить одинаковые полномочия на файлы или какие-нибудь действия. И опять же, каждая группа имеет свой уникальный идентификатор — GID (GroupID)

Как узнать, какие пользователи есть в системе?

Информация о пользователях храниться в файле /etc/passwd в виде строк, одна строка — это один пользователь, и эта строка имеет следующий формат:

account:password:UID:GID:GECOS:directory:shell

а расшифровывается она следующим образом:

  • account — логин пользователя
  • password — зашифрованный пароль пользователя
  • UID — id пользователя (uid создается более 1000)
  • GID — id основной группы (gid создается более 100)
  • GECOS — дополнительная информация о пользователе (не обязательно)
  • directory — домашний каталог ($HOME) пользователя
  • shell — командный интерпретатор пользователя (обычно /bin/sh)

Чтобы посмотреть какие пользователи существуют в системе, достаточно набрать следующую команду:

cat /etc/passwd

Ну и никто не запрещает посмотреть активных в данный момент пользователей:

lolosh@lolopc:~$ who
leo tty1 2015-07-29 20:07
leo :0 2015-07-26 22:38 (:0)

Создание пользователя

При создании пользователя, нужно выполнить ряд следующих действий:

  1. создается запись в /etc/passwd
  2. создается домашний каталог пользователя (/home/username)
  3. устанавливаются необходимые права
  4. назначается необходимая командная оболочка
  5. модифицируются конфигурационные файлы прочих приложений

Чтобы как то упростить жизнь администраторам, существует специальная утилита useradd. Настройки этой утилиты хранятся в файле /etc/default/useradd, в котором можно изменить применяемые новым пользователям параметры по умолчанию.

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

useradd -m -g users -G video,lalki -s /bin/bash lolosh

расшифровывается эта команда следующим образом:

useradd -m -g [основная группа] -G [список дополнительных групп] -s [командный интерпретатор] [имя пользователя]

Что означают эти ключи:

  • m — создаёт домашний каталог, вида /home/[имя пользователя]
  • -g — имя или номер основной группы пользователя
  • -G — список дополнительных групп, в которые входит пользователь
  • -s — определяет командную оболочку пользователя.

Подробнее узнать о том, что умеет эта утилита можно почитать в man страницах.

man useradd
useradd(8) Команды управления системой useradd(8)

НАЗВАНИЕ
useradd - регистрирует нового пользователя или изменяет информацию по умолчанию о новых пользователях

СИНТАКСИС
useradd [параметры] УЧЁТНАЯ_ЗАПИСЬ

useradd -D

useradd -D [параметры]

ОПИСАНИЕ
useradd is a low level utility for adding users. On Debian, administrators should usually use adduser(8) instead.

При запуске без параметра -D команда useradd создаёт новую учётную запись пользователя, используя значения из командной строки и системные значения по умолчанию. В зависимости от параметров командной строки, команда useradd
обновляет системные файлы, а также может создать домашний каталог нового пользователя и скопировать начальные файлы настроек.

По умолчанию, для нового пользователя также создаётся группа (смотрите параметры -g, -N, -U и USERGROUPS_ENAB).

ПАРАМЕТРЫ
Параметры команды useradd:

-b, --base-dir БАЗОВЫЙ_КАТАЛОГ
Базовый системный каталог по умолчанию, если другой каталог не указан с помощью параметра -d. Значение БАЗОВЫЙ_КАТАЛОГ объединяется с именем учётной записи для определения домашнего каталога. Если не указан параметр -m, то
БАЗОВЫЙ_КАТАЛОГ должен существовать.

Если этот параметр не задан, то команда useradd будет использовать базовый каталог, указанный в переменной HOME в файле /etc/default/useradd иначе /home (по умолчанию).

-c, --comment КОММЕНТАРИЙ
Любая текстовая строка. Обычно, здесь коротко описывается учётная запись, и в настоящее время используется как поле для имени и фамилии пользователя.

-d, --home ДОМАШНИЙ_КАТАЛОГ
Для создаваемого пользователя будет использован каталог ДОМАШНИЙ_КАТАЛОГ в качестве начального каталога. По умолчанию, это значение получается объединением ИМЕНИ пользователя с БАЗОВЫМ_КАТАЛОГОМ и используется как имя
домашнего каталога. Каталог ДОМАШНИЙ_КАТАЛОГ необязательно должен существовать, но не будет создан, если его нет.

-D, --defaults
Смотрите далее в подразделе «Изменение значений по умолчанию».

-e, --expiredate ДАТА_УСТАРЕВАНИЯ
Дата, когда учётная запись пользователя будет заблокирована. Дата задаётся в формате ГГГГ-ММ-ДД.

Если этот параметр не задан, то команда useradd будет использовать дату устаревания по умолчанию, указанную в переменной EXPIRE в файле /etc/default/useradd, иначе пустую строку (без устаревания, по умолчанию).

-f, --inactive ДНЕЙ
Если указано значение 0, то учётная запись блокируется сразу после устаревания пароля, а при значении -1 данная возможность не используется.

Если этот параметр не задан, то команда useradd будет использовать срок неактивности по умолчанию, указанный в переменной INACTIVE в файле /etc/default/useradd или -1 (по умолчанию).

-g, --gid ГРУППА
Имя или числовой идентификатор первичной группы пользователя. Группа с таким именем должна существовать. Идентификатор группы должен указывать на уже существующую группу.

Если не указан, то поведение useradd зависит от переменной USERGROUPS_ENAB в файле /etc/login.defs. Если значение этой переменной равно yes (или в командной строке указан параметр -U/--user-group), то для пользователя
будет создана группа с тем же именем как его имя для входа. Если значение переменной равно no (или в командной строке указан параметр -N/--no-user-group), то useradd установит первичную группу нового пользователя равной
значению переменной GROUP из файла /etc/default/useradd, или 100 (по умолчанию).

-G, --groups ГРУППА1[,ГРУППА2,...[,ГРУППАN]]]
Список дополнительных групп, в которых числится пользователь. Перечисление групп осуществляется через запятую, без промежуточных пробелов. На указанные группы действуют те же ограничения, что и для группы указанной в
параметре -g. По умолчанию пользователь входит только в начальную группу.

-h, --help
Показать краткую справку и закончить работу.

-k, --skel КАТАЛОГ_ШАБЛОНОВ
Каталог с шаблонами, который содержит файлы и каталоги для копирования в домашний каталог пользователя при создании домашнего каталога командой useradd.

Этот параметр можно использовать только с параметром -m (или --create-home).

Если этот параметр не задан, то каталог шаблонов определяется переменной SKEL из файла /etc/default/useradd, или равен /etc/skel (по умолчанию).

Если возможно, выполняется копирование ACL и расширенных атрибутов.

-K, --key КЛЮЧ=ЗНАЧЕНИЕ
Заменяет значения по умолчанию из файла /etc/login.defs (UID_MIN, UID_MAX, UMASK, PASS_MAX_DAYS и других).

Пример: -K PASS_MAX_DAYS=-1 можно использовать при создании системной учётной записи, чтобы выключить устаревание пароля, даже если системная учётная запись вообще не имеет пароля. Можно указывать параметр -K несколько
раз, например: -K UID_MIN=100 -K UID_MAX=499

-l, --no-log-init
Не добавлять пользователя в базы данных lastlog и faillog.

По умолчанию, записи пользователя в базах данных lastlog и faillog сбрасываются во избежание повторного использования записи, оставшейся от ранее удалённого пользователя.

For the compatibility with previous Debian's useradd, the -O option is also supported.

-m, --create-home
Создать домашний каталог пользователя, если он не существует. Файлы и каталоги, содержащиеся в каталоге шаблонов (который можно указать с помощью параметра the -k option), будут скопированы в домашний каталог.

По умолчанию, если этот параметр не указан и не задана переменная CREATE_HOME, домашний каталог не создаётся.

-M
Не создавать домашний каталог пользователя, даже если значение системной переменной в файле /etc/login.defs (CREATE_HOME) равно yes.

-N, --no-user-group
Не создавать группу с тем же именем как у пользователя, но добавить пользователя в группу, заданную параметром -g или переменной GROUP из файла /etc/default/useradd.

Поведение по умолчанию (если не указан параметр -g, -N и -U) определяется переменной USERGROUPS_ENAB из файла /etc/login.defs.

-o, --non-unique
Разрешить создание учётной записи с уже имеющимся (не уникальным) UID.

Этот параметр можно использовать только с параметром -u.

-p, --password ПАРОЛЬ
Шифрованное значение пароля, которое возвращает функция crypt(3). По умолчанию пароль отключён.

Замечание: Этот параметр использовать не рекомендуется, так как пароль (или не шифрованный пароль) будет видим другими пользователям в списке процессов.

Вы должны проверить, что пароль соответствует политике системных паролей.

-r, --system
Создать системную учётную запись.

Системные пользователи создаются без информации об устаревании в /etc/shadow, и их числовые идентификаторы выбираются из диапазона SYS_UID_MIN-SYS_UID_MAX, определённого в /etc/login.defs, а не из UID_MIN-UID_MAX (это же
касается и части с GID при создании групп).

Заметим, что useradd не создаёт домашний каталог для данного пользователя независимо от значения по умолчанию в /etc/login.defs (CREATE_HOME). Если вы хотите создать домашний каталог для системной учётной записи укажите
параметр -m.

-R, --root КАТ_CHROOT
Выполнить изменения в каталоге КАТ_CHROOT и использовать файлы настройки из каталога КАТ_CHROOT.

-s, --shell ОБОЛОЧКА
Имя регистрационной оболочки пользователя. По умолчанию это поле пусто, что вызывает выбор регистрационной оболочки по умолчанию согласно значению переменной SHELL из файла /etc/default/useradd, или по умолчанию
используется пустая строка.

-u, --uid UID
Числовое значение идентификатора пользователя (ID). Оно должно быть уникальным, если не используется параметр -o. Значение должно быть неотрицательным. По умолчанию используется наименьшее значение ID большее или равное
UID_MIN и большее чем у остальных пользователей.

Смотрите также описание -r и UID_MAX.

-U, --user-group
Создать группу с тем же именем что и у пользователя, и добавить пользователя в эту группу.

Поведение по умолчанию (если не указан параметр -g, -N и -U) определяется переменной USERGROUPS_ENAB из файла /etc/login.defs.

-Z, --selinux-user SEUSER
Пользователь SELinux для регистрационной оболочки пользователя. По умолчанию это поле пусто, что заставляет систему выбрать пользователя SELinux по умолчанию.

Изменение значений по умолчанию
При запуске программы только с параметром -D команда useradd показывает текущие значения по умолчанию. Если программа запускается с параметром -D вместе с другими параметрами, то useradd обновляет значения по умолчанию этих
указанных параметров. Изменяемые параметры:

-b, --base-dir БАЗОВЫЙ_КАТАЛОГ
Начальная часть пути нового домашнего каталога пользователя. Имя пользователя будет добавлено в конец ДОМАШНЕГО_КАТАЛОГА для создания имени нового каталога, если при создании новой учётной записи не указан параметр -d.

Этот параметр изменяет переменную HOME в файле /etc/default/useradd.

-e, --expiredate ДАТА_УСТАРЕВАНИЯ
Дата, когда учётная запись пользователя заблокирована.

Этот параметр изменяет переменную EXPIRE в файле /etc/default/useradd.

-f, --inactive ДНЕЙ
Число дней, которые должны пройти после устаревания пароля, перед тем как учётная запись будет заблокирована.

Этот параметр изменяет переменную INACTIVE в файле /etc/default/useradd.

-g, --gid ГРУППА
Имя группы или ID новой первичной группы пользователя (если используется -N/--no-user-group или когда значение переменной USERGROUPS_ENAB равно no (файл /etc/login.defs). Группа с указанным именем должна существовать, а
для числового идентификатора группы должна быть соответствующая запись.

Этот параметр изменяет переменную GROUP в файле /etc/default/useradd.

-s, --shell ОБОЛОЧКА
Имя новой регистрационной командной оболочки пользователя.

Этот параметр изменяет переменную SHELL в файле /etc/default/useradd.

ЗАМЕЧАНИЯ
Системный администратор сам решает, какие файлы нужно положить в каталог /etc/skel/ (или в любой другой каталог шаблонов, указанный в /etc/default/useradd или в командной строке).

ПРЕДОСТЕРЕЖЕНИЯ
Нельзя добавить пользователя в группу NIS или LDAP. Это необходимо делать на соответствующем сервере.

Также, если имя пользователя уже существует во внешней базе данных такой как NIS или LDAP, то useradd не станет создавать учётную запись пользователя.

It is usually recommended to only use usernames that begin with a lower case letter or an underscore, followed by lower case letters, digits, underscores, or dashes. They can end with a dollar sign. In regular expression
terms: [a-z_][a-z0-9_-]*[$]?

On Debian, the only constraints are that usernames must neither start with a dash ('-') nor plus ('+') nor tilde ('~') nor contain a colon (':'), a comma (','), or a whitespace (space: ' ', end of line: '\n', tabulation: '\t',
etc.). Note that using a slash ('/') may break the default algorithm for the definition of the user's home directory.

Имена пользователей могут быть длиной не более 32 знаков.

НАСТРОЙКА
На работу этого инструмента влияют следующие переменные настройки из /etc/login.defs:

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

Эта переменная не влияет на системных пользователей и может быть переопределена из командной строки.

GID_MAX (число), GID_MIN (число)
Диапазон идентификаторов групп, используемый в программах useradd, groupadd или newusers для создания обычных групп.

Значение по умолчанию для GID_MIN (соотв. GID_MAX) равно 1000 (соотв. 60000).

MAIL_DIR (строка)
Почтовый каталог. Данный параметр нужен для управления почтовым ящиком при изменении или удалении учётной записи пользователя. Если параметр не задан, то используется значение указанное при сборке.

MAIL_FILE (строка)
Определяет расположение почтовых файлов пользователя относительно домашнего каталога.

Переменные MAIL_DIR и MAIL_FILE используются командами useradd, usermod и userdel для создания, перемещения или удаления почты пользователя.

MAX_MEMBERS_PER_GROUP (число)
Максимальное количество членов в записи о группе. При достижения максимума заводится новая запись группы (строка) в /etc/group (с тем же именем, паролем и тем же GID).

Значение по умолчанию равно 0, означающее, что ограничения на количество членов в группе нет.

Данная возможность (разделение группы) позволяет ограничить длину строк в файле групп. Это полезно для ограничения длины строк групп NIS в 1024 символа.

Если вам нужно такое ограничение, укажите значение 25.

Замечание: разделение групп поддерживается не всеми инструментами (даже в наборе инструментов Shadow). Вы не должны использовать эту переменную, если вам действительно это ненужно.

PASS_MAX_DAYS (число)
Максимальное число дней использования пароля. Если пароль старее этого числа, то будет запущена процедура смены пароля. Если значение не задано, то предполагается значение -1 (то есть возможность ограничения не
используется).

PASS_MIN_DAYS (число)
Максимальное число дней между изменениями пароля. Любая смена пароля ранее заданного срока выполнена не будет. Если значение не задано, то предполагается значение -1 (то есть возможность ограничения не используется).

PASS_WARN_AGE (число)
Число дней за которое начнёт выдаваться предупреждение об устаревании пароля. Нулевое значение означает, что предупреждение выдаётся в день устаревания, при отрицательном значении предупреждение выдаваться не будет. Если
значение не задано, выдача предупреждения отключается.

SYS_GID_MAX (число), SYS_GID_MIN (число)
Диапазон идентификаторов групп, используемый в программах useradd, groupadd или newusers для создания системных групп.

Значение по умолчанию для SYS_GID_MIN (соотв.SYS_GID_MAX) равно 101 (соотв. GID_MIN-1).

SYS_UID_MAX (число), SYS_UID_MIN (число)
Диапазон идентификаторов пользователей, используемый в программах useradd или newusers для создания системных пользователей.

Значение по умолчанию для SYS_UID_MIN (соотв. SYS_UID_MAX) равно 101 (соотв. UID_MIN-1).

UID_MAX (число), UID_MIN (число)
Диапазон идентификаторов пользователей, используемый в программах useradd или newusers для создания обычных пользователей.

UMASK (число)
Задаёт начальное значение маски доступа для создаваемых файлов. Если не указано, то маска устанавливается в 022.

Команды useradd и newusers используют эту маску для установки прав доступа к домашнему каталогу, который они создают.

Она также используется командой pam_umask как значение umask по умолчанию.

USERGROUPS_ENAB (логический)
Если значение равно yes, то userdel удаляет пользовательскую группу, если в ней нет больше членов, а useradd по умолчанию создаёт группу с именем пользователя.

ФАЙЛЫ
/etc/passwd
содержит информацию о пользователях

/etc/shadow
содержит защищаемую информацию о пользователях

/etc/group
содержит информацию о группах

/etc/gshadow
содержит защищаемую информацию о группах

/etc/default/useradd
значения по умолчанию для создаваемой учётной записи

/etc/skel/
каталог, содержащий файлы по умолчанию

/etc/login.defs
содержит конфигурацию подсистемы теневых паролей

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Команда useradd завершая работу, возвращает следующие значения:

0
успешное выполнение

1
не удалось изменить файл паролей

2
ошибка в параметрах команды

3
недопустимое значение параметра

4
такой UID уже существует (и не задан параметр -o)

6
указанная группа не существует

9
имя пользователя уже существует

10
не удалось изменить файл групп

12
не удалось создать домашний каталог

14
can't update SELinux user mapping

СМОТРИТЕ ТАКЖЕ
chfn(1), chsh(1), passwd(1), crypt(3), groupadd(8), groupdel(8), groupmod(8), login.defs(5), newusers(8), userdel(8), usermod(8).

Добавление и изменение дополнительной информации

Для того, чтобы наделить пользователя дополнительной информацией, можно воспользоваться командой chfn. Рассмотрим что мы можем добавить:

chfn [-f ФИО][-о служба сопровождения ИС][-p служебный контакт][-h домашний контакт][-u][-v][логин_пользователя]

Подробнее, о возможностях этой команды читайте man.

man chfn
chfn(1) Пользовательские команды chfn(1)

НАЗВАНИЕ
chfn - изменяет информацию о пользователе

СИНТАКСИС
chfn [параметры] [УЧЁТНАЯ_ЗАПИСЬ]

ОПИСАНИЕ
Программа chfn изменяет ФИО, рабочий телефон, рабочий номер комнаты, рабочий и домашний номер телефона для учётной записи пользователя. Обычно, эти данные выводятся командой finger(1) и ей подобными программами. Обычный
пользователь может изменить только определённые данные собственной учётной записи, разрешённые в файле /etc/login.defs (настройкой по умолчанию пользователю не разрешается менять своё имя и фамилию). Суперпользователь может
изменять любые данные любой учётной записи. Кроме того, только суперпользователь может использовать параметр -o для изменения нестандартизованной части данных GECOS.

Части поля GECOS не должны содержать двоеточий. За исключением части другая, в них не должно содержаться запятых и знаков равно. Также рекомендуется избегать символов не в кодировке US-ASCII, но это касается только номеров
телефонов. Часть другая используется для хранения информации об учётной записи, которая используется другими приложениями.

ПАРАМЕТРЫ
Параметры команды chfn:

-f, --full-nameФИО
Изменяет ФИО пользователя.

-h, --home-phoneДОМАШНИЙ_ТЕЛЕФОН
Изменяет номер домашнего телефона пользователя.

-o, --otherДРУГАЯ
Изменяет другую информацию GECOS о пользователе. Эта часть используется для хранения информации об учётной записи, используемой другими приложениями, и может изменяться только суперпользователем.

-r, --roomНОМЕР_КОМНАТЫ
Изменяет номер комнаты пользователя.

-R, --root КАТ_CHROOT
Выполнить изменения в каталоге КАТ_CHROOT и использовать файлы настройки из каталога КАТ_CHROOT.

-u, --help
Показать краткую справку и закончить работу.

-w, --work-phoneРАБОЧИЙ_ТЕЛЕФОН
Изменяет номер рабочего телефона пользователя.

Если ни один параметр не указан, то chfn переходит в интерактивный режим, предлагая запустившему пользователю изменить данные своей учётной записи. Вводимое значение заменяет текущее значение записи; если введена пустая
строка, то текущее значение остаётся неизменным. Текущее значение показано в скобках [ ]. При вызове без параметров программа chfn изменяет учётную запись запустившего пользователя.

НАСТРОЙКА
На работу этого инструмента влияют следующие переменные настройки из /etc/login.defs:

CHFN_RESTRICT (строка)
Этим параметром определяются части поля gecos в файле /etc/passwd, которые могут изменять обычные пользователи с помощью программы chfn. Строка может содержать любую комбинацию букв f, r, w, h для изменения полного имени
пользователя, номера комнаты, рабочего и домашнего телефона, соответственно. Для совместимости значение yes эквивалентно rwh и no эквивалентно frwh. Если ничего не задано, то только суперпользователь может выполнять любые
изменения. Наиболее ограничительная настройка достигается снятием SUID бита с файла chfn.

ФАЙЛЫ
/etc/login.defs
содержит конфигурацию подсистемы теневых паролей

/etc/passwd
содержит информацию о пользователях

СМОТРИТЕ ТАКЖЕ
chsh(1), login.defs(5), passwd(5).

Задаем или изменяем пароль

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

passwd имя_пользователя

далее программа дважды попросит ввести новый пароль.

Если мы хотим, чтобы пользователь сменил пароль при первом входе, можно воспользоваться следующей командой:

chage -d 0 имя_пользователя

Так же еще можно установить срок годности учетной записи и многое другое, подробно можно почитать man.

man chage
chage(1) Пользовательские команды chage(1)

НАЗВАНИЕ
chage - изменяет информацию об устаревании пароля пользователя

СИНТАКСИС
chage [параметры] УЧЁТНАЯ_ЗАПИСЬ

ОПИСАНИЕ
Программа chage изменяет количество дней между датой смены пароля и датой последней смены пароля. Эта информация используется системой для определения момента, когда пользователь должен сменить свой пароль.

ПАРАМЕТРЫ
Параметры команды chage:

-d, --lastday ПОСЛ_ДЕНЬ
Установить число дней прошедших с 1 января 1970 года, когда была последняя смена пароля. Дата может быть также указана в виде ГГГГ-ММ-ДД (или в форме согласно региональным настройкам).

-E, --expiredate ДАТА_УСТАРЕВАНИЯ
Установить дату устаревания учётной записи пользователя, которая задаётся числом дней прошедших с 1 января 1970 года. Дата может быть также задана в виде ГГГГ-ММ-ДД (или в форме согласно региональным настройкам).
Пользователь, чья учётная запись была заблокирована, должен обратиться к системному администратору, если хочет в дальнейшем работать с системой.

Значение -1 в параметре ДАТА_УСТАРЕВАНИЯ отменяет устаревание учётной записи.

-h, --help
Показать краткую справку и закончить работу.

-I, --inactive ДНЕЙ
Установить количество дней неактивности после устаревания пароля перед тем как учётная запись будет заблокирована. В параметре ДНЕЙ задаётся количество дней неактивности. Пользователь, чья учётная запись была
заблокирована, должен обратиться к системному администратору, если хочет в дальнейшем работать с системой.

Значение -1 в параметре ДНЕЙ отменяет неактивность учётной записи.

-l, --list
Показать информацию об устаревании учётной записи.

-m, --mindays МИН_ДНЕЙ
Задать минимальное количество дней между сменами пароля. Нулевое значение этого поля указывает на то, что пользователь может менять свой пароль когда захочет.

-M, --maxdays МАКС_ДНЕЙ
Установить максимальное количество дней работоспособности пароля. Если сумма значений МАКС_ДНЕЙ и ПОСЛ_ДЕНЬ раньше текущего дня, то пользователю придётся изменить свой пароль перед использованием учётной записи. Для
того, чтобы это не было неожиданностью можно воспользоваться параметром -W, который активирует выдачу предупреждения о смене пароля пользователя заранее.

Значение -1 в параметре МАКС_ДНЕЙ отменяет проверку пароля.

-R, --root КАТ_CHROOT
Выполнить изменения в каталоге КАТ_CHROOT и использовать файлы настройки из каталога КАТ_CHROOT.

-W, --warndays ПРЕДУП_ДНЕЙ
Установить количество дней выдачи предупреждения, перед тем как потребуется смена пароля. Параметр ПРЕДУП_ДНЕЙ считается в днях, в течении которых пользователь будет получать предупреждение об устаревании пароля,
перед тем как это случится.

Если ни один параметр не указан, то chage переходит в интерактивный режим, предлагая запустившему пользователю изменить значения всех полей своей учётной записи. Вводимое значение заменяет текущее значение поля; если
введена пустая строка, то текущее значение остаётся неизменным. Текущее значение показано в скобках [ ].

ЗАМЕЧАНИЕ
Программа chage требует наличия файла теневых паролей.

Программа chage работает только от суперпользователя, за исключением вызова с параметром -l, который может использоваться непривилегированным пользователем для определения даты устаревания своего пароля.

НАСТРОЙКА
На работу этого инструмента влияют следующие переменные настройки из /etc/login.defs:

ФАЙЛЫ
/etc/passwd
содержит информацию о пользователях

/etc/shadow
содержит защищаемую информацию о пользователях

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Программа chage завершая работу, возвращает следующие значения:

0
успешное выполнение

1
доступ запрещён

2
ошибка в параметрах команды

15
не удалось найти файл теневых паролей

СМОТРИТЕ ТАКЖЕ
passwd(5), shadow(5).

Удаление пользователя

Удалить пользователя можно следующей командой:

 userdel -r имя_пользователя

Обратите внимание, с указанным ключом -r удаляется и его домашняя директория.

Управление группами

Тут так же нет ничего сложного. Чтобы просмотреть список существующих групп, достаточно отобразить файл /etc/group:

cat /etc/group

чтобы посмотреть в каких группах обитает определенный пользователь, можно воспользоваться двумя командами, а именно простым выводом:

groups имя_пользователя

и более подробным выводом:

id имя_пользователя

Чтобы создать новую группу, введите следующее:

groupadd имя_группы

Для добавления пользователя в эту группу, достаточно ввести:

gpasswd -a имя_пользователя имя_группы

Чтобы убрать из группы пользователя, достаточно ввести

gpasswd -d имя_пользователя имя_группы

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

groupdel имя_группы

На этом, пожалуй, все.  Если есть чем дополнить, то пишите комментарии.

Источник: http://www.oldnix.org/users-groups/