TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #101 632
Удаляем особые режимы разрешений в Linux: SUID, SGID и Sticky bit

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

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

Что такое SUID, SGID и Sticky bit?

SUID (Set User ID):
Позволяет запускать файл с правами владельца, а не текущего пользователя.
Пример: /usr/bin/passwd.

SGID (Set Group ID):
Для файлов: позволяет запускать файл с правами группы-владельца.
Для директорий: все новые файлы и папки наследуют группу родительской директории.

Sticky bit:
Обычно используется для директорий, таких как /tmp. Позволяет удалять файлы только владельцу, даже если папка доступна для записи всем.


1. Как определить наличие специальных флагов? Используйте команду ls с опцией -l:


ls -l file_or_directory


Пример вывода:


-rwsr-xr-x 1 root root 12345 Oct 28 10:00 suid_file
drwxrwsr-x 2 user group 4096 Oct 28 10:00 sgid_dir
drwxrwxrwt 2 user group 4096 Oct 28 10:00 sticky_dir


s в правах владельца (rws) указывает на SUID.
s в правах группы (rws) указывает на SGID.
t в правах других пользователей (rwt) указывает на Sticky bit.

Удаление специальных режимов

1. Удаление SUID

Команда удаления и проверка:


chmod u-s suid_file
ls -l suid_file




-rwxr-xr-x 1 root root 12345 Oct 28 10:00 suid_file


2. Удаление SGID

Команда и проверка:


chmod g-s sgid_dir
ls -ld sgid_dir


Вывод:


drwxrwxr-x 2 user group 4096 Oct 28 10:00 sgid_dir


3. Удаление Sticky bit

Команда и проверка:


chmod o-t sticky_dir
ls -ld sticky_dir


Вывод:


drwxrwxr-x 2 user group 4096 Oct 28 10:00 sticky_dir


Автоматическое удаление флагов с группой файлов. Создадим скрипт для массового удаления специальных флагов:


#!/bin/bash

for file in "$@"; do
echo "Удаляем специальные флаги с $file"
chmod u-s,g-s,o-t "$file"
done


Сохраните скрипт, например, как remove_flags.sh, и не забудьте сделать его исполняемым:


chmod +x remove_flags.sh


Теперь его можно запускать для нескольких файлов:


./remove_flags.sh file1 file2 dir1


Когда стоит удалять специальные флаги?

Устаревшие файлы: Удаляйте SUID/SGID у устаревших программ, которые больше не используются.
Безопасность: SUID/SGID могут быть использованы злоумышленниками для эскалации привилегий.
Упрощение управления: Удаление Sticky bit может быть полезным, если директория больше не используется как общедоступная.


BashTex 📱 #linux #utils
  • 👍 6
More from @bash_tex
  1. Oct 13, 2026openat2(): как Linux защищает от выхода за пределы каталога Допустим, приложение должно чи…
  2. Oct 12, 2026xargs против while read: где быстрее и безопаснее Обе конструкции позволяют обработать спи…
  3. Oct 9, 2026BashTex 📱 #мем
  4. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  5. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  6. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →