Сервер: Пользователи, группы, права доступа в 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
Права доступа
Символьные значения прав доступа:
Варианты записи прав пользователя
Права доступа состоят из трёх цифр. Первая цифра – права владельца, вторая цифра – права группы, третья цифра – права всех остальных пользователей. Например:
- 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
Код был обновлён. Предыдущий рейтинг:
centos установить права на папку
Как установить права доступа на запись в папку и на все подпапки и файлы:
chmod -R 755 /home/vasya
смена прав, -R рекурсивно, т.е. изменит и то, что внутри каталога vasya
циферки — это три отдельных атрибута:
7 — rwx — читать, писать, выполнять
6 — rw- — читаь, писать
5 — r-x — читать, выполнять
4 — r— — читать
3 — -wx — писать, выполнять
2 — -w- — писать
1 — —x — выполнять
0 — — — ничего нельзя делать
Первая цифра означает применения прав для пользователя,
Вторая — для группы
Третья — права для всех остальных
Для смены владельца файлов/каталогов используем chown:
chown -R vasya:users /home/vasya
поменяет владельца и группу каталога vasya и содержимое онного!
Установка прав доступа выполняется командой chmod. Например
Этой командой мы устанавливаем полные права для всех на каталог www. -R — смена прав выполняется рекурсивно для всех файлов и каталогов внутри www. Цифры определяют права доступа, первая для пользователя, вторая для группы, третья для всех остальных:
7- rwx — читать, писать, выполнять
6 — rw — читать, писать
5 — rx — читать, выполнять
4 — r — читать
3 — wx — писать, выполнять
2 — w — писать
1 — x — выполнять
0 — ничего нельзя делать
Для смены владельца используется команда chown. Например
По аналогии с chmod устанавливаем владельца apache для для всех файлов и каталогов внутри www.
More In RHEL / CentOS / Fedora
Конфигурурирование автозапуска сервисов
Конфигурирование автозапуска сервисов в RHEL / CentOS /Fedora выполняется командой chkconfig. Синтаксис ее таков # chkconfig —list service_name # chkconfig —add service_name # chkconfig —del service_name…read more →
Отключение SELinux в RHEL / CENTOS / FEDORA (Disable SELinux in RHEL / CENTOS / FEDORA)
Немного теории)) SELinux (англ. Security-Enhanced Linux — Linux с улучшенной безопасностью) — реализация системы принудительного контроля доступа, которая может работать параллельно с классической дискреционной системой…read more →
Система прав доступа к файлам и папкам в Linux организована очень интересно. Права разделяются на три категории: права владельца, права группы файла и права всех остальных. Прочитать подробнее про права в Linux можно в отдельной статье.
Иногда возникает необходимость дать определенному пользователю или программе возможность доступа к папке. На первый взгляд, это может показаться сложным, но решается все довольно просто. В этой статье мы разберем как дать права на папку пользователю Linux.
Права пользователя на папку Linux
Как я уже сказал, права делятся на три категории для владельца, для группы и для всех остальных. Таким образом, мы можем дать пользователю доступ к папке несколькими способами:
- Изменить права для всех — тогда все пользователи получат доступ к нашей папке, в том числе и нужный пользователь. Но, обычно, так никто не делает, потому что это небезопасно и в производственных системах важные данные могут попасть в чужие руки;
- Изменить владельца папки на нашего пользователя — по умолчанию владелец имеет полные права на папку, то есть запись и чтение. Если мы сделаем владельцем нашего пользователя, то он автоматически получит все права, а другие пользователи по-прежнему не смогут получить доступ к папке. Но такой вариант тоже не совсем правильный, потому что, обычно, у папки уже есть владелец и изменив владельца мы уберем у него доступ;
- Добавить к папке группу и добавить в нее пользователя — самый верный путь. Файл или папка может принадлежать определенной группе пользователей, но только одной, и мы можем установить для этой группы отличающиеся от владельца права. Но в группу можно добавить несколько пользователей, поэтому мы никого не оставляем без доступа. По умолчанию, для всех файлов устанавливается группа владельца, но это можно очень просто изменить.
Теперь давайте разберем как это реализуется на практике. Допустим, у нас есть папка /storage, владельцем которой является пользователь /root:
У папки такие права, что записывать в нее данные может только root, а другие пользователи могут их только смотреть. Нам надо предоставить к ней доступ на запись и чтение пользователю sergiy. Сейчас у него такого доступа нет:
Давайте создадим группу storage и добавим в нее пользователя sergiy:
sudo groupadd storage
sudo usermod -aG storage sergiy
Смотрим список групп нашего пользователя:
После добавления пользователя в группу нужно перелогиниться, чтобы система увидела это изменение. Затем меняем группу нашей папки на storage:
sudo chgrp storage /storage
Если нужно дать права на папку в Linux еще какому-нибудь пользователю, то достаточно добавить его в эту группу. Посмотрим список пользователей группы:
Теперь наша папка выглядит вот так:
Осталось подправить права для группы, нужно дать разрешение на чтение и запись:
Затем пользователь sergiy сможет записывать и читать файлы из этой папки, а все остальные пользователи только читать.
Выводы
В этой небольшой статье мы рассмотрели дать права пользователю linux на доступ к папке. Для серверов это может быть достаточно частой задачей, поскольку пользователи — это не только люди, использующие систему, но и программы, выполняемые от имени того или иного пользователя. А это создает еще одно применение для этой системы прав. Если у вас остались вопросы, спрашивайте в комментариях!