CMD Master
Назад до блогу
•Оновлено•Arnošt Havelka

Як змінити власника файла за допомогою chown у Bash

Змінюйте власника й групу файла або каталогу за допомогою chown, перевіряйте результат та уникайте небезпечних рекурсивних змін.

Почати інтерактивний урок
Як змінити власника файла за допомогою chown у Bash

Використовуйте chown, коли файл або каталог належить не тому користувачеві чи групі. Спочатку перевірте об'єкт, змініть один явно вказаний шлях і відразу звірте результат. Додавайте -R лише тоді, коли всі елементи всередині каталогу мають отримати однакових власника й групу. В уроці про chown у Bash можна безпечно потренувати базову форму в ізольованій файловій системі.

Перевірте поточного власника та групу

Перш ніж щось змінювати, перевірте точний шлях:

ls -ld project
ls -l project/readme.txt

У докладному списку власник і група розташовані після полів дозволів та кількості посилань. Переконайтеся, що project — саме потрібний каталог, а потім перевірте, що цільовий обліковий запис і група вже існують. chown не створює користувачів або групи.

Змініть і власника, і групу

У поширеній формі owner:group стоїть перед шляхом:

sudo chown admin:developers project

Тепер admin є власником, а developers — групою для запису каталогу project. Вміст каталогу рекурсивно не змінюється. Використовуйте sudo лише тоді, коли поточному обліковому запису бракує дозволів: підвищені привілеї не захищають від помилки в імені або шляху.

Перевірте результат:

ls -ld project

Щоб змінити лише власника, не вказуйте групу:

sudo chown admin project/readme.txt

Щоб за допомогою chown змінити лише групу, залиште поле власника порожнім:

sudo chown :developers project/readme.txt

Окремий посібник із chgrp часто зрозуміліший, якщо змінюється лише група-власник.

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

Параметр -R застосовує зміну до початкового каталогу й усього, що розташовано нижче:

sudo chown -R admin:developers project

Перш ніж натиснути Enter, виконайте pwd і ls -ld project, щоб перевірити початкову точку. Уникайте нерозкритих змінних, шаблонів і шляхів, скопійованих із ненадійних повідомлень. Ніколи не експериментуйте з рекурсивною зміною власника від /, для всього домашнього каталогу або виробничого тому.

Після цього перевірте каталог і кілька характерних файлів:

ls -ld project
ls -l project/readme.txt

Дерево може навмисно містити файли, що належать різним службовим обліковим записам. Призначення одного власника для всіх може порушити розгортання, роботу баз даних, контейнерів або спільних каталогів, навіть якщо сама команда виконалася успішно.

Знайте, чого chown не виправляє

Власність і дозволи — різні речі. chown змінює користувача та групу, до яких належать біти дозволів; chmod змінює самі біти. Якщо власник правильний, але доступ усе одно заборонено, перевірте режим замість повторної зміни власника.

На результат також можуть впливати перехід за символічними посиланнями, мережеві томи, контейнери та керовані файлові системи. Прочитайте локальну сторінку man chown, перш ніж рекурсивно змінювати дерево з посиланнями або точками монтування. Якщо файлова система відхиляє операцію, дослідіть її модель власності замість постійного розширення привілеїв.

Щоб розібратися з числовими режимами доступу, прочитайте як працюють числа chmod. Повний синтаксис власності й параметри обходу описано в довідці GNU Coreutils про chown.

Посилання

Ці посилання на документацію надають авторитетну інформацію про команди, використані в цій статті.

Далі

Числові режими chmod: 600, 644, 700 і 755

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