Если вы недавно работаете в Linux и вам нужно изменить владельца папки или файла, эта статья для вас. Мы подробно расскажем, что такое владельцы в Linux, зачем их менять и как это сделать простым и понятным языком.
Что такое владельцы папок и файлов в Linux?
В Linux каждая папка и файл принадлежат определённому пользователю и группе. Это помогает системе управлять доступом и безопасностью. Обычно владельцем файла является тот пользователь, который создал его.
Владелец — это пользователь, который управляет файлом или папкой.
Группа — это группа пользователей, которым тоже может быть предоставлен доступ к файлу или папке.
Иногда возникает необходимость сменить владельца или группу файла или папки (например, когда передаете файлы другому пользователю или меняете права доступа).
Почему важно знать, как меняется владелец папки?
- Для обеспечения безопасности системы.
- Для правильной работы программ или скриптов.
- Для предоставления доступа другим пользователям.
Как изменить владельца папки в Linux?
- Общий синтаксис команды chown
- Пример 1: смена владельца папки
- Пример 2: смена владельца и группы
- Пример 3: рекурсивная смена
Самый распространённый способ — использовать команду chown. Это одна из базовых команд в Linux для изменения владельца и группы файла или папки.
Общий синтаксис команды chown
sudo chown [новый_владелец][:новая_группа] путь_к_папке
sudo — позволяет выполнить команду с правами суперпользователя (нужна, если вы не являетесь владельцем).
новый_владелец — имя пользователя, которому нужно передать право владения.
новая_группа — необязательный параметр, группа, которой также передается право владения.
путь_к_папке — полный путь до папки, владельца которой меняете.
Пример 1: смена владельца папки
У нас есть директория test, а в ней поддиректория sub_test. Сейчас у них у всех владелиц root:
[root@waky practice]# ls test/sub_test/
test.txt
[root@waky practice]# ls -Rl
.:
total 0
drwxr-xr-x. 3 root root 22 Jan 11 04:13 test
./test:
total 0
drwxr-xr-x. 2 root root 22 Jan 11 04:13 sub_test
./test/sub_test:
total 0
-rw-r--r--. 1 root root 0 Jan 11 04:11 test.txt
[root@waky practice]#
Сменим владельца основной директории командой chown:
[root@waky practice]# chown test_user test
[root@waky practice]#
Это изменит владельца папки на test_user. Обратите внимание, что группа останется без изменений:
[root@waky practice]# ls -l
total 0
drwxr-xr-x. 3 test_user root 22 Jan 11 04:13 test
[root@waky practice]#
Пример 2: смена владельца и группы
Если вы хотите одновременно изменить владельца и группу, используйте двоеточие:
[root@waky practice]# chown test_user:wheel test
[root@waky practice]#
Здесь владельцем станет test_user, а группа — wheel:
[root@waky practice]# ls -l
total 0
drwxr-xr-x. 3 test_user wheel 22 Jan 11 04:13 test
[root@waky practice]#
Пример 3: рекурсивная смена
Чтобы изменить владельца папки и всех её файлов и подкаталогов — используйте атрибут -R (рекурсивно). Все прежние изменения не повлияли на вложенные файлы и папки:
[root@waky practice]# ls -l
total 0
drwxr-xr-x. 3 test_user wheel 22 Jan 11 04:13 test
[root@waky practice]# ls -Rl
.:
total 0
drwxr-xr-x. 3 test_user wheel 22 Jan 11 04:13 test
./test:
total 0
drwxr-xr-x. 2 root root 22 Jan 11 04:13 sub_test
./test/sub_test:
total 0
-rw-r--r--. 1 root root 0 Jan 11 04:11 test.txt
[root@waky practice]#
Они остались с владельцем и группой root. Повторим смену владельца, но в этот раз рекурсивно:
[root@waky practice]# chown -R test_user:wheel test
[root@waky practice]#
Это изменит владельца и группу для всей папки и содержимого внутри неё:
[root@waky practice]# ls -Rl
.:
total 0
drwxr-xr-x. 3 test_user wheel 22 Jan 11 04:13 test
./test:
total 0
drwxr-xr-x. 2 test_user wheel 22 Jan 11 04:13 sub_test
./test/sub_test:
total 0
-rw-r--r--. 1 test_user wheel 0 Jan 11 04:11 test.txt
[root@waky practice]#
Подробнее об использовании chown читайте в нашей специальной статье.
Заключение
Изменение владельца папки в Linux — это просто и удобно с помощью команды chown. Вот краткое резюме:
Откройте терминал.
Введите команду sudo chown [новый_владелец] [путь_к_папке].
Для изменения группы — используйте : и укажите группу.
Для рекурсивных изменений — добавьте -R.
Важно: Перед выполнением любых команд для изменения владельца убедитесь, что вы понимаете последствия, чтобы случайно не нарушить работу системы или доступность файлов.