Ubuntu Server: управление пользователями и группами. Шпаргалка сисадмина.

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

sudo useradd username
КлючОписание
-bБазовый каталог. Это каталог, в котором будет создана домашняя папка пользователя. По умолчанию /home
Комментарий. В нем вы можете напечатать любой текст.
-dНазвание домашнего каталога. По умолчанию название совпадает с именем создаваемого пользователя.
-eДата, после которой пользователь будет отключен. Задается в формате ГГГГ-ММ-ДД. По умолчанию отключено.
-fКоличество дней, которые должны пройти после устаревания пароля до блокировки пользователя, если пароль не будет изменен (период неактивности). Если значение равно 0, то запись блокируется сразу после устаревания пароля, при -1 — не блокируется. По умолчанию -1.
-gПервичная группа пользователя. Можно указывать как GID, так и имя группы. Если параметр не задан будет создана новая группа название которой совпадает с именем пользователя.
-GСписок вторичных групп в которых будет находится создаваемый пользователь
-kКаталог шаблонов. Файлы и папки из этого каталога будут помещены в домашнюю папку пользователя. По умолчанию /etc/skel.
-mКлюч, указывающий, что необходимо создать домашнюю папку. По умолчанию домашняя папка не создается.
-pЗашифрованный пароль пользователя. По умолчанию пароль не задается, но учетная пользователь будет заблокирован до установки пароля
-sОболочка, используемая пользователем. По умолчанию /bin/sh.
-uВручную задать UID пользователю.

 

Параметры создания пользователя по умолчанию

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

useradd -D

Результат будет примерно следующий:

GROUP=100HOME=/homeINACTIVE=-1EXPIRE=SHELL=/bin/shSKEL=/etc/skelCREATE_MAIL_SPOOL=no

Если вас не устраивают такие настройки, вы можете поменять их выполнив

sudo useradd -D -s /bin/bash

где -s это ключ из таблицы выше.

 

Изменение пользователя

Изменение параметров пользователя происходит с помощью утилиты usermod. Пример использования:

sudo usermod -c "Эта команда поменяет комментарий пользователю" username
usermod

использует те же опции, что и

useradd.

 

Изменение пароля

Изменить пароль пользователю можно при помощи утилиты

passwd.
sudo passwd username
КлючОписание
-dУдалить пароль пользователю. После этого пароль будет пустым, и пользователь сможет входить в систему без предъявления пароля.
-eСделать пароль устаревшим. Это заставит пользователя изменить пароль при следующем входе в систему.
-iЗаблокировать учетную запись пользователя по прошествии указанного количества дней после устаревания пароля.
-nМинимальное количество дней между сменами пароля.
-xМаксимальное количество дней, после которого необходимо обязательно сменить пароль.
-lЗаблокировать учетную запись пользователя.
-uРазблокировать учетную запись пользователя.

Установка пустого пароля пользователя

Супер пользователь с помощью утилит командной строки

passwd

и

usermod

или путем редактирования файла /etc/shadow может удалить пароль пользователь, дав возможность входить в систему без указания пароля.

sudo passwd -d username

или

sudo usermod -p "" username

Если учетная запись пользователя в этот момент была заблокирована командой

passwd -l,

то указанные выше команды так же снимут эту блокировку

Установка пустого пароля может быть полезна как временное решение проблемы в ситуации, когда пользователь забыл свой пароль или не может его ввести из-за проблем с раскладкой клавиатуры. После этого имеет смысл принудить пользователя установить себе новый пароль при следующем входе в систему

sudo passwd -e username 

 

Получение информации о пользователях

  • w

    – вывод информации (имя пользователя, рабочий терминал, время входа в систему, информацию о потребленных ресурсах CPU и имя запущенной программы) о всех вошедших в систему пользователях.

  • who

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

  • who am i

    или

    whoami

    или

     id

    – вывод вашего имени пользователя.

  • users

    – вывод имен пользователей, работающих в системе.

  • id

    имя_пользователя – вывод о идентификаторах пользователя: его uid, имя_пользователя, gid и имя первичной группы и список групп в которых состоит пользователь

  • groups

    имя_пользователя – вывод списка групп в которых состоит пользователь.

  • Pwd

    – текущий каталог.

  • cat /etc/passwd

    – откроет просмотр ф-ла в полном виде

  • sed 's/:.*//' /etc/passwd

    – только пользователи

  • Если ИД у пользователя имеет меньше четырех цифр, то это системные данные

 

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

Для того, чтобы удалить пользователя воспользуйтесь утилитой

 userdel

. Пример использования:

sudo userdel username
userdel

имеет всего два основных ключа:

