Иногда вы можете обнаружить ошибки при использовании любой операционной системы Linux, например, отказано при редактировании файла. Это из-за меньшего количества прав на этот конкретный файл. Chown обычно сокращается как «сменить владельца», что означает, что Chown — это инструкция по смене владельца группы файлов и папок в Linux. Более того, вам необходимо изменить владельца папки, в которой хранятся все документы в определенных ситуациях. Возможно, вам придется использовать рекурсивный chown, который является одним из вариантов инструкции chown. Рекурсивный означает, что chown будет выполняться для всех документов в указанном каталоге, а также для файлов и папок во всех подкаталогах. Вы узнаете, как рекурсивно изменять права доступа к каталогам и файлам, используя инструкцию chown в этой статье.
$ Chown –R Mode Directory
Во-первых, нам нужно посмотреть, как работает команда chown. Откройте терминал командной строки из Приложения. Сгруппируйте все папки и файлы из домашнего каталога пользователя «andreyex» с помощью команды list. Вывод показывает список файлов и папок, как показано.
$ ls
У нас есть файл «main.c» в домашнем каталоге пользователя «andreyex». Мы должны проверить владельца конкретного файла, чтобы в дальнейшем применить изменения. Для этой конкретной цели мы будем использовать инструкцию «ls –lart». Как показано ниже, мы можем сказать, что пользователь «andreyex» является его владельцем и находится в группе «andreyex».
$ ls –lart filename
Давайте изменим его, изменив его владельца на пользователя «root». Для этого мы будем использовать команду chown ниже.
$ sudo chown root filename
Теперь, проверив владельца файла и группу с помощью той же команды «ls –lart», вы увидите, что владелец был изменен. Выходные данные показывают, что этот «root» пользователь является его владельцем, и он принадлежит к той же группе «andreyex».
$ ls –lart filename
Первый и самый простой способ — использовать флаг -R, чтобы указать рекурсивный характер инструкции chown. Давайте сначала проверим владельцев всех файлов и папок, находящихся в домашнем каталоге пользователя «andreyex», используя следующую команду ls. Из приведенных ниже результатов видно, что владельцем всех файлов, кроме двух, является пользователь «andreyex».
$ ls -la
Теперь пора сменить владельца всех файлов и папок, используя флаг –R с запросом chown. Поэтому для этого мы будем использовать привилегии sudo. Попробуйте выполнить приведенную ниже команду «chown», за которой следует флаг «-R» вместе с именем владельца, которым является «root». Мы указали расположение каталога в этой инструкции. Это означает, что все файлы и папки, находящиеся в папке «andreyex» в «домашнем» каталоге, будут иметь владельца «root» вместо пользователя «andreyex». Для применения изменений может потребоваться пароль вашей учетной записи root.
$ sudo chown –R root /home/andreyex/
После выполнения команды chown пора проверить, были ли внесены изменения эффективно или нет. Для этой конкретной цели мы будем использовать ту же команду списка, что и раньше. Таким образом, вывод показывает, что все файлы заменены на «root».
$ ls –la
После смены владельца пора изменить группу всех файлов и папок с помощью флага –R в инструкции chown. Сначала перечислите все файлы и папки с помощью команды list. Вы можете наблюдать, что все файлы и папки находятся в группе «andreyex».
$ ls -la
Мы изменим группу на «root» с «andreyex». Для этого мы будем использовать команду chown с флагом –R. В этой команде есть небольшое изменение. Чтобы изменить группу, мы будем использовать «:» перед названием группы. Мы предоставим местоположение каталога, для которого мы хотим изменить группу его подпапок. Используйте ключевое слово «sudo», чтобы применить имя группы. Для применения этих изменений может потребоваться пароль вашей учетной записи sudo, как показано ниже.
$ sudo chown –R: root /home/andreyex/
После применения изменений мы снова перечислим все файлы и папки для проверки обновления. Используйте для этого команду списка ниже. Вы можете видеть, что группа всех файлов и папок была изменена на «root».
$ ls -la
Возьмем простой пример, отличный от chown. Вы должны создать два файла с именами «one.txt» и «scnd.txt» с помощью сенсорной команды следующим образом:
$ touch filename1 $ touch filename2
Давайте проверим владельца и группу обоих файлов с помощью команды list, как показано ниже:
$ ls –l filename1 $ ls –l filename2
Вы можете видеть, что у обоих файлов один и тот же владелец и группа, например, «andreyex».
Давайте сначала изменим владельца файла one.txt на пользователя root, используя простую команду sudo chown, за которой следует имя владельца и имя файла, как показано ниже:
$ sudo chown root filename1
Проверив первый файл еще раз с помощью команды list, вы увидите, что владелец был изменен на «root».
$ ls –l filename1
Теперь мы назначим такие же права первого файла второму файлу, используя «reference» в команде chown, за которой следует первое имя файла. После этого вы должны указать имя второго файла, к которому будут применены изменения, как показано ниже:
$ sudo chown –reference=filename1 filename2
Теперь проверьте владельца и группу второго файла, используя ту же команду списка, как показано ниже:
$ ls –l filename2
Из вывода ниже мы видим, что владелец был изменен на root.
Мы выполнили chown рекурсивно с помощью флага «-R». С надеждой! У вас не возникнет проблем при использовании этой статьи.