linux-labs

Вики / Пользователи и права

chmod / chown

Команда Linux ПраваФайлыБазовое

Смена прав (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

См. также