Основа философии Linux - все объекты операционной системы - это файлы, для предоставления доступа к тем или иным возможностям системы мы просто даем доступ пользователю к нужным файлам или убираем. Я более подробно рассказывал обо всех правах в статье права доступа к файлам в Linux, здесь же скажу только что у каждого файла есть три группы прав: для владельца, группы и всех остальных.
При создании файла ему тот пользователь, от имени которого он был создан становится его владельцем, а группой устанавливается основная группа владельца. Но владельца файла и группу можно менять, для этого используются команды chown и chgrp. В этой статье будет рассмотрена команда chown linux, а также основные примеры её использования.
Содержание статьи
Команда chown Linux
1. Синтаксис и опции
Синтаксис chown, как и других подобных команд linux очень прост:
$ chown пользователь опции /путь/к/файлу
В поле пользователь надо указать пользователя, которому мы хотим передать файл. Также можно указать через двоеточие группу, например, пользователь:группа. Тогда изменится не только пользователь, но и группа. Вот основные опции, которые могут вам понадобиться:
- -c, --changes - подробный вывод всех выполняемых изменений;
- -f, --silent, --quiet - минимум информации, скрыть сообщения об ошибках;
- --dereference - изменять права для файла к которому ведет символическая ссылка вместо самой ссылки (поведение по умолчанию);
- -h, --no-dereference - изменять права символических ссылок и не трогать файлы, к которым они ведут;
- --from - изменять пользователя только для тех файлов, владельцем которых является указанный пользователь и группа;
- -R, --recursive - рекурсивная обработка всех подкаталогов;
- -H - если передана символическая ссылка на директорию - перейти по ней;
- -L - переходить по всем символическим ссылкам на директории;
- -P - не переходить по символическим ссылкам на директории (по умолчанию).
Утилита имеет ещё несколько опций, но это самые основные и то большинство из них вам не понадобится. А теперь давайте посмотрим как пользоваться chown.
2. Использование chown
Например, у нас есть несколько папок dir и их владелец пользователь sergiy:
ls
Давайте изменим владельца папки dir1 на root:
chown root ./dir1
Если вы хотите поменять сразу владельца и группу каталога или файла запишите их через двоеточие, например, изменим пользователя и группу для каталога dir2 на root:
chown root:root ./dir2
Если вы хотите чтобы изменения применялись не только к этому каталогу, но и ко всем его подкаталогам, добавьте опцию -R:
chown -R root:root ./dir3
Дальше давайте изменим группу и владельца на www-data только для тех каталогов и файлов, у которых владелец и группа root в каталоге /dir3:
chown --from=root:root www-data:www-data -cR ./
Для обращения к текущему каталогу используйте путь ./. Мы его использовали и выше. Далее указываем нужную группу с помощью опции --from и просим утилиту выводить изменения, которые она делает в файловой системе с помощью опции -c.
Выводы
Команда chown очень простая и позволяет только менять владельца и группу. Если вы хотите более подробно настроить права для владельца, группы и всех остальных, вам понадобится команда chmod. Права - довольно частая проблема при настройке работы различных программ, знание двух этих команд плюс ls и namei может помочь исправить много ошибок.
Но но но, Нельзя это в общак, то есть больше админа. У меня Раиска зам бухгартера продвинутая. Её это знать нельзя. А на лосте она висит.
Михаил, спрячь ее стикер на мониторе с паролем от root)
Я её главным поставлю, доверяю. А root, у меня и у Олега сиса моего, только.
хм-м, думал тут ничего полезного не найду. Оказалось что я про условия смены не знал.
круто. нужно детальнее изучить.
Спасибо за справку. После переноса сайта столкнулся с проблемой — пропала возможность редактирования сайта через админ-панель Вордпресса. Сначала не мог понять в чём проблема... По описанию ошибки обнаружилось, что проблема была в том, что атрибуты "владелец/группа" не совпадали со значением "root root". Ваша инструкция попалась первой в поиске. Всё очень понятно расписано. Очень помогли.
А у меня на сайте, возникла проблема доступа по неизвестным причинам, какой-то хаос с юзерами и нет доступа к файлам. немого плагины обновлять .. и вообще .. хоть сайт сноси и переделывай заново, потому что с правами играться задолбаешься!
Решил свою проблему – причём проблема не решалась даже сносом сайта. Я снес свой сайт потом заново создал и проблема осталась – плагины не обновлялись, доступа к файлам базы данных не было. А ведь решение было простейшим, надо было просто снять атрибут "i" после чего и команда chown становится доступной.
Неплохо, только обычно нужно не на root права менять а на какого нибудь юзверга. Поэтому справку лучше писать так: Меняем права каталога/файла, скопированного из root в папку пользователя, на права этого пользователя, ну и плюс команда (уже из профиля этого юзера): sudo chown user:group ~/.config/libvirt/libvirt.conf ... имхо.
root:root
что из этого пользователь, а что владелец?
Первое это имя пользователя, которого вы делаете владельцем файла\каталога, а второе название группы пользователей (юзеры в линуксе делятся по группам), с которыми вы это делаете
Если вы хотите чтобы изменения применялись не только к этому каталогу, но и ко всем его подкаталогам, добавьте опцию -R пробовал в симпле линукс не работает только -hR сработал.
Подскажите - что можно сделать кроме переустановки\разбекапливания системы
Вместо папки пользователя рекурсивно дал права на корень. Какой либо откат возможен? Бекап системы недельной давности 🙁