Вики / Пользователи и права
chmod / chown
Смена прав (chmod) и владельца/группы (chown) — числовой и символьный синтаксис.
- chmod меняет права (rwx).
- chown меняет владельца и группу.
Основы модели прав — в статье «Права доступа» (см. «См. также»).
Два синтаксиса:
# числовой (r=4 w=2 x=1)
chmod 644 file # rw-r--r--
chmod 755 script # rwxr-xr-x
chmod 600 ~/.ssh/id_ed25519 # приватный ключ — только владельцу
# символьный
chmod u+x script.sh # +x владельцу
chmod go-w file # убрать запись группе и остальным
chmod a+r file # всем чтение
chmod -R u+rwX dir # рекурсивно; X = x только каталогам/уже-исполняемым
X (заглавная) удобна рекурсивно: ставит x каталогам, но не каждому файлу.
chown alice file # сменить владельца
chown alice:devs file # владельца и группу
chown :devs file # только группу
chown -R www-data:www-data /var/www/site # рекурсивно (типично для веба)
chown --reference=good.txt bad.txt # скопировать владельца с другого файла
chmod 777 «на всякий случай»
Почти всегда неправильно и опасно (особенно на каталоги/веб). Подбирай
минимально нужное: файлы 644, скрипты 755, секреты 600, общие каталоги 1777.
Рекурсия сломала исполняемость
chmod -R 644 dir снимет x с каталогов → в них не зайти. Используй u+rwX или
раздельно: find dir -type d -exec chmod 755 {} + и -type f -exec chmod 644 {} +.
Сменил владельца — служба перестала читать
Многие демоны работают от своего пользователя (www-data, postgres). Владелец
файлов должен совпадать с пользователем службы.
chmod 644 file # rw-r--r--
chmod 755 script # rwxr-xr-x
chmod 600 secret # только владелец
chown user:group file
chown -R www-data:www-data /var/www/site
См. также
- Права доступа (rwx, SUID, sticky) — Пользователи и права
- Пользователи и группы — Пользователи и права