Поиск по сайту:
Влюбленный в одну особу страстно — терпит другую только по расчету (К. Прутков).

Специальные разрешения для файлов в Linux. SUID, GUID и Sticky Bit

15.04.2020
Специальные разрешения Linux: SUID, GUID и Sticky Bit

Права доступа к файлам и владение ими — основная и все же важная концепция безопасности в Linux. Вы, наверное, уже знакомы с этими условиями. Обычно это выглядит так:

Обычные права доступа к файлам

Обычные права доступа к файлам

 

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

Специальные разрешения Linux: SUID, GUID и Sticky Bit

 

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

Теперь мы покажем вам некоторые специальные разрешения с новыми буквами в файловой системе Linux.

В этом примере команда passwd, отвечающая за изменение пароля пользователя, имеет букву s в том же месте, которое мы ожидаем увидеть, x или — для прав пользователя. Важно отметить, что этот файл принадлежит пользователю root и корневой группе.

 

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

 

Что такое SUID?

Когда бит SUID установлен для исполняемого файла, это означает, что файл будет выполняться с теми же разрешениями, что и владелец исполняемого файла.

Специальные разрешения для файлов в Linux. SUID, GUID и Sticky Bit

 

Давайте возьмем практический пример. Если вы посмотрите на двоичный исполняемый файл команды passwd, у него установлен бит SUID.

andreyex:~$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 59640 Mar 22  2019 /usr/bin/passwd

 

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

В чем выгода? Команде passwd необходимо отредактировать файлы, такие как /etc/passwd, /etc/shadow, чтобы изменить пароль. Эти файлы принадлежат пользователю root и могут быть изменены только пользователем root. Но благодаря флагу setuid (бит SUID) обычный пользователь также сможет изменять эти файлы (принадлежащие пользователю root) и менять свой пароль.

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

Читать  Найти и заменить в Vim/Vi

 

Теперь, когда вы понимаете концепцию SUID, давайте посмотрим, как установить бит SUID.

Как установить бит SUID?

Я нахожу символический способ проще при установке бита SUID. Вы можете использовать команду chmod следующим образом:

chmod u+s file_name

 

Вот пример:

andreyex:~$ ls -l test.txt
-rwxrw-rw- 1 andreyex andreyex 0 Apr 12 17:51 test.txt
andreyex:~$ chmod u+s test.txt
andreyex:~$ ls -l test.txt
-rwsrw-rw- 1 andreyex andreyex 0 Apr 12 17:52 test.txt

 

Вы также можете использовать числовой способ. Вам просто нужно добавить четвертую цифру к обычным разрешениям. Восьмеричное число, используемое для установки SUID, всегда равно 4.

andreyex:~$ ls -l test2.txt
-rwxrw-rw- 1 andreyex andreyex 0 Apr 12 17:53 test2.txt
andreyex:~$ chmod 4766 test2.txt
andreyex:~$ ls -l test2.txt
-rwsrw-rw- 1 andreyex andreyex 0 Apr 12 17:54 test2.txt

Как удалить SUID?

Вы можете использовать любой символический режим в команде chmod следующим образом:

chmod u-s test.txt

 

Или используйте числовой способ с 0 вместо 4 с разрешениями, которые вы хотите установить:

chmod 0766 test2.txt

Как найти все файлы с установленным SUID?

Если вы хотите искать файлы с этим разрешением, используйте команду find в терминале с параметром -perm.

find / -perm /4000
Специальные разрешения для файлов в Linux. SUID, GUID и Sticky Bit_1

 

Структура каталогов Linux объяснена для начинающих

Это руководство объясняет структуру каталогов Linux. Вы изучите иерархию файловой системы Linux вместе с назначением различных каталогов в системе Linux.

 

Что такое SGID?

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

Это преимущество в обращении с каталогом. Когда разрешение SGID применяется к каталогу, все подкаталоги и файлы, созданные в этом каталоге, получат то же владение группой, что и основной каталог (а не владение группой пользователя, создавшего файлы и каталоги).

Специальные разрешения для файлов в Linux. SUID, GUID и Sticky Bit_2

 

Читать  Как использовать WPScan, чтобы легко найти уязвимости вашего сайта wordpress

Откройте свой терминал и проверьте разрешение на файл /var/local:

andreyex:~$ ls -ld /var/local
drwxrwsr-x 1 root staff 512 Apr 24  2018 /var/local

 