КлючОписание
-fПринудительно удалить пользователя, даже если он сейчас работает в системе.
-rУдалить домашний каталог пользователя.

Активность пользователей

Истории посещений

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

/var/wtmp

. Вызывается он вводом в командной строке следующей команды:

last -a

Дата последней активности

В операционной системе Linux можно узнать, когда каждый из зарегистрированных пользователей был последний раз активен – это делает команда

lastlog

, выполняемая при помощи одноименного запроса:

lastlog

 

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

Создание группы

Комманда

groupadd

создаёт новую группу согласно указанным значениям командной строки и системным значениям по умолчанию. Пример использования:

sudo groupadd testgroup

Основные ключи:

КлючОписание
-gУстановить собственный GID.
-pПароль группы.
-rСоздать системную группу.

Изменение группы

Сменить название группы, ее GID или пароль можно при помощи

groupmod

. Пример:

sudo groupmod -n newtestgroup testgroup #

Имя группы изменено с

testgroup 

на

 newtestgroup

Опции

groupmod:
КлючОписание
-gУстановить другой GID.
-nНовое имя группы.
-pИзменить пароль группы.

Удаление группы

Удаление группы происходит так:

sudo groupdel testgroup
groupdel

не имеет никаких дополнительных параметров.

 

Файлы конфигурации

Изменять параметры пользователей и групп можно не только при помощи специальных утилит, но и вручную. Все настройки хранятся в текстовых файлах. Описание каждого из них приведено ниже.

/etc/passwd

В файле

/etc/passwd

хранится вся информация о пользователях кроме пароля. Одна строка из этого файла соответствует описанию одного пользователя. Примерное содержание строки таково:

username:x:1000:1000:IvanIvanov:/home/ivanov:/bin/bash

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

ПолеОписание
1usernameИмя пользователя для входа в систему.
2xНеобязательный зашифрованный пароль.
31000Числовой идентификатор пользователя (UID).
41000Числовой идентификатор группы (GID).
5IvanIvanovПоле комментария
6/home/ivanovДомашний каталог пользователя.
7/bin/bashОболочка пользователя.

Второе и последнее поля необязательные и могут не иметь значения.

/etc/group

В

/etc/group

, как очевидно из названия хранится информация о группах. Она записана в аналогичном

/etc/passwd

виде:

username:x:1000:username,lisa

ПолеОписание
1usernameНазвание группы
2xНеобязательный зашифрованный пароль.
31000Числовой идентификатор группы (GID).
4username,lisaСписок пользователей, находящихся в группе.

В этом файле второе и четвертое поля могут быть пустыми.

/etc/shadow

Файл

/etc/shadow

хранит в себе пароли, по этому права, установленные на этот файл, не дают считать его простому пользователю. Пример одной из записей из этого файла:

username:$6$Yvp9VO2s$kt’.o754QB3HcvVbz5hlOafmO.LaHXwfavJHniHNzq/bCI3AEo562hhiWLoBSqxLy7RJJNm3fwz.sdhEhHL0:15803:0:99999:7:::

Здесь:

ПолеОписание
1usernameИмя пользователя для входа в систему.
2$6$Yvp9VO2s$kt’.o754QB3HcvVbz5hlOafmO.LaHXwfavJHniHNzq/bCI3AEo562hhiWLoBSqxLy7RJJNm3fwz.sdhEhHL0Необязательный зашифрованный пароль.
315803Дата последней смены пароля.
40Минимальный срок действия пароля.
599999Максимальный срок действия пароля.
67Период предупреждения о пароле.
7Период неактивности пароля.
9Дата истечения срока действия учётной записи.

 

 

Usermode – назначение групп пользователям

 

Добавление существующей учетной записи пользователя в группу

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

usermod

, заменив group_name на имя группы, в которую вы хотите добавить пользователя, в user_name на имя пользователя, которого хотите добавить.

usermod -a -G group_name user_name

Например, для добавления пользователя vanya в группу sudo, используйте следующую команду:

usermod -a -G sudo vanya

 

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

groups

. Вы увидите список групп.

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

 id:

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

groups

и укажите имя учетной записи пользователя.

groups user_name

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

id

и указав имя пользователя.

id user_name

 

Создание нового пользователя и назначение группы в одной команде

Иногда вам может понадобиться создать новую учетную запись пользователя, которая имеет доступ к определенному ресурсу или каталогу, например, новому пользователю FTP. С помощью команды

 useradd 

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

useradd -G group_name user_name

Например, чтобы создать новую учетную запись пользователя с именем jsmith и назначить эту учетную запись группе ftp, вы должны запустить:

