Разрешения и владельцы файлов
Освойте chmod, chown, sticky bit, SUID/SGID и разберитесь, как разрешения предотвращают несанкционированный доступ
«Разрешения и владельцы файлов» — бесплатный урок Cyber Security Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cyber Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cyber Security Academy содержит 4 уроков всего.
Почему важны разрешения
Разрешения на файл определяют, кто может его читать, изменять или запускать. Неправильно настроенные разрешения — одна из самых распространённых причин повышения привилегий и утечек данных.
Объяснение строки разрешений
При выполнении ls -la для каждого файла отображается строка разрешений из 10 символов, например -rwxr-xr--. Разделите её на следующие части: тип файла, разрешения владельца, разрешения группы и разрешения для остальных пользователей.
$ ls -la /etc/passwd
-rw-r--r-- 1 root root 2847 Jan 10 10:00 /etc/passwd
# - = regular file
# rw- = owner (root) can read+write
# r-- = group can read only
# r-- = others can read onlyЧисловые (восьмеричные) разрешения
Разрешения также можно записывать в виде восьмеричных чисел: чтение=4, запись=2, выполнение=1. Сложите их для каждой категории.
# rwxr-xr-- = 754
# rw-rw-r-- = 664 (world-readable, group-writable)
# rwx------ = 700 (private executable)Изменение разрешений: chmod
Используйте chmod для изменения разрешений. Можно использовать символьный режим (u+x) или восьмеричный режим (755).
$ chmod 755 script.sh # rwxr-xr-x
$ chmod u+x script.sh # add execute for owner
$ chmod o-r secret.txt # remove read for others
$ chmod 600 id_rsa # SSH key: owner read/write onlyИзменение владельца: chown
Команда chown изменяет владельца и/или группу файла. Только суперпользователь может назначить владельцем другого пользователя.
$ chown user:group file.txt
$ chown root:root /etc/shadow
$ chown -R www-data:www-data /var/www/html/Специальные разрешения: SUID, SGID и липкий бит
SUID (идентификатор пользователя при выполнении) запускает файл с правами владельца. SGID для каталогов означает, что новые файлы наследуют группу. Липкий бит запрещает удаление файлов пользователям, не являющимся их владельцами.
$ ls -la /usr/bin/passwd
-rwsr-xr-x 1 root root 68208 /usr/bin/passwd
# The "s" in owner execute position = SUID
# This runs as root regardless of who calls itПоиск двоичных файлов SUID (повышение привилегий)
Атакующие ищут двоичные файлы SUID для повышения привилегий. Любой двоичный файл SUID с известной уязвимостью или возможностью неправильного использования может предоставить доступ суперпользователя.
$ find / -perm -4000 -type f 2>/dev/null
/usr/bin/passwd
/usr/bin/sudo
/usr/bin/pkexec
/bin/mountФайл /etc/shadow
/etc/shadow хранит хешированные пароли и доступен для чтения только суперпользователю. Если Вы можете прочитать этот файл, можно попытаться взломать хеши автономно с помощью hashcat или john.
$ ls -la /etc/shadow
-rw-r----- 1 root shadow 1423 Jan 10 /etc/shadow
# Only root and the shadow group can read thisumask: маска разрешений по умолчанию
Значение umask вычитается из 666 (для файлов) или 777 (для каталогов), чтобы задать разрешения по умолчанию для новых файлов. Значение umask 022 означает, что новые файлы будут иметь разрешения 644.
$ umask
0022
$ touch newfile
$ ls -la newfile
-rw-r--r-- 1 user user 0 newfile # 666 - 022 = 644Списки контроля доступа (ACL)
ACL расширяют традиционную модель разрешений Unix, позволяя задавать отдельные разрешения для пользователей помимо триады «владелец/группа/остальные». Используйте getfacl и setfacl.
$ getfacl /var/www/html/
# file: var/www/html/
# owner: root
# group: www-data
user::rwx
group::r-x
other::r-xНеизменяемые файлы: chattr
Команда chattr +i делает файл неизменяемым — даже суперпользователь не может изменить или удалить его. Руткиты используют это, чтобы защищать свои файлы. Проверьте атрибуты с помощью lsattr.
$ chattr +i /etc/passwd # make immutable
$ lsattr /etc/passwd
----i--------e-- /etc/passwd
$ chattr -i /etc/passwd # remove immutabilityБыстрая проверка
Что позволяет разрешение SUID?
Итоги: разрешения на файлы
Освойте chmod, chown и принцип работы SUID. В CTF и реальных тестах на проникновение ошибки настройки SUID — один из самых распространённых путей к получению прав суперпользователя. Всегда проверяйте разрешения на конфиденциальных файлах.
Изучай Cyber Security Academy с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 76
- Уроки
- 303
Часто задаваемые вопросы
Урок «Разрешения и владельцы файлов» бесплатный?
Да — полный текст урока «Разрешения и владельцы файлов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cyber Security Academy, подпишись на CoddyKit PRO. Курс Cyber Security Academy содержит 4 уроков всего.
Чему я научусь в уроке «Разрешения и владельцы файлов»?
Освойте chmod, chown, sticky bit, SUID/SGID и разберитесь, как разрешения предотвращают несанкционированный доступ Ты практикуешь Cyber Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cyber Security Academy?
Предыдущий опыт не требуется. Cyber Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Разрешения и владельцы файлов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cyber Security Academy?
Да. Каждый урок Cyber Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Разрешения и владельцы файлов
- Управление пользователями и группами
- Защита SSH и аутентификация по ключу
- Правила брандмауэра iptables и UFW