Оглавление:
В данной статье мы подробно изучим, как функционируют права доступа, а также способы их проверки, изменения и расширения с использованием специализированных инструментов.
Что такое права доступа в Linux?
Права доступа представляют собой систему, которая регулирует взаимодействие пользователей с файлами и папками. Они устанавливают, кто имеет возможность читать (просматривать), изменять (записывать), выполнять (исполнять) файлы и программы.
Базовые категории прав:
- Чтение (r) – можно просматривать файл или перечень файлов в директории.
- Запись (w) – можно изменять файлы, добавлять или удалять их из папки.
- Исполнение (x) – можно выполнять файл как приложение или открывать папку.
Пример базовых прав:
rwxrw-r--
- Первые три символа (rwx) определяют права, предоставленные владельцу файла.
- Следующие три (rw-) указывают на права группы пользователей.
- Последние три (r--) представляют права для всех остальных пользователей.
Как посмотреть права доступа к файлу в Linux?
Проверить текущие настройки можно, выполнив команду ls с флагом -l.
Пример:
ls -l файл.txt
Вывод команды:
-rw-r--r-- 1 user group 1024 Jan 01 12:00 файл.txt
Что значат эти символы?
- rw-r--r--: права доступа.
- 1: количество ссылок на файл.
- user: собственник/создатель файла.
- group: группа собственников/создателей файл.
- 1024: размер файла (байты).
- Jan 01 12:00: дата/время последнего изменения/преобразования.
- файл.txt: имя, присвоенное файлу.
Типы файлов, задаваемые правами доступа:
- обычный файл
- d папка (директория)
- l символическая ссылка
Разделение прав:
- rwx – собственник/создатель файла.
- r-x – группа.
- r-- – другие пользователи.
Как задавать права доступа в Linux
Для того, чтобы назначить или изменить права доступа к файлу или папке в Linux применяется команда chmod.
Установление прав в числовом формате
В Linux права доступа к файлам записываются также в числовой форме с использованием трех цифр, каждая из которых представляет права для различных категорий пользователей:
- Первая цифра - права владельца файла (user).
- Вторая цифра - права группы, к которой принадлежит файл (group).
- Третья цифра - права для всех остальных пользователей (others).
Каждая цифра может принимать от 0 до 7 и представляет собой сумму прав:
- 4 - чтение (read, r)
- 2 - запись (write, w)
- 1 - выполнение (execute, x)
Например:
- 7 (4+2+1) означает чтение, запись и выполнение.
- 6 (4+2) означает чтение и запись.
- 5 (4+1) означает чтение и выполнение.
Для того, чтобы назначить права 755 (чтение, запись и выполнение для собственника; чтение и выполнение для других), запустите команду:
chmod 755 файл.txt
Что это – 755?
- 7 – неограниченный доступ (чтение, запись, исполнение) для собственника/создателя.
- 5 – чтение и исполнение для группы собственников/создателей.
- 5 – чтение и исполнение для других юзеров.
Назначение прав в формате символов
Чтобы добавить право на выполнение (x) для неограниченного числа юзеров, выполните команду:
chmod a+x файл.txt
Флаг a означает "all" – все юзеры.
Изменение прав доступа на папку в Linux
Чтобы произвести изменения в конфигурации прав на директорию и все ее содержимое рекурсивно, включите флаг -R:
chmod -R 644 /путь/к/директории
Совет
Соблюдайте осторожность при назначении прав доступа, особенно на выполнение (x). Некорректные установки способны привести к выполнению нежелательных программ или уязвимостям.
Как поменять владельца и группу файла
Корректировка атрибутов владельца или группы файла один из главных аспектов контроля доступа в Linux. Для этого применяются команды chown и chgrp.
Команда chown
Чтобы задать другого собственника файла, воспользуйтесь командой chown:
chown пользователь файл.txt
Пример:
Замена собственника файла на admin:
chown admin файл.txt
Чтобы одновременно изменить владельца и группу, выполните:
chown пользователь:группа файл.txt
Пример:
Замена собственника на admin и группы на developers:
chown admin:developers файл.txt
Команда chgrp
Если требуется изменить свойства доступа исключительно у группы файла, воспользуйтесь chgrp:
chgrp группа файл.txt
Пример:
Замена группы файла на developers:
chgrp developers файл.txt
Специальные инструменты доступа в Linux
Кроме стандартных прав (rwx), Linux поддерживает специальные, которые расширяют возможности системы безопасности:
- SUID (Set User ID) – запуск программы с правами собственника файла.
- SGID (Set Group ID) – запуск программы с правами группы файла.
- Sticky Bit – предотвращает удаление файлов в директории юзерами, не являющимися их собственниками.
Установка специальных прав
1. Установка SUID
Чтобы установить SUID для определенного файла, используйте флаг u+s:
chmod u+s файл.sh
Проверка SUID:
ls -l файл.sh
Пример вывода:
-rwsr-xr-x 1 root root 1234 Jan 01 12:00 файл.sh
Здесь символ s указывает на активный SUID.
2. Установка SGID
Чтобы установить SGID, используйте флаг g+s:
chmod g+s файл.sh
Проверка SGID:
ls -l файл.sh
Пример вывода:
-rwxr-sr-x 1 root developers 1234 Jan 01 12:00 файл.sh
Символ s в правах группы подтверждает установленный SGID.
3. Установка Sticky Bit
Чтобы применить Sticky Bit к директории, используйте флаг o+t:
chmod o+t /директория
Проверка Sticky Bit:
ls -ld /директория
Пример вывода:
drwxr-xr-t 2 user group 4096 Jan 01 12:00 /директория
Символ t в конце прав доступа сигнализирует об активной установке Sticky Bit.
Примечание: Sticky Bit часто применяется для директории /tmp, чтобы юзеры не имели возможности удалять чужие файлы.
Проверка прав доступа к директории в Linux
Чтобы узнать права для директории и её содержимого, используйте команду ls с флагом -ld:
ls -ld /путь/к/папке
Пример вывода:
drwxr-xr-x 2 user group 4096 Jan 01 12:00 /путь/к/папке
Разберём значения:
- d – тип объекта (папка).
- rwx – права собственника.
- r-x – права группы.
- r-x – права других юзеров.
Применение прав доступа в Linux на практике
1. Установление и изменение прав доступа для команды
Если вам нужно предоставить доступ только на чтение и выполнение файлов командой разработчиков в папке, примените:
chmod 755 /проект/директория
chgrp developers /проект/директория
Результат:
- Собственник имеет неограниченный доступ (rwx).
- Группа имеет возможность чтения и выполнения файлов (r-x).
- Другие юзеры тоже получают возможность чтения и выполнения (r-x).
2. Ограничение доступа с использованием Sticky Bit
Sticky Bit часто применяется для общих директорий, таких как /tmp, где юзеры имеют возможность создавать файлы, но при этом не удалять чужие:
chmod o+t /tmp
Как автоматизировать управление доступом
Чтобы автоматизировать работу с правами доступа можно использовать bash-скрипты.
Пример скрипта: установка прав 755 всем файлам в директории
Создайте файл скрипта и добавьте следующий код:
#!/bin/bash
for file in /путь/к/директории/*; do
if [ -f "$file" ]; then
chmod 755 "$file"
echo "Права 755 назначены для $file"
fi
done
Сохраните и выполните скрипт:
chmod +x script.sh
./script.sh
Результат: Всё содержимое в папке получат права 755.
Хотите уверенно управлять правами доступа и стать экспертом в Linux? Присоединяйтесь к курсу “Администрирование Linux” от Слёрм!
70% практики и работа с реальными кейсами помогут вам выйти на новый уровень в IT. Начать обучение.
Управление правами доступа с помощью ACL
ACL (Access Control List) – это более продвинутые настройки прав доступа, позволяющие назначать права индивидуально для выбранных юзеров или групп, не затрагивая базовые установки.
Проверка работы ACL
Чтобы проверить, включены ли списки управления доступом (ACL) по умолчанию и работают ли они в Linux, а также убедиться, что необходимые инструменты установлены, выполните следующие шаги:
- Проверка поддержки ACL на файловой системе:
- Используйте команду:
mount | grep acl
- Если ACL поддерживается, Вы увидите соответствующий флаг в выводе. Если нет, возможно, Вам нужно будет добавить параметр acl в файл /etc/fstab для нужной файловой системы и перемонтировать её.
- Проверка установки утилит для работы с ACL:
- Убедитесь, что пакеты acl установлены. Для этого используйте:
dpkg -l | grep acl # для Debian/Ubuntu
rpm -qa | grep acl # для Red Hat/CentOS
- Если пакет не установлен, установите его с помощью команды:
sudo apt install acl # для Debian/Ubuntu
sudo yum install acl # для Red Hat/CentOS
- Проверка текущих прав ACL:
- Используйте команду:
getfacl <имя_файла>
- Это покажет текущие права доступа, включая специальные ACL, если они настроены.
Главные команды ACL
1. Просмотр прав доступа с ACL
Для проверки текущих ACL для указанного файла, примените команду getfacl:
getfacl файл.txt
Пример вывода:
file: файл.txt
owner: user
group: group
user::rw-
user:developer:r--
group::r--
mask::r--
other::r--
Разберём значения:
- user::rw- – стандартные права собственника.
- user:developer:r-- – индивидуальные права для юзера developer.
- group::r-- – стандартные права для группы.
- mask::r-- – ограничивающий флаг для дополнительных прав.
- other::r-- – права для других юзеров.
2. Назначение прав с использованием setfacl
- Назначение прав для юзера:
setfacl -m u:developer:rw файл.txt
Здесь:
- m – модификация ACL.
- u:developer:rw – назначение прав rw (чтение и запись) юзеру developer.
- Установка прав для группы:
setfacl -m g:developers:r файл.txt
Пример: Группа developers теперь имеет права только на чтение.
3. Удаление прав ACL
Чтобы исключить права для указанного юзера или группы, используйте -x:
setfacl -x u:developer файл.txt
4. Наследование прав ACL
Чтобы права наследовались для всех вложенных файлов и директорий, установите флаг -R (рекурсивно):
setfacl -R -m u:developer:rw /путь/к/директории
Преимущества использования ACL
- Гибкость: точная настройка доступа для отдельных юзеров и групп.
- Безопасность: возможность настраивать права без смены собственника или группы файла.
- Наследование: автоматическое применение прав к вложенным файлам и директориям.
Разграничение доступа между юзерами
Для многопользовательских систем критически важно правильно разграничивать доступ между юзерами. Вот несколько рекомендаций:
1. Создание групп юзеров
Группы дают возможность централизованно контролировать доступ для нескольких юзеров.
Добавление юзеров в группу:
usermod -aG developers user1
2. Применение специальных прав
Для программ, требующих выполнения с правами владельца, используйте SUID.
В целях обеспечения общего доступа к файлам группы применяйте SGID.
3. Ограничение доступа к конфиденциальным файлам
Назначайте минимально необходимые права и применяйте ACL для точной настройки. Sticky Bit поможет защитить общие директории от несанкционированного удаления файлов.
4. Регулярная проверка прав доступа
Периодически контролируйте текущие настройки прав используя команды ls -l и getfacl.
Готовы узнать все нюансы управления правами доступа и выйти на новый уровень в системном администрировании? Присоединяйтесь к курсу “Администрирование Linux” от Слёрм!
Вы освоите:
- Установку и базовую настройку Linux серверных систем (на примере виртуальных машин)
- Работу в командной строке и с серверными дистрибутивами
- Управление пользователями, правами доступа и памятью
- Настройку системных и файловых сервисов, планирование и автозапуск
- Понимание работы и диагностику ядра Linux
- Создание и отладку bash скриптов для автоматизации задач
- Настройку систем мониторинга и логирования
- Обеспечение безопасности с помощью шифрования, брандмауэров и аудита
За 7 недель вы научитесь работать с правами доступа, конфигурировать системы и автоматизировать рутинные задачи. Начать обучение.
Реклама. Информация о рекламодателе по ссылкам в статье.
Понравился пост, ставь лайк
3Поделитесь своим опытом:
Комментарии проходят модерацию