useradd -G ftp jsmith

Конечно, вы захотите назначить пароль для этого пользователя:

passwd jsmith

 

Добавление пользователя в несколько групп

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

usermod -a -G group1,group2,group3 user_name

Например, чтобы добавить пользователя с именем ivan в группы ftp, sudo и example, вы должны запустить:

usermod -a -G ftp,sudo,example ivan

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

 

Как просмотреть все группы в системе

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

getent group

 

 

Chmod – изменение прав доступа

 

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

  1. пользователь (user) мог читать (read), писать (write) и выполнять (xecute) его;
  2. члены группы (group) могут прочитать (read) и выполнить (xecute) его;
  3. а также другие (others) могут только читать (read) его.

Эта команда будет выглядеть вот так:

chmod u=rwx,g=rx,o=r myfile

В этом примере используется символьная запись разрешений. Буквы u, g и o обозначают «пользователь», «группа» и «другое». Знак равенства («=») означает «установить права доступа именно так», а буквы «r», «w» и «x» означают «чтение», «запись» и «выполнение» соответственно. Запятые разделяют различные классы разрешений, и между ними нет пробелов.

Вот эквивалентная команда, использующая восьмеричное обозначение разрешений:

chmod 754 myfile

Здесь цифры 7, 5 и 4 каждая по отдельности представляют разрешения для пользователя, группы и других в этом порядке. Каждая цифра представляет собой комбинацию чисел 4, 2, 1 и 0:

  • 4 означает «читать»,
  • 2 означает «записать»,
  • 1 означает «выполнить»,
  • 0 означает «нет разрешения».

Таким образом, 7 представляет собой комбинацию разрешений 4 + 2 + 1 (read, write, and execute), 5 — это 4 + 0 + 1 (read, no write, and execute), а 4 — 4 + 0 + 0 (read, no write, and no execute).

 

Синтаксис chmod

chmod [OPTION]... MODE[,MODE]... FILE...chmod [OPTION]... OCTAL-MODE FILE...chmod [OPTION]... --reference=RFILE FILE...

 

Параметры chmod

-c, —changes Подобно —verbose, но выдает подробный вывод только тогда, когда изменение действительно сделано.

-f, —silent, —quiet Бесшумный режим; подавлять большинство сообщений об ошибках.

-v, —verbose Подробный режим; вывести диагностическое сообщение для каждого обработанного файла.

—no-preserve-root Не обрабатывать ‘/’ (корневой каталог) каким-либо особым образом, который является настройкой по умолчанию.

—preserve-root Не работать рекурсивно на «/».

—reference=

RFILE 

Установить разрешения, соответствующие разрешениям файла RFILE, игнорируя любой указанный РЕЖИМ.

-R, —recursive Менять файлы и каталоги рекурсивно.

—help Показать справочное сообщение и выйти.

—version Вывести информацию о версии и выйти.

 

Техническое описание

chmod

изменяет режим файла каждого указанного ФАЙЛА в соответствии с MODE, который может быть либо символическим представлением вносимых изменений, либо восьмеричным числом, представляющим битовую комбинацию для битов нового режима.

Формат символического режима:

[ugoa…][[+-=][perms…]…]

где perms — это ноль или более букв из набора r, w, x, X, s и t, или одна буква из набора u, g и o. Можно указать несколько символьных режимов, разделенных запятыми.

Комбинация букв u, g, o и элементов управления, которые изменят доступ пользователей к файлу: пользователь, которому он принадлежит (u), другие пользователи в группе файла (g), другие пользователи, которых нет в файле группа (o) или все пользователи (a). Если ничего из этого не дано, эффект будет таким, как если бы был задан a, но биты, которые установлены в umask, не затрагивались.

Оператор  (+) вызывает добавление выбранных битов режима файла к существующим битам режима файла каждого файла; » -» вызывает их удаление; и «=» вызывает их добавление и приводит к удалению не упомянутых битов, за исключением того, что неизменяемые установленные пользователем биты каталога и идентификаторы группы не затрагиваются.

Буквы r, w, x, X, s и t выбирают биты режима файла для затронутых пользователей: чтение (r), запись (w), выполнение (x), выполнение только в том случае, если файл является каталогом или уже имеет разрешение на выполнение для некоторого пользователя (X) установите идентификатор пользователя или группы при выполнении (s), флаг ограниченного удаления или фиксированный бит (t). Для каталогов параметры выполнения X и X определяют разрешение на просмотр содержимого каталога.

