Як використовувати команду chown в Linux

Усі файли та каталоги в системах Linux комусь належать. Ви можете змінити їх власника за допомогою команди chown. Ми покажемо вам, як.

Кожен файл належить користувачеві та групі

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

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

Коли файл створюється, його власником є ​​користувач, який його створив. Група, до якої належить файл — група «володіє» — є поточною групою користувача. Користувачі та групи мають імена, а також числові ідентифікатори, які називаються ідентифікаторами користувача (або унікальними) (UID) та ідентифікаторами групи (GID).

Коли ви створюєте файл, він належить вам і належить до вашої поточної групи. Зазвичай це група, до якої ви ввійшли. За замовчуванням це група, яка має те саме ім’я, що й ваше ім’я користувача, і була створена, коли ви були створені як користувач у системі.

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

  Як грати в Castle Crashers на Linux

Чому ви хочете змінити власника?

Ось кілька прикладів ситуацій, коли ви можете це зробити:

Якщо ви передаєте файли між різними операційними системами Linux або Unix, вам потрібно буде змінити власників користувачів і груп на нових користувачів і власників групи облікового запису, під яким ви хочете використовувати файли на новому комп’ютері Linux.
Користувач може залишити вашу організацію, і всі його файли будуть відповідати іншим співробітникам. Вам потрібно буде змінити власника та власника групи на співробітника, який тепер відповідає за ці файли.
Ви можете створити сценарій, який буде використовуватися певним користувачем.
Ви можете створити файл або каталог, увійшовши в систему як root, але ви хочете, щоб він був доступним для певного користувача.

Перегляд ваших груп, UID та GID

До перелічити групи Ви можете скористатися командою груп.

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.

  Як налаштувати власне хмарне сховище в Linux за допомогою Next cloud

За замовчуванням, коли створюється користувач Linux, він додається до приватної групи, названої на ім’я користувача. Вони єдині члени цієї групи.

Цей виконуваний файл належить користувачеві mary, а група, до якої належить файл, є приватною групою mary.

ls -l

Цей файл належить користувачу oscar, але група, до якої належить файл, називається 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 (рекурсивний). Цей параметр змінить право власності користувача на всі файли в папці архіву.

sudo chown -R mary ./archive/

Тепер давайте подивимося на файли в каталозі архіву.

ls -l ./archive/

Як і очікувалося, усі файли тепер належать mary.

  Як налагодити сценарії Linux Bash за допомогою ShellCheck

Зміна групи власності

Існують різні способи змінити право власності на групу.

Щоб змінити право власності на групу одночасно зі зміною права власності користувача, передайте нове ім’я власника та нову назву групи, розділяючи їх двокрапкою «:». Група вже має існувати.

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, щоб захистити доступ до файлів у вашій системі.