Команды Linux · 6 min read · Sep 15, 2025

Учебник по команде Linux Chown для начинающих (12 примеров)

В Linux могут быть случаи, когда вам может понадобиться изменить владельца и связанную с группой информацию для файла или директории. Если вы новичок в командной строке и хотите узнать, как вы можете внести такие изменения через командную строку, вам будет приятно узнать, что существует команда - названная chown - которая позволяет вам это сделать.

Прежде чем мы начнем с учебника по команде chown, стоит упомянуть, что все примеры и инструкции, упомянутые здесь, были протестированы на Ubuntu 22.04 LTS и Debian 11.

Объяснение команды Linux chown

Как уже упоминалось в начале, команда chown позволяет вам изменить владельца файла и группу через командную строку. Следующий синтаксис команды является общим:

chown [OPTION]... [OWNER][:[GROUP]] FILE...

Вот что говорит страница man этого инструмента:

Если указан только владелец (имя пользователя или числовой идентификатор пользователя), этот пользователь становится владельцем каждого указанного файла, и группа файлов не изменяется. Если за владельцем следует двоеточие и имя группы (или числовой идентификатор группы), без пробелов между ними, то также изменяется групповая собственность файлов. Если за именем пользователя следует двоеточие, но не указано имя группы, этот пользователь становится владельцем файлов, и группа файлов изменяется на группу входа этого пользователя. Если указаны двоеточие и группа, но владелец опущен, изменяется только группа файлов; в этом случае chown выполняет ту же функцию, что и chgrp. Если указано только двоеточие или если весь операнд пуст, ни владелец, ни группа не изменяются.

Следующие примеры в формате вопрос-ответ дадут вам хорошее представление о том, как работает команда chown:

Вопрос 1. Как изменить владельца файла?

Рассмотрим следующий пример:

Здесь владельцем файла является ‘himanshu’, и группа, к которой он принадлежит, также ‘himanshu’. Теперь, чтобы изменить владельца на, скажем, ‘root’, используйте следующую команду:

chown root file1

Следующий скриншот подтверждает, что владелец теперь изменен на ‘root’.

Вопрос 2. Как изменить группу файла?

Изменение группы похоже на изменение владельца. Единственное отличие заключается в синтаксисе команды, который выглядит следующим образом:

chown :[group-name] [file-name]

Допустим, требуется изменить группу ‘file1’ на ‘root’. Тогда команда будет:

chown :root file1

Следующий скриншот показывает, что группа была успешно изменена с ‘himanshu’ на ‘root’.

*Примечание: Если вы задаетесь вопросом, почему была использована команда ‘sudo’, или если вы новичок в ‘sudo’, вам следует сначала ознакомиться с нашим учебником по этому инструменту.*

Вопрос 3. Как изменить как владельца, так и группу файла?

Чтобы изменить как владельца, так и группу файла, используйте следующий синтаксис:

chown [new-owner]:[new-group] [file-name]

Таким образом, в нашем случае, чтобы изменить существующего владельца и группу с ‘root’ на ‘himanshu’, мы используем следующую команду:

chown himanshu:himanshu file1

Следующий скриншот показывает выполнение вышеуказанной команды:

Вопрос 4. Как изменить владельца или группу (или оба) после проверки существующего владельца/группы?

Могут быть ситуации, когда вам может понадобиться сначала проверить существующего владельца/группу файла перед внесением каких-либо изменений. Для таких случаев вы можете использовать опцию командной строки –from. Эта опция требует от вас указать имя владельца/группы, которое вы хотите проверить.

chown --from=[curr-own]:[curr-group] [new-owner]:[new-group] [filename]

Например:

chown --from=root:himanshu himanshu:root file1

Вышеуказанная команда проверит, является ли существующий владелец ‘root’, а группа - ‘himanshu’. Если да, то владелец будет изменен на ‘himanshu’, а группа станет ‘root’.

Вопрос 5. Как получить информацию о владельце/группе из файла-образца?

Также могут быть ситуации, когда вы хотите, чтобы chown взял информацию о владельце и группе из файла, вместо того чтобы вводить ее вручную в командной строке. Для таких случаев вы можете использовать опцию командной строки –reference. Эта опция требует от вас ввести имя файла-образца.

chown --reference=[ref-file-name] [filename]

Например:

chown --reference=file2 file1

Таким образом, вышеуказанная команда скопирует информацию о владельце и группе из file2 в file1.

Вопрос 6. Как заставить chown работать с файлами и директориями рекурсивно?

Чтобы команда chown работала рекурсивно с файлами и директориями, используйте опцию командной строки -R.

chown -R [new-owner]:[new-group] [directory-name-or-path]

Для тех, кто не знает, рекурсивный означает, что операция будет выполнена для всех файлов в данной директории, а также для файлов и директорий внутри всех поддиректорий.

