Как начинающий пользователь Linux, вы узнаете о разрешениях и правах собственности, связанных с файлом и каталогами. Операционные системы, подобные Linux / Unix, позволяют вам установить комбинацию девятибитных разрешений, чтобы предотвратить доступ других пользователей к ненужным файлам / каталогам. Похоже на них - специальные разрешения для исполняемых файлов, известные как установка UID, установка GID и липкие биты.
Понимание специальных разрешений может быть немного сложным для начинающих администраторов Linux. Здесь вы узнаете немного об обычных разрешениях для файлов и объясните, чем они отличаются от специальных разрешений. Мы также демонстрируем функциональность SetID, GetID и липких битов с примерами для полного понимания.
Обычные разрешения для файлов Linux
Linux использует команда chmod назначить / изменить чтение (г = 4), написать (ш = 2) и выполнить (х = 1) разрешения на файлы и папки. То есть девять упомянутых выше битов относятся к трем основным категориям групп разрешений. Первые три предназначены для пользователя, владеющего файлом, второй набор - для группы, назначенной файлу / каталогу, а последние три представляют всех остальных пользователей.
Например, в обычном файле все типы разрешений для всех категорий пользователей будут отображаться как -rwxrwxrwx. В то время как - вместо букв означают отсутствие такого разрешения. В настоящее время chmod команда использует цифры и буквы для изменения разрешений следующим образом:
файл sudo chmod 755 # для rwxr-xr-x
файл sudo chmod 644 # для rw-r - r--
sudo chmod a-w файл # для r-xr-xr-x
sudo chmod a + x file # для --x - x - x
Специальные права доступа к файлам Linux
В Setuid бит представляет собой разрешение на исполняемый файл, который могут запускать другие пользователи с разрешения владельца. Например, когда пользователь Максимум запускает команду vi от имени пользователя Джон, у вас будут права на чтение и запись Джон.
Чтобы идентифицировать файлы с помощью setuid, используйте ls команду и ищите s бит вместо исполняемого бита Икс, следующее.
Установить бит UID
В Setuid бит представляет собой разрешение на исполняемый файл, который могут запускать другие пользователи с разрешения владельца. Например, когда пользователь Максимум запускает команду vi как корень, он будет иметь права чтения / записи корень. Чтобы идентифицировать файлы с помощью setuid, используйте ls команду и ищите s бит вместо бита выполнения Икс, следующее:
ls -la / etc / passwd
-rwsr-xr-x 1 root root 88464 14 декабря 12:46 passwd
Вот еще несколько примеров:
ls -la / bin / gpasswd
-rwsr-xr-x 1 root root 88464 14 июля 15:08 gpasswd
ls -la / bin / su
-rwsr-xr-x 1 root root 67816 21 июл 2020 вс
ls -la / newgrp
-rwsr-xr-x 1 root root 44784 14 июля 15:08 newgrp
ls -la / bin / sudo
-rwsr-xr-x 1 корневой корень 166056 19 января 2021 г. sudo
Чтобы установить бит setuid для исполняемых файлов, используйте команду chmod следующим образом:
chmod u + s / etc / passwd
Чтобы отменить разрешение на выполнение файлов у пользователей или владельцев без полномочий root:
chmod u-s / etc / passwd
Установить бит GID
Как уже говорилось, бит set uid управляет доступом к файлам для других пользователей, а бит setgid (GID) создает совместные каталоги. Это означает, что любой файл, созданный внутри этого каталога, доступен группе каталога. Следовательно, он позволяет всем членам группы запускать исполняемые файлы без прав владельца и защищает их от других пользователей.
Выполните следующие действия, чтобы создать совместный каталог в вашей системе Linux:
Создайте группу, используя groupadd команда с идентификатором группы 415 для совместной работы:
groupadd -g 415 администраторов
Используйте команду usermod, чтобы добавить Джонв группу доступа / исполнения файла.
usermod -aG админы Джон
Использовать mkdir команда для создания каталога:
mkdir / tmp / коллаборативный_директор
Использовать chgrp команда, чтобы назначить каталог для админы группа:
администраторы chgrp / tmp / коллаборативный_директор
Использовать chmod команда для изменения разрешения каталога на 2775. Бит 2 включает установленный gid, 7 - для назначения полного rwx пользователю и группе, а 5 (r-w) - для остальных.
chmod 2775 / tmp / коллаборативный_директор
Наконец, измените свою учетную запись пользователя на Джон и создать файл в каталоге для совместной работы, чтобы проверить права доступа к файлам.
вс - джон
коснитесь /tmp/collaborative_dir/file.txt
Команда su может выдать ошибку аутентификации. В этом случае введите sudo su команда для переключения в корень и перезапуска вс - джон изменить учетную запись пользователя
Теперь перечислите разрешения на проверку битов GID, установленных для каталога и вновь созданного файла.
ls -ld / tmp / коллаборативный_каталог /tmp/collaborative_dir/file.txt
В типичном сценарии файлу, созданному john, будет назначена группа john. Поскольку вы создаете файл в заданном битовом каталоге GID, он назначает разрешения для админы группа, так что любой, кто принадлежит к группе, как пользователь Крис, будет к нему доступ.Связанный: Как создавать новые файлы в Linux с помощью сенсорного экрана
Липкие биты
В отличие от битов SID и GID, липкие биты различаются по функциональности, поскольку они защищают файлы и каталоги от переименования и удаления другими пользователями. Обычное разрешение файла позволяет любому пользователю с правом записи удалить или переименовать файл. В то время как с установленным липким битом это невозможно, если вы не являетесь пользователем root или владельцем файла.
Идеальный сценарий для использования липких битов - это каталог, доступный всем пользователям для создания файлов. Например, используйте ls -ld команда для проверки \ tmp права доступа к каталогам, а именно:
Вы можете заметить, что липкий кусочек т заменяет бит выполнения Икс. Следуйте данному набору инструкций, чтобы создать каталог с ограниченным удалением:
Теперь создайте еще один каталог в /tmp папка:
mkdir / tmp / new_dir
Измените права доступа к файлу на 1777 установить липкий бит (т) и полный доступ к каталогу:
chmod 1777 / tmp / новый_каталог
Теперь скопируйте любой файл из /etc папку в /tmp/new_dir и измените его разрешения на 666:
cp / etc / / tmp / новый_каталог
chmod 666 / tmp / новый_каталог / услуги
Перечислите каталог и все его содержимое для просмотра разрешений:
ls -ld / tmp / новый_каталог / tmp / новый_каталог / услуги
Вы можете заметить липкий бит вместо бита выполнения, что означает, что только корень или пользователь john могут удалить файл, поскольку файл находится внутри каталога липких битов.
Понимание специальных разрешений для файлов в Linux
В статье показано, как установить эти биты для улучшения совместной работы над общими файлами и каталогами и защиты их от несанкционированного доступа, выполнения и удаления. Даже если вы не создаете файлы / каталоги с помощью этих битов, понимание специальных прав доступа к файлам полезно во многих ситуациях, особенно при устранении неполадок или в качестве системного администратора. В то время как неразумное использование этих битов может вызвать различные уязвимости безопасности.
Хотите сохранить права доступа к файлам при копировании файлов в Linux? Вот как это сделать с помощью cp и rsync.
Читать далее
- Linux
- Управление файлами
- Linux
Румайса - писатель-фрилансер в MUO. Она прошла долгий путь от математика до энтузиаста информационной безопасности и работает аналитиком SOC. В ее интересы входит чтение и письмо о новых технологиях, дистрибутивах Linux и обо всем, что связано с информационной безопасностью.
Подписывайтесь на нашу новостную рассылку
Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!
Нажмите здесь, чтобы подписаться