Как да използвате командата chown в Linux

Всички файлове и директории в Linux системите принадлежат на някого. Можете да промените собствеността им с командата chown. Ние ви показваме как.

Всеки файл принадлежи на потребител и група

Linux е многопотребителска система. Операционната система позволява да се дефинират множество потребителски акаунти и всеки валиден потребител да влезе в компютъра. Освен това няколко потребители могат да използват един компютър едновременно.

За да поддържа запис кои файлове принадлежат на кой потребител и да наложи известна сигурност, Linux използва концепцията за собственост. Всеки файл принадлежи на собственик — потребител — и на група.

Когато файлът е създаден, неговият собственик е потребителят, който го е създал. Групата, към която принадлежи файлът — групата „притежател“ — е текущата група на потребителя. Потребителите и групите имат имена и също имат цифрови самоличности, наречени потребителски (или уникален) идентификатор (UID) и идентификатор на група (GID).

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

Можете да използвате командата chown, за да промените стойностите на собствеността на нещо друго. Можете да зададете нов собственик, нова група или нов собственик и нова група едновременно. Собственикът на файл може да промени собствеността на групата, но само root може да промени собствеността на потребителя, защото това включва друг потребител. Без root привилегии не можете да накарате друг потребител в системата неволно да „приеме“ файл.

  Как да използвате Keybase за криптиране на файлове в Linux

Защо бихте искали да промените собствеността?

Ето няколко примера за ситуации, в които може да искате да направите това:

Ако прехвърляте файлове между различни Linux или Unix-подобни операционни системи, ще трябва да промените собствениците на потребители и групи на новия потребител и собственици на групи на акаунта, под който искате да използвате файловете на новия компютър с Linux.
Потребител може да напусне вашата организация и всичките му файлове ще бъдат отговорност на друг член на персонала. Ще трябва да промените собственика и собственика на групата с член на персонала, който сега отговаря за тези файлове.
Можете да създадете скрипт, който ще се използва от конкретен потребител.
Можете да създадете файл или директория, влезли като root, но искате да бъде достъпен за конкретен потребител.

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

Да се избройте групите в който сте, можете да използвате командата групи.

groups

За да получите списък на групите, техните цифрови идентификатори, и вашия UID и GID, използвайте командата id:

id

Можете да използвате някои опции с ID, за да прецизирате изхода.

-u: Избройте своя UID.
-g: Избройте своя ефективен (текущ) GID.
-nu: Избройте вашето потребителско име.
-ng: Избройте текущото си име на група.

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

Преглед на потребителска и групова собственост върху файл

За да видите собствениците на файл или директория, използвайте опцията -l (дълъг списък) с ls.

ls -l

Можем да видим, че името Дейв се появява два пъти в списъка. Най-левият външен вид ни казва, че собственикът на файла е потребител, наречен Dave. Най-десният Dave ни казва, че файлът принадлежи към група, която също се нарича Dave.

  Как да активирате PGP криптиране за Thunderbird на Linux с Enigmail

По подразбиране, когато се създаде потребител на Linux, той се добавя към частна група, наречена на тяхното потребителско име. Те са единственият член на тази група.

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

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*.*

Всички файлове вече ще имат Мари за собственик. Имайте предвид, че нито една от собствеността на групата не е променена.

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.

  Как да инсталирате Irssi и да използвате IRC от терминала на Linux

Промяна на груповата собственост

Има различни начини за промяна на собствеността на групата.

За да промените собствеността на групата едновременно с промяната на собствеността на потребителя, предайте новото име на собственик и новото име на групата с двоеточие „:“, разделящо ги. Групата трябва вече да съществува.

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, за да осигурите достъп до файловете във вашата система.