Сервер: Пользователи, группы, права доступа в Linux

Создание пользователя, добавление в группу, назначение разрешений.

Файл /etc/passwd содержит список пользователей

  • Регистрационное имя. Регистрационные имена должны быть уникальными и состоять не более чем из 32 символов. Они могут содержать любые символы, кроме двоеточия и символа новой строки. Они не должны начинаться с цифры.
  • Зашифрованный пароль или «заполнитель» пароля. В данном поле возможно присутствие символа «х», символа «*» или набора случайных символов и чисел. В первом случае указывается, что пароль храниться в файле /etc/shadow. Во втором случае говорится, что данная учетная запись временно отключена. В последнем случае указывается непосредственный пароль пользователя в зашифрованном виде.
  • Идентификатор пользователя - это 32-битное целое число, которое уникально идентифицирует пользователя в системе. По умолчанию, идентификаторы меньше 500 зарезервированы для служебных учетных записей. Регулярные пользователи имеют идентификаторы, начиная с 500.
  • Идентификатор группы по умолчанию. Как и идентификатор пользователя, идентификатор группы (GID) является 32-битным целым числом. Идентификатор 0 зарезервирован для группы с именем root, идентификатор 1 - для группы bin, а 2 - для группы daemon. Группы определяются в файле /etc/group, а поле идентификатора группы в файле /etc/passwd задает стандартный («эффективный») идентификатор на момент регистрации пользователя в системе. Этот идентификатор не играет особой роли при определении прав доступа; он используется лишь при создании новых файлов и каталогов. Новые файлы обычно включаются в эффективную группу своего владельца, но если у каталога установлен специальный бит setgid (02000) или файловая система смонтирована с опцией grpid, новые файлы принадлежат группе владельца каталога. По умолчанию, в ОС Linux для каждого нового пользователя создается новая группа с таким же регистрационным именем и идентификатором.
  • Поле персональных данных. Поле GECOS в основном используется для хранения персональной информации о каждом пользователе. Оно не имеет четко определенного синтаксиса. Структура данного поля может быть произвольной, но команда finger интерпретирует разделенные запятыми элементы данного поля в следующем порядке: полное имя; номер офиса и здания; рабочий телефон; домашний телефон.
  • Домашний каталог. Войдя в систему, пользователь попадает в свой домашний каталог. Если на момент регистрации этот каталог отсутствует, выводится сообщение о его отсутствии. Если в качестве значения поля домашнего каталога по умолчанию DEFAULT_HOME в файле /etc/login.defs установлено «no», продолжение регистрации пользователя будет невозможно; в противном случае пользователь попадает в корневой каталог. По умолчанию, домашние каталоги пользователей создаются в каталоге /home. При добавлении в систему нового пользователя в его домашний каталог копируются все файлы из каталога /etc/skel, в котором содержаться персональные конфигурационные файлы командного интерпретатора и различных программ.
  • Командный интерпретатор. В качестве регистрационной оболочки, как правило, задается интерпретатор команд, например, /bin/sh или /bin/csh, но, в принципе, это может быть любая программа. По умолчанию используется интерпретатор bash. Пользователи могут менять интерпретатор с помощью команды chsh. Файл /etc/shells содержит список тех интерпретаторов, которые доступны для выбора.

Файл /etc/group содержит имена групп и списки членов каждой группы

  • Имя группы. По умолчанию при создании нового пользователя создается также его группа с таким же именем, как и регистрационное имя пользователя.
  • Зашифрованный пароль или символ х, указывающий на использование файла /etc/gshadow;
  • Идентификатор группы.
  • Список членов, разделенный запятыми без пробелов.

Файл /etc/shadow доступен для чтения только пользователю root и предназначен для хранения зашифрованных паролей

  • Регистрационное имя. Регистрационное имя берется из файла /etc/passwd. Оно связывает записи файлов /etc/passwd и /etc/shadow.
  • Зашифрованный пароль.
  • Дата последнего изменения пароля. Данное поле обычно заполняется командой passwd.
  • Минимальное число дней между изменениями пароля. В данном поле задается количество дней, спустя которые пользователь сможет снова изменить пароль.
  • Максимальное число дней между изменениями пароля. Максимальное время жизни пароля определяется суммой значений данного и седьмого полей.
  • Количество дней до истечения срока действия пароля, когда выдается предупреждение. В данном поле задано количество дней, оставшихся до момента устаревания пароля, когда программа login должна предупреждать пользователя о необходимости изменить пароль.
  • Количество дней по истечении срока действия пароля, когда учетная запись отключается.
  • Срок действия учетной записи. По окончанию этого срока пользователь не сможет зарегистрироваться в системе, пока администратор не сбросит значение поля. Если поле содержит пустое значение, учетная запись всегда будет активной.
  • Зарезервированное поле, которое в настоящее время всегда пустое.

// Создать пользователя username
useradd username

// Установить пароль пользователю username
passwd username

// Добавить пользователя username в группу groupname
usermod -a -G groupname username

// Узнать в какой группе пользователь username
id username 

groups username

// Удалить юзера (удаляет учётную запись и файлы пользователя)
userdel username

Права доступа

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

  • r - read, чтение
  • w - write, запись
  • x - execute, выполнение

Варианты записи прав пользователя

Двоичная система Восьмеричная система Символьная Права на файл Права на каталог
000 0 --- нет нет
001 1 --x выполнение чтение свойств файлов
010 2 -w- запись нет
011 3 -wx запись и выполнение всё, кроме получения имени файлов
100 4 r-- чтение чтение имён файлов
101 5 r-x чтение и выполнение доступ на чтение файлов/их свойств
110 6 rw- чтение и запись чтение имён файлов
111 7 rwx все права все права

Права доступа состоят из трёх цифр. Первая цифра – права владельца, вторая цифра – права группы, третья цифра – права всех остальных пользователей. Например:

  • 644 (-rw-r--r-- или 110 100 100) – все пользователи имеют право чтения; владелец может редактировать
  • 755 (-rwxr-xr-x или 111 101 101) – каждый пользователь имеет право читать и запускать на выполнение; владелец может редактировать
  • 777 (-rwxrwxrwx или 111 111 111) – каждый пользователь может читать, редактировать и запускать на выполнение

// Изменить владельца файла
chown root /var/run/httpd.pid

// Рекурсивно изменить владельца и группу для каталога /var/www/html/site и всех файлов
chown -R username:groupname /var/www/html/site

// Изменить права доступа к каталогу/файлу
chmod 755 /var/www/html/site
chmod 644 /var/www/html/site/index.html

// Просмотр текущих прав доступа каталога/файла
ls -l /var/www/html/site
ls -l /var/www/html/site/index.html


Код был обновлён. Предыдущий рейтинг:

  • Бесполезный код - 0 голосов
  • Костыль - 0 голосов
  • Полезный код - 2 голоса
Сервер Linux up: просмотров: 9.7k