Вопрос 7. Как заставить chown подавлять сообщения об ошибках?

Могут быть случаи, когда команда chown, которую вы запускаете, выдает ошибку. Например, следующая команда, когда она была выполнена на моей системе:

chown --from=himanshu:himanshu himanshu:root file4

выдала следующую ошибку:

chown: cannot access 'file4': No such file or directory

Теперь предположим, что требуется, чтобы инструмент не отображал такие ошибки. Это можно сделать с помощью опции командной строки -f.

Вышеупомянутый скриншот подтверждает, что опция командной строки -f подавляет ошибки/предупреждения.

Вопрос 8. Как изменить групповую собственность на группу входа указанного пользователя?

Это можно сделать с помощью синтаксиса [user/owner]:. Например, следующая команда:

chown himanshu: file1

Убедится, что собственность передана ‘himanshu’, а группа изменяется на группу входа ‘himanshu’. Обратите внимание, что это отличается от случая, когда двоеточие (:) не используется, как в этом случае (объяснено в вопросе 1 выше), группа остается неизменной.

Еще одно, что стоит упомянуть здесь, это то, что если вы просто используете двоеточие (:) без указания владельца или группы, то никаких изменений не произойдет. Например:

chown : file1

Эта команда не повлияет ни на собственность пользователя, ни на группу файла.

Вопрос 9. Как работает chown с символическими ссылками?

По умолчанию, если вы пытаетесь изменить собственность пользователя и группы символической ссылки, изменений не произойдет. Вместо этого изменения получит файл, на который она ссылается.

Например, на скриншоте ниже я создал символическую ссылку ‘link1’, чьи собственность пользователя и группы установлены на ‘himanshu’. Затем я выполнил команду chown, чтобы изменить пользователя и группу на ‘root’. Но команда не оказала влияния на файл символической ссылки - вместо этого изменились собственность пользователя и группы файла ‘file1’ (на который указывает символическая ссылка).

Команда Chown символические ссылки

Тем не менее, если вы хотите, вы можете переопределить это поведение по умолчанию, используя опцию -h.

Вопрос 10. Как изменить владельца и группу для директории?

Так же, как вы делаете это для файлов. Следующий пример:

chown root:root ./test-dir/

Обратите внимание, что вы можете проверить изменение владельца и группы для директории, используя команду stat - поля UID и GID в выводе отображают имена пользователя и группы.

Например, в моем случае вывод четко показал измененную собственность группы пользователя.

  Файл: test-dir  
  Размер: 4096          Блоки: 8          IO Block: 4096   директория  
Устройство: 808h/2056d    Индекс: 11928001    Ссылки: 2  
Доступ: (0755/drwxr-xr-x)  UID: (    0/    root)   GID: (    0/    root)  
Доступ: 2018-08-07 10:31:04.867467573 +0530  
Изменить: 2018-08-07 10:30:53.651807123 +0530  
Изменить: 2018-08-07 10:32:49.644427930 +0530  
 Рождение: -

Обратите внимание, что если вы вносите рекурсивные изменения (смотрите вопрос и ответ, обсуждающие опцию -R), и имеете дело с символическими ссылками, у вас есть следующие варианты:

       Следующие опции изменяют то, как иерархия проходит, когда также указана опция -R.  
       Если указано более одной, только последняя будет иметь эффект.  
       
       -H     если аргумент командной строки является символической ссылкой на директорию,  
              пройдите по ней  
       
       -L     пройдите по каждой символической ссылке на директорию, встреченной  
       
       -P     не проходите по никаким символическим ссылкам (по умолчанию)

Вопрос 11. Можно ли использовать UID и GID вместо имен пользователей и групп?

Да, вы можете использовать идентификатор пользователя и идентификатор группы вместо имен. Синтаксис команды остается прежним.

Например:

chown 1000:1000 file1

Вышеуказанная команда изменит собственность пользователя и группы на пользователя с UID 1000 и группу с GID 1000.

Вопрос 12. Как заставить chown отображать детали операции в выводе?

Если вы хотите, чтобы команда chown отображала детали выполняемой операции, используйте опцию командной строки -v.

Например, эта команда:

sudo chown howtoforge:howtoforge link1 -v

выдает следующий вывод:

изменена собственность 'link1' с root:root на howtoforge:howtoforge

Теперь есть еще одна опция -c, которая также действует как -v, только она не отображает никаких деталей, когда ничего не изменяется.

Заключение

Команда chown, как большинство из вас, вероятно, согласится, несложна в использовании. Что еще лучше, так это то, что страница man инструмента содержит много деталей, которые могут быть полезны пользователям (особенно новичкам). Попробуйте примеры, которые мы объяснили здесь, а для остальных функций/опций ознакомьтесь со страницей man chown. Чтобы изменить директорию, используйте команду cd. В случае любых сомнений или вопросов оставьте комментарий ниже.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.