Вместо одной или нескольких из этих букв вы можете указать одну из букв u, g или o: разрешения, предоставленные пользователю, которому принадлежит файл (u), разрешения, предоставленные другим пользователям, которые являются членами группы файла (g) и разрешения, предоставленные пользователям, которые не входят ни в одну из двух предыдущих категорий (o).

Числовой режим — от одной до четырех восьмеричных цифр (0-7), полученных путем сложения битов со значениями 4, 2 и 1. Предполагается, что пропущенные цифры являются ведущими нулями. Первая цифра выбирает заданный идентификатор пользователя (4) и заданный идентификатор группы (2) и атрибуты ограниченного удаления или закрепления (1). Вторая цифра выбирает права доступа для пользователя, которому принадлежат операции чтения (4), записи (2) и выполнения (1); третий выбирает права доступа для других пользователей в группе файла с теми же значениями; и четвертый для других пользователей, не входящих в группу файла, с теми же значениями.

chmod никогда не меняет права доступа к символическим ссылкам; системный вызов chmod не может изменить их разрешения. Но это не проблема, поскольку разрешения символических ссылок никогда не используются. Однако для каждой символической ссылки, указанной в командной строке, chmod изменяет права доступа к указанному файлу. Напротив, chmod игнорирует символические ссылки, встречающиеся во время рекурсивных обходов каталогов.

Биты Setuid и Setgid

chmod очищает бит set-group-ID обычного файла, если идентификатор группы файла не совпадает с эффективным идентификатором группы пользователя или одним из идентификаторов дополнительной группы пользователя, если только у пользователя нет соответствующих привилегий. Дополнительные ограничения могут привести к игнорированию битов set-user-ID и set-group-ID в MODE или RFILE. Это поведение зависит от политики и функциональности основного системного вызова chmod. В случае сомнений проверьте поведение системы.

chmod сохраняет биты set-user-ID и set-group-ID каталога, если вы не укажете иное. Вы можете установить или очистить биты с помощью символических режимов, таких как u + s и g-s, и вы можете установить (но не очистить) биты с помощью числового режима.

Флаг ограниченного удаления (или «Sticky Bit»)

Ограниченный флаг удаления или закрепленный бит — это один бит, интерпретация которого зависит от типа файла. Это предотвращает удаление или переименование файла в каталоге пользователям, которые не владеют файлом или каталогом; это называется флагом ограниченного удаления для каталога и обычно встречается в каталогах, доступных для записи во всем мире, таких как / tmp. Для обычных файлов в некоторых старых системах этот бит сохраняет текстовое изображение программы на устройстве подкачки, поэтому при запуске он загружается быстрее; это называется липким битом.

 

Как посмотреть разрешения файла

Быстрый и простой способ составить список прав доступа к файлу с помощью опции длинного списка (-l) команды ls. Например, чтобы просмотреть разрешения для file.txt, вы можете использовать команду:

ls -l file.txt

… который будет отображать вывод, который выглядит следующим образом:

rwxrw-r— 1   user   usergroup  123   Feb 03 15:36   file.txt

 

Примеры использования chmod

chmod 644 file.htm

Устанавливает для файла file.htm права «владелец может читать и писать; группа может только читать; другие могут только читать».

chmod -R 755 myfiles

Рекурсивно (-R) меняет разрешения для каталога myfiles и всех его папок и файлов на режим 755. Пользователь может читать, записывать и выполнять; члены группы и другие пользователи могут читать и выполнять, но не могут писать.

chmod u=rw example.jpg

Меняет разрешения для владельца example.jpg, чтобы владелец мог читать и записывать файл. Не меняет права доступа для группы или для других.

chmod u+s comphope.txt

Устанавливает бит «Set-User-ID» файла comphope.txt, чтобы каждый, кто пытается получить доступ к этому файлу, сделал это так, как если бы он был владельцем файла.

chmod u-s comphope.txt

Противоположность вышеупомянутой команды; снимает бит SUID

chmod 755 file.cgi

Устанавливает разрешения для file.cgi на «чтение, запись и выполнение владельцем» и «чтение и выполнение группой и всеми остальными».

chmod 666 file.txt

Устанавливает разрешение file.txt на «чтение и запись всеми».

chmod a=rw file.txt

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

 

Chown – изменение владельца

 

В Linux у каждого файла и каждого каталога есть два владельца: пользователь и группа.

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

Чтобы увидеть текущие назначения владельца, вы можете использовать команду

 ls -l.

Эта команда показывает пользователя и группу-владельца.

Изменение владельца

Чтобы применить соответствующие разрешения, первое, что нужно учитывать, это владение. Для этого есть команда

chown

. Синтаксис этой команды несложен для понимания:

chown кто
 что

 

chown [OPTIONS] USER[:GROUP] FILE(s)

