Відповіді:
Команда chown використовується для зміни власника та власника групи файлів чи каталогів. Для використання цієї команди потрібні привілеї суперпользователя. Синтаксис chown виглядає приблизно так:
chown [owner][:[group]] file...
chown може змінити власника файлу та / або власника групи файлів залежно від першого аргументу команди. Ось кілька прикладів:
chown owner file
приклад:
chown bob file --> Changes the ownership of the file from its current owner to user bob.
chown owner:group file
приклад:
chown bob:users file --> Changes the ownership of the file from its current owner to user bob and changes the file group owner to group users.
chown :group file
приклад:
chown :admins file --> Changes the group owner to the group admins. The file owner is unchanged.
chown owner: file
приклад:
chown bob: file --> Change the file owner from the current owner to user bob and changes the group owner to the login group of user bob.
Прочитайте цей чудовий підручник https://www.linode.com/docs/tools-reference/linux-users-and-groups . Це показує деяку інформацію про користувача, групи, дозволи, ...
sudo
коли-небудь знадобиться для виконання файлу?
Це не так user:user
, але user:group
.
Це формат команди
chown [OPTION]... [OWNER][:[GROUP]] FILE...
Група користувачів може включати багато користувачів. Ось деякі відомості щодо груп:
Linux використовує групи як спосіб організації користувачів. Групи організовують збір облікових записів, в першу чергу в якості заходів безпеки. Контроль над членством у групі здійснюється за допомогою файлу / etc / group, який показує список груп та його членів. Кожен користувач має групу за замовчуванням або основну групу. Коли користувач входить у систему, членство в групі встановлюється для їх основної групи. Це означає, що коли користувач запускає програму або створює файл, і файл, і запущена програма будуть пов'язані з поточним членством у групі користувача. Користувач може отримувати доступ до інших файлів в інших групах, якщо вони також є членом цієї групи та встановлені дозволи доступу. Щоб запустити програми або створити файл у іншій групі, користувач повинен виконати команду newgrp, щоб переключити їх поточну групу.
Файл належить користувачеві та групі. За замовчуванням він належить користувачеві, який створив файл, і його групі за замовчуванням, якщо він не змінений.
У вашому випадку користувач root
є членом групи root
.
root
і root root
Що робить група? Я розумію розділ власника, хоча
cut -d: -f1 /etc/group
команду, ви можете побачити повний список груп у вашій системі. unix.stackexchange.com/questions/153390/… може допомогти вам зрозуміти, чому існує група з ім'ям користувача
man chown
дає опис та використання та іншу корисну інформацію про chown
команду.
NAME
chown - change file owner and group
SYNOPSIS
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
Формуючи інформацію, надану сторінкою man, ми можемо знати, що chown $USER:$USER
змінює власника та групу цільового файлу $USER
, а chown $USER
лише змінює власника цільового файлу на $USER
, залишаючи групу цільового файлу незмінною.
Деталі (зі сторінки чоловіка) слідують:
Owner is unchanged if missing. Group is unchanged if missing, but changed to
login group if implied by a ':' following a symbolic OWNER. OWNER and GROUP may
be numeric as well as symbolic.
Так chown $USER:$USER
можна скоротити як chown $USER:
.
Виходи , як root root
від namei -l
команди означає , що власник і група цього файлу обидва встановлені в root
. Це не визначено та не вказано власником двічі. Власник і група - це два споріднених, але різних поняття. А у файлі завжди є власник і група.
Що стосується використання chown
команди, великі шанси на отримання привілею суперпользователя потрібні, оскільки, ймовірно, можна передати право власності на файл при використанні chown
команди. Однак це не завжди правда.
Скажімо, у нас є користувач на ім’я 'test', який належить до кількох груп. id
команда дає наступний вихід:
uid=1000(test) gid=1000(test) groups=1000(test),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),110(sambashare)
І користувачеві 'test' належить такий файл:
-rw-r--r-- 1 test test 0 May 27 23:34 test_file
Тоді ми можемо змінити групу test_file
на sambashare
без привілею суперпользователя, оскільки користувачеві 'test' одночасно належить до групи 'test' та група 'sambashare', користувач 'test' вже має достатній дозвіл на зміну групи файлів.