Поиск по сайту:

Как использовать команду chown в Linux


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

Каждый файл принадлежит пользователю и группе

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

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

При создании файла его владельцем является создавший его пользователь. Группа, которой принадлежит файл — группа «владельца» — это текущая группа пользователя. У пользователей и групп есть имена, а также числовые идентификаторы, называемые пользовательским (или уникальным) идентификатором (UID) и идентификатором группы (GID).

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

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

Почему вы хотите сменить владельца?

Вот несколько примеров ситуаций, когда вам может понадобиться это сделать:

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

Просмотр ваших групп, UID и GID

Чтобы просмотреть группы, в которых вы состоите, вы можете использовать команду groups.

groups

Чтобы получить список групп, их числовые идентификаторы, а также ваш UID и GID, используйте команду id:

id

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

  • -u: указать свой UID.
  • -g: перечислить ваш действующий (текущий) GID.
  • -nu: укажите свое имя пользователя.
  • -ng: указать текущее название группы.

id -u
id -g
id -nu
id -ng

Просмотр права пользователя и группы на файл

Чтобы увидеть владельцев файла или каталога, используйте параметр -l (длинный список) с ls.

ls -l

Мы видим, что имя dave встречается в списке дважды. Крайний левый внешний вид говорит нам, что владельцем файла является пользователь с именем dave. Самый правый dave говорит нам, что файл принадлежит группе, которая также называется dave.

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

Этот исполняемый файл принадлежит пользователю mary, а группа, к которой принадлежит файл, — частная группа marys.

ls -l

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

Изменение владельца пользователя

Давайте поработаем с некоторыми примерами. Эта команда изменит владельца файла while.c на пользователя mary.

sudo chown mary while.c

Мы можем использовать ls, чтобы увидеть изменения в свойствах файла.

ls -l while.c

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

sudo chown mary getval.c global.c goto.c

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

ls -l getval.c global.c goto.c

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

sudo chown mary c*.*

Теперь владельцем всех файлов будет mary. Обратите внимание, что ни одна из групп собственности не была изменена.

ls -l mary c*.*

Давайте изменим владельца каталога. Мы просто передаем имя каталога в chown вместо имени файла.

sudo chown mary ./archive/

Чтобы проверить свойства владения каталогом, мы используем ls, но также используем для него параметр -d (каталог). Здесь перечислены свойства каталога, а не файлы внутри него.

ls -l -d ./archive/

Чтобы изменить владельца всех файлов в каталоге, вы можете использовать параметр -R (рекурсивный). Эта опция изменит владельца всех файлов в папке archive.

sudo chown -R mary ./archive/

Теперь давайте посмотрим на файлы в каталоге архива.

ls -l ./archive/

Как и ожидалось, все файлы теперь принадлежат mary.

Изменение владельца группы

Существуют различные способы изменить владельца группы.

Чтобы изменить владельца группы одновременно с изменением владельца пользователя, передайте имя нового владельца и новое имя группы, разделяя их двоеточием «:». Группа должна уже существовать.

sudo chown mary:researchlab charm.c

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

ls -l charm.c

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

sudo chown mary: caps.c
ls -l caps.c

Право собственности пользователя и группы было изменено на mary.

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

sudo chown :researchlab at.c
ls -l at.c

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

Использование Chown со значениями UID и GID

Вы можете использовать числовые значения UID и GID с командой chown. Эта команда установит права пользователя и группы на mary.

sudo chown 1001:1001 at.c
ls -l at.c

Владение — девять десятых закона

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

RELATED: Best Linux Laptops for Developers and Enthusiasts