USER является именем пользователя или идентификатором пользователя (UID) нового владельца. GROUP это имя новой группы или идентификатор группы (GID). FILE(s) это имя одного или нескольких файлов, каталогов или ссылок. Числовые идентификаторы должны начинаться с + символа.

  • USER — Если указан только пользователь, указанный пользователь станет владельцем данных файлов, владение группой не изменится.
  • USER: — Когда за именем пользователя следует двоеточие : , а имя группы не указывается, пользователь становится владельцем файлов, а принадлежность группы файлов изменяется на группу входа пользователя.
  • USER:GROUP — Если указаны и пользователь, и группа (без пробелов между ними), пользовательское владение файлами изменяется на данного пользователя, а групповое владение изменяется на данную группу.
  • :GROUP — Если пользователь не указан, а перед группой стоит двоеточие : , то только группа, владеющая файлами, будет изменена на данную группу.
  • : Если задано только двоеточие : , без указания пользователя и группы, никаких изменений не производится.

 

Чтобы изменить владельца файла, используйте

chown

команду, за которой следует имя пользователя нового владельца и целевой файл в качестве аргумента:

chown USER FILE

Например, следующая команда изменит владельца файла с именем file1 на нового владельца с именем linuxize :

chown linuxize file1

Чтобы изменить владельца нескольких файлов или каталогов, укажите их в виде списка через пробел. Команда ниже меняет владельца файла с именем file1 и каталогом dir1 на нового владельца с именем linuxize :

chown linuxize file1 dir1

Числовой идентификатор пользователя (UID) можно использовать вместо имени пользователя. Следующий пример изменит владельца файла с именем file2 на нового владельца с UID 1000 :

chown 1000 file2

Если в качестве имени пользователя существует числовой владелец, то владение будет перенесено в имя пользователя. Чтобы избежать этого префикса, идентификатор с помощью + :

chown 1000 file2

 

Поиск файлов владельца или группы

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

find  / -
user 
username

Для поиска по группе:

find / -
group 
groupname

Изменение владельца группы

Есть два способа изменить владение группой. Вы можете сделать это, используя

chown

, но есть специальная команда с именем

chgrp,

которая выполняет эту работу. Если вы хотите использовать команду

chown

, используйте . или : перед названием группы.

Чтобы изменить только группу файла, используйте chown команду с двоеточием ( : ) и именем новой группы (без пробелов между ними) и целевой файл в качестве аргумента:

chown :GROUP FILE

Следующая команда изменит группу-владельца файла с именем file1 на www-data :

chown :www-data file1

Еще одна команда, которую вы можете использовать для изменения групповой принадлежности файлов — это

chgrp

.

Команда

chgrp

принимает следующую форму:

chgrp [OPTIONS] GROUP FILE..
  • GROUP, название новой группы или идентификатор группы (GID). Числовой GID должен начинаться с +символа.
  • FILE.., имя одного или нескольких файлов.

В отличие от

chown

 команды, которая позволяет изменять владельца группы и пользователя,

chgrp

изменяется только принадлежность группы.

Как рекурсивно изменить владельца файла

Чтобы рекурсивно работать со всеми файлами и каталогами в данном каталоге, используйте параметр -R ( —recursive ):

chown -R USER:GROUP DIRECTORY

Следующий пример изменит владельца всех файлов и подкаталогов в /var/www каталоге на нового владельца и группу с именем www-data :

chown -R www-data: /var/www

Если каталог содержит символические ссылки, передайте -h опцию:

chown -hR www-data: /var/www

Другими параметрами, которые можно использовать при рекурсивном изменении владельца каталога, являются -H и -L .

Если аргумент, переданный chown команде, является символической ссылкой, указывающей на каталог, эта -H опция заставит команду пройти по ней. -L указывает chown на прохождение каждой символической ссылки в каталог, который встречается. Обычно вы не должны использовать эти параметры, потому что вы можете испортить вашу систему или создать угрозу безопасности.

 

Использование справочного файла

—reference=ref_file Опция позволяет изменить пользователя и группы владельца указанные файлы , чтобы быть такими же , как в указанном отпечатком ( ref_file ). Если ссылочный файл является символической ссылкой, chown будут использоваться пользователь и группа целевого файла.

chown --reference=REF_FILE FILE

Например, следующая команда назначит пользователя и владельца группы file1 для file2

chown --reference=file1 file2

 

Источники:

https://habr.com/ru/post/469667/

https://baks.dev/article/terminal/chown-command-in-linux-file-ownership

https://baks.dev/article/terminal/chgrp-command-in-linux-change-group

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.