chmod изменяет права, а chown — владельца и, при необходимости, группу.
chmod изменяет права, а chown — владельца и, при необходимости, группу.
Как посмотреть права
Команда ls -l показывает права, владельца и группу файла.
ls -l script.sh
-rwxr-xr-- 1 alex developers 120 Aug 13 10:00 script.shПервая часть -rwxr-xr-- описывает права. Первый символ указывает тип объекта: - — файл, d — директория. Остальные символы разделены на три группы: владелец, группа и остальные пользователи.
Что означают r, w и x
r, read — разрешение читать файл или просматривать список файлов в каталоге;
w, write — разрешение изменять файл или создавать и удалять файлы в каталоге;
x, execute — разрешение запускать файл или входить в каталог.
Команда chmod
chmod изменяет права доступа. Их можно задавать числом или символьной записью.
chmod 644 config.txt
chmod 755 script.sh
chmod u+x script.sh
chmod g-w config.txtВ числовой форме: 4 — чтение, 2 — запись, 1 — выполнение. Например, 755 означает: владельцу доступны чтение, запись и выполнение; группе и остальным — чтение и выполнение.
Команда chown
chown изменяет владельца файла. Можно указать также группу через двоеточие.
sudo chown alex file.txt
sudo chown alex:developers file.txt
sudo chown -R www-data:www-data /var/www/appФлаг -R применяет изменение рекурсивно ко всем вложенным файлам и каталогам.
Практическое правило
Не стоит решать проблемы доступа через chmod 777. Такая команда даёт всем пользователям полные права и может создать уязвимость. Лучше определить нужного владельца, группу и минимально необходимые разрешения.
Как ответить на собеседовании
В Linux права задаются для владельца, группы и остальных пользователей: read, write и execute. chmod меняет режим доступа, например chmod 755 script.sh, а chown меняет владельца и группу. Я не использую chmod 777 без крайней необходимости.
Оцени свой прогресс