Ликбез
Половина загадочных проблем на сервере — «permission denied» — упирается в права. Система на деле простая: девять переключателей и две команды. Разберём так, чтобы 755 читалось как слово, а не как заклинание.
У каждого файла есть владелец и группа, а права описываются трижды: что можно владельцу, что группе, что всем остальным. В каждой тройке три действия: читать (r), писать (w), выполнять (x). Вывод ls -l показывает их одной строкой:
ls -l script.sh -rwxr-xr-- 1 admin admins 512 авг 30 12:00 script.sh # rwx владелец admin: читает, пишет, запускает # r-x группа admins: читает и запускает # r-- остальные: только читают
Числовая запись — те же переключатели суммой: r = 4, w = 2, x = 1. Владелец rwx = 7, группа r-x = 5, остальные r-- = 4: получилось 754. Отсюда классика: 755 — «моё, остальным смотреть и запускать», 644 — «моё, остальным только читать», 600 — «только моё».
chmod 755 script.sh # задать права числом chmod +x script.sh # то же по-человечески: добавить запуск chmod -R 750 /var/www/site # рекурсивно на каталог (осторожно!) chown ivan:admins otchet.txt # сменить владельца и группу chown -R www-data: /var/www # отдать каталог веб-серверу id ivan # в каких группах состоит пользователь
Тема прав — любимый фильтр «читал или делал»: просят объяснить 755 словами, дать права группе на запись, объяснить, почему скрипт не запускается (нет x) или файл не читается из веб-сервера (не тот владелец). Все ответы — выше; закрепляются они получасом на стенде: создай файлы, поменяй права, попробуй прочитать чужим пользователем. Полный набор вопросов — в разборе собеседования.
На курсе Linux с нуля права проходят не параграфом, а сквозной темой: каждая работа со службами и файлами упирается в них, и к концу курса рука ставит их не задумываясь.
{ Довести Linux до автоматизма }Sudo выполняет команду от имени root — пользователя, для которого проверки прав не действуют. Поэтому «через sudo работает, без него нет» — диагноз: у твоего пользователя не хватает прав, и чинить надо их, а не приучаться жить под root.
Специальные биты: setuid/setgid (программа выполняется с правами владельца, классический пример — passwd) и sticky (в каталоге /tmp удалять можно только своё). На старте достаточно узнавать их в лицо.
Да, ACL: точечные права конкретным пользователям поверх базовых (команды getfacl/setfacl). Нужны, когда «владелец-группа-остальные» перестаёт хватать; в Windows-мире их роль играет NTFS, смотри разбор файлового сервера.
ИП Апалин Владимир Александрович
ИНН 470517286143
ОГРНИП 323784700274393
Оставьте контакты — перезвоним и ответим.
Заявка отправлена. Скоро свяжемся.