Эта папка /var/local содержит букву ‘s’ в том же месте, где вы ожидаете увидеть ‘x’ или ‘-‘ для групповых разрешений.

Практическим примером SGID является сервер Samba для обмена файлами в локальной сети. Гарантируется, что все новые файлы не потеряют нужные разрешения, независимо от того, кто их создал.

 

Как установить SGID?

Вы можете установить бит SGID в символическом режиме следующим образом:

chmod g+s directory_name

 

Вот пример:

andreyex:~$ ls -ld folder/
drwxrwxr-x 2 andreyex andreyex 4096 Apr 15 13:21 folder/
andreyex:~$ chmod g+s folder
andreyex:~$ ls -ld folder/
drwxrwsr-x 2 andreyex andreyex 4096 Apr 15 13:21 folder/

 

Вы также можете использовать числовой способ. Вам просто нужно добавить четвертую цифру к обычным разрешениям. Восьмеричное число, используемое для SGID, всегда равно 2.

andreyex:~$ ls -ld folder2/
drwxrwxr-x 2 andreyex andreyex 4096 Apr 15 13:22 folder2/
andreyex:~$ chmod 2775 folder2
andreyex:~$ ls -ld folder2/
drwxrwsr-x 2 andreyex andreyex 4096 Apr 15 13:22 folder2/

 

Как убрать бит SGID?

Просто используйте -s вместо + s следующим образом:

chmod g-s folder

 

Удаление SGID — это то же самое, что удаление SGID. Используйте дополнительные 0 перед разрешениями, которые вы хотите установить:

chmod 0755 folder

 

Как найти файлы с установленным SGID в Linux

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

find . -perm /2000

 

Что такое Sticky Bit?

Липкий бит работает над каталогом. Если для каталога установлен липкий бит, все файлы в каталоге могут быть удалены или переименованы только владельцами файлов или пользователем root.

Что такое Sticky Bit

 

Обычно это используется в каталоге /tmp, который работает как корзина временных файлов.

andreyex:~$ ls -ld /tmp
drwxrwxrwt 1 root root 512 Apr 12 13:24 /tmp

 

Как видите, папка /tmp имеет букву t в том же месте, где мы ожидаем увидеть x или — для других разрешений. Это означает, что пользователь (кроме root) не может удалить временные файлы, созданные другими пользователями в каталоге /tmp.

Читать  Разница между ${} и $() в Bash

 

Как установить липкий бит?

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

chmod +t my_dir

 

Вот пример:

andreyex:~$ ls -ld my_dir/
drwxrwxr-x 2 andreyex andreyex 4096 Apr 15 13:54 my_dir/
andreyex:~$ chmod +t my_dir/
andreyex:~$ ls -ld my_dir/
drwxrwxr-t 2 andreyex andreyex 4096 Apr 15 13:54 my_dir/

 

Числовой способ — добавить четвертую цифру к обычным разрешениям. Восьмеричное число, используемое для закрепленного бита, всегда равно 1.

andreyex:~$ ls -ld my_dir/
drwxrwxr-x 2 andreyex andreyex 4096 Apr 15 13:55 my_dir/
andreyex:~$ chmod 1775 tmp2/
andreyex:~$ ls -ld tmp2/
drwxrwxr-t 2 andreyex andreyex 4096 Apr 15 13:55 my_dir/

 

Как удалить липкий бит:

Вы можете использовать символический режим:

chmod -t my_dir

 

Или числовой режим с 0 до обычных разрешений:

chmod 0775 tmp2

 

Как найти файлы с установленным битом в Linux

Эта команда вернет все файлы / каталоги с установленным битом:

andreyex:~$ find . -perm /1000

 

Если каталог не имеет разрешения на выполнение для всех, установка залипшего бита приведет к отображению T вместо t. Указание на то, что с липким битом все не совсем правильно.

 

Вывод

Мы добавили сюда эту картинку, чтобы вспомнить, что вы только что узнали:

Как найти файлы с установленным битом в Linux

 

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

Мы надеемся, что эта статья дала вам хорошее понимание SUID, GUID и Sticky Bit в Linux. Если у вас есть вопросы или предложения, пожалуйста, оставьте комментарий ниже.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:



Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

**ссылки nofollow

Это может быть вам интересно


Рекомендуемое
Если вы новичок в области разработки программного обеспечения, самая сложная…

Спасибо!

Теперь редакторы в курсе.