Команда Chown в Linux: как изменить владельца файла

В этом уроке мы собираемся обсудить владение файлами и каталогами (команда chown) в файловой системе Linux.

Теперь, чтобы эффективно контролировать, кому и что разрешено делать с файлами и каталогами в файловой системе, вы сначала должны решить, кому принадлежит каждый файл и каталог.

Итак, давайте начнем этот урок с обсуждения того, как работает владение.

Как работает право собственности

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

Теперь по умолчанию владелец каталога в файловой системе Linux автоматически получает разрешения на чтение, запись и выполнение для этого каталога.

Предлагаемое чтение:

Что в основном позволяет им делать в этом каталоге все, что они хотят, как владельцу этого каталога.

Точно так же владелец файла в файловой системе Linux по умолчанию получит разрешения на чтение и запись в этот файл.

Как проверить право собственности на файлы и каталоги

Например, предположим, что я вхожу в свою систему Linux, а затем открываю свое приложение для обработки текстов libera office и создаю файл с именем mydata.doc в моем домашнем каталоге.

Свойства файла
Свойства файла

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

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

На этом экране мы сделали то, что щелкнули правой кнопкой мыши на mydata.doc файл в графическом интерфейсе пользователя (GUI) моей системы Ubuntu, а затем я выбрал свойства, а затем выбрал вкладку разрешений, и здесь я могу увидеть, кто является владельцем файлов.

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

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

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

Следовательно, владельцем файла является служба поддержки пользователь и группа-владелец файла – это служба поддержки группа.

Вы также можете просмотреть права собственности на файлы и каталоги из командной строки, используя ls -l команда.

$ ls -l mydata.doc 
-rw-r--r-- 1 helpdesk helpdesk 0 Mar 20 02:33 mydata.doc

В этом примере я выполнил команду в домашнем каталоге моего пользователя.

Обратите внимание, что в третьем столбце вывода отображается имя владельца файла или каталога, в этом случае владельцем файла является служба поддержки.

В четвертом столбце отображается имя группы, владеющей файлом.

Разрешение файла
Разрешение файла

Как изменить право собственности на файл или каталог

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

Вы можете изменить его, если хотите.

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

Но для этого вам нужно иметь это в виду, чтобы изменить пользователя, владеющего файлом, вы должны войти в систему как root, только root может это сделать.

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

Теперь есть несколько разных утилит, которые вы можете использовать для этого.

Первый – это chown полезность, которая означает Cповесить ОWner.

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

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

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

Как изменить владельца файла

Например, предположим, что у меня есть файл с именем mydata.txt, Он находится в /tmp каталог, и в настоящее время этот файл принадлежит пользователю root.

$ ls -l /tmp/mydata.txt 
-rw-r--r-- 1 root root 0 Mar 20 03:57 /tmp/mydata.txt

Я хочу изменить владельца этого файла с корень к служба поддержки Пользователь.

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

$ sudo chown helpdesk /tmp/mydata.txt

$ ls -l /tmp/mydata.txt 
-rw-r--r-- 1 helpdesk root 0 Mar 20 03:57 /tmp/mydata.txt

Если мы сделаем ls -l здесь мы видим, что служба поддержки теперь является пользователем, которому принадлежит mydata.txt файл.

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

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

Как изменить группу файла

Что ж, предположим, я хочу изменить группу, которая владеет файлом, на мою основную группу из основной группы пользователя root.

Сейчас моя основная группа – это служба поддержки группа.

Поэтому я бы вошел chown а затем я бы вошел .helpdesk а затем имя файла, который я хочу изменить.

Теперь эта точка (.) здесь очень важно, потому что, по сути, он сообщает, что chown команда, которая следует за сущностью, не является именем пользователя, а является именем группы.

$ sudo chown .helpdesk /tmp/mydata.txt

$ ls -l /tmp/mydata.txt 
-rw-r--r-- 1 helpdesk helpdesk 0 Mar 20 03:57 /tmp/mydata.txt

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

Как изменить владельца и группу файла

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

Вы можете изменить владельца и группу одновременно, просто указав сначала имя пользователя, а затем точку (.), а затем имя группы, владельца которой вы хотите изменить, а затем имя файла.

Делает все сразу.

$ sudo chown helpdesk.helpdesk /tmp/mydata.txt

$ ls -l /tmp/mydata.txt 
-rw-r--r-- 1 helpdesk helpdesk 0 Mar 20 03:57 /tmp/mydata.txt

Изменить владельца каталога

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

Здесь я меняю владельца каталога с именем data1.

$ sudo chown helpdesk.helpdesk data1/

Смена владельца нескольких файлов и каталогов

Вы можете изменить владельца нескольких файлов или каталогов одновременно.

Вот пример.

У меня есть два файла с именем file1.txt а также file2.txt и два каталога с именем dir1 а также dir2 которому я собираюсь поменять владельца.

$ sudo chown helpdesk.helpdesk file1.txt file2.txt dir1/ dir2/

Рекурсивное изменение владения файлами и каталогами

Также имейте в виду, что вы можете использовать прописные буквы -R вариант с chown команда.

В примерах, которые мы показали прямо здесь, мы изменяем только один файл за раз, и это нормально, если вам нужно изменить только один файл.

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

$ sudo chown -R helpdesk.helpdesk data/

$ ls -l data/
-rw-r--r-- 1 helpdesk helpdesk 0 Mar 20 06:14 file1.txt
-rw-r--r-- 1 helpdesk helpdesk 0 Mar 20 06:14 file2.txt
-rw-r--r-- 1 helpdesk helpdesk 0 Mar 20 06:14 file3.txt

По сути, это сказать chown рекурсивно менять владельца.

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

Изменение владельца символической ссылки

Чтобы изменить владельца символической ссылки, вы должны использовать -h вариант с командой chown.

$ sudo chown -h helpdesk.helpdesk file_sym.txt

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

Например, если вы попытаетесь изменить владельца и группу символической ссылки с именем file_sym.txt это указывает на /tmp/file.txt, chown изменит владельца файла или каталога, на который указывает символическая ссылка.

Здесь у меня есть файл с именем file.txt который имеет символическую ссылку с именем file_sym.txt и нынешний владелец file.txt является корень.

$ ls  -l
lrwxrwxrwx 1 root root 8 Mar 20 06:47 file_sym.txt -> file.txt
-rw-r--r-- 1 root root 0 Mar 20 06:46 file.txt

Теперь давайте запустим команду chown без -h вариант.

$ sudo chown helpdesk.helpdesk file_sym.txt

И как видите chown изменил владельца исходного файла вместо Symlink.

$ ls -l
lrwxrwxrwx 1 helpdesk helpdesk 8 Mar 20 06:47 file_sym.txt -> file.txt
-rw-r--r-- 1 helpdesk helpdesk 0 Mar 20 06:46 file.txt

Смена владельца с помощью справочного файла

Вы можете изменить владельца другого файла, обратившись к существующему файлу.

Для этого вы должны использовать --reference вариант с командой chown.

Например, у меня есть файл с именем file1.txt чьим владельцем является пользователь по имени служба поддержки и чья группа-владелец также служба поддержки.

Теперь, обращаясь к этому файлу, я изменю владельца file2.txt, текущим владельцем которой является корень Пользователь.

$ chown --reference=file1.txt file2.txt

Вы можете посетить следующие веб-сайты, чтобы получить дополнительную информацию о chown.

Заключение

Я надеюсь, что теперь вы хорошо понимаете, как работает владение, и у вас есть идеи, как использовать команду chown в своем рабочем процессе.

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *