Накратко: В това ръководство за начинаещи ще обсъдим някои практически примери за командата chown. След като следват това ръководство, потребителите ще могат ефективно да управляват собствеността върху файловете в Linux.
В Linux всичко е файл, което означава, че всички входно/изходни ресурси, като файлове, директории, дискови устройства, принтери и т.н., са изложени като файлове чрез пространството на имената на файловата система. В допълнение към това има собственост, свързана с всеки файл в Linux.
Собствеността е представена от две лица – потребител и група. Комбинацията от разрешения за достъп и собственост позволява на Linux да внедри механизъм за контрол на достъпа по ефективен начин.
В това ръководство ще научим за chown команда. Както подсказва името, chown команда се използва за промяна на собствеността на файловете. След като следват това ръководство, начинаещите ще могат да използват chown команда ефективно при работа с Linux системи.
Синтаксис на командата chown
Синтаксисът на chown команда е както следва:
$ chown [OPTION]... [OWNER][:[GROUP]] [FILE-1] [FILE-2]...[FILE-N]
Сега нека разберем използването на chown команда с някои практически примери в Linux.
1. Как да откриете собствеността върху файла
Най-лесният начин да намерите собственика на файла е да използвате командата ls, която ще изведе потребителя и групата на файла.
$ touch file-1.txt $ ls -l file-1.txt

В горния резултат можем да видим, че файлът е собственост на tecmint потребител и група. Тази информация е представена съответно от третата и четвъртата колона.
2. Как да промените собствеността върху файла
The chown команда ни позволява да променим собствеността на файла. Нека видим използването му чрез настройка на потребител нарендра като собственик на файла:
$ sudo chown narendra file-1.txt
Сега нека проверим дали собствеността върху файла е променена:
$ ls -l file-1.txt

3. Как да промените груповата собственост на файла
Подобно на потребителя, можем също да променим груповата собственост на файла, като използваме хапвам команда. И така, нека зададем групова собственост на файла на групата – нарендра:
$ sudo chown :narendra file-1.txt
Важно е да се отбележи, че трябва да използваме двоеточие (:)
с името на групата, докато променяте собствеността на групата.
Сега нека проверим груповата собственост на файла:
$ ls -l file-1.txt

4. Как да промените собствеността и групата от файлове
В предишните примери използвахме хапвам команда два пъти. Първо, за да промените собствеността на потребителя и след това да промените собствеността на групата. Въпреки това можем да променим както потребител, така и група с помощта на една команда.
Нека нулираме собствеността върху файла на потребителя и групата tecmintизползвайки следната команда:
$ sudo chown tecmint:tecmint file-1.txt
В този пример сме използвали двоеточие (:)
знак за разделяне на потребителя и групата. Стойността преди двоеточието представлява потребител докато стойността след двоеточието представлява група.
Сега нека проверим актуализираната собственост на файла:
$ ls -l file-1.txt

5. Как да промените собствеността върху символната връзка
По подразбиране, хапвам командата дереферира символната връзка, което означава, че ако входният файл е символна връзка, тогава тя променя собствеността върху референтния файл вместо самата символна връзка.
Въпреки това можем да отменим поведението по подразбиране, като използваме -h
опция, както е показано в следния пример.
Първо създайте символна връзка и проверете дали сочи към правилния референтен файл:
$ ln -s file-1.txt symlink $ ls -l symlink
След това променете собствеността на символната връзка, като използвате -h
опция:
$ sudo chown -h narendra:narendra symlink
Накрая проверете собствеността върху символната връзка и нейния референтен файл:
$ ls -l symlink file-1.txt

6. Как да прехвърлите собствеността върху файла на потребителя
Понякога се налага да актуализираме собствеността на файла само след като потвърдим текущата му собственост. В такива случаи можем да използваме --from
опция на хапвам команда, както е показано.
$ sudo chown -h --from narendra:narendra tecmint:tecmint symlink
В този пример, --from
опцията представлява текущия собственик на файла, докато следващият аргумент представлява новата собственост. Така горната команда актуализира собствеността на файла – символна връзка, само ако файлът е собственост на потребителя и групата – нарендра.
Сега нека проверим актуализираната собственост на файла:
$ ls -l symlink

В този пример сме указали както потребител, така и група, използвайки двоеточието (:)
характер. Въпреки това можем да посочим всеки от тях, както беше обсъдено в предишните примери.
7. Как да копирате собствеността от друг файл
Понякога е удобно да копирате собствеността от съществуващия файл, вместо да предоставяте същото от командния ред. В такива сценарии можем да използваме --reference
опция с хапвам команда, която представлява файла, от който трябва да се копира собствеността.
Първо създайте нов файл и променете собствеността му:
$ touch file-2.txt $ sudo chown narendra:narendra file-2.txt
Сега нека проверим текущата собственост на двата файла:
$ ls -l file-1.txt file-2.txt
След това задайте собствеността на файл-2.txt файл, същият като файл-1.txt използвайки следната команда:
$ sudo chown --reference=file-1.txt file-2.txt
И накрая, проверете дали собствеността е актуализирана успешно:
$ ls -l file-1.txt file-2.txt

В горния резултат можем да видим, че сега и двата файла имат еднаква собственост.
8. Как да промените собствеността на директорията рекурсивно
Можем да използваме хапвам команда за промяна на собствеността и върху директорията. Поведението по подразбиране на командата обаче е нерекурсивно.
Това означава, че хапвам командата ще промени собствеността само върху входната директория. Въпреки това можем да отменим това поведение по подразбиране с помощта на -R
опция, както е показано в следния пример.
Първо създайте директория и два файла в нея:
$ mkdir dir-1 $ touch dir-1/demo-1.txt dir-1/demo-2.txt
След това проверете собствеността върху директорията и нейните файлове:
$ ls -ld dir-1 $ ls -l dir-1
След това променете собствеността на директорията и нейните файлове по рекурсивен начин:
$ sudo chown -R narendra:narendra dir-1
Накрая проверете собствеността върху директорията и нейните файлове:
$ ls -ld dir-1 $ ls -l dir-1

9. Как да отпечатате подробности за процеса на команда Chown
По подразбиране, хапвам командата не отпечатва нищо на терминала след смяна на собствеността. Следователно досега използвахме -l
опция на командата ls за проверка на актуализираната собственост.
За да преодолеем това ограничение, можем да активираме подробния режим на командата, която отпечатва диагностиката за всеки обработен файл. Тази опция дава значима информация, когато я използваме с -R
опция:
Така че, нека използваме -v
опция на командата за активиране на подробен режим:
$ sudo chown -Rv tecmint:tecmint dir-1
Сега нека проверим резултата от командата:

10. Как да потискаме грешките на командата Chown
Подобно на други команди на Linux, хапвам също предоставя значима информация в случай на сценарии за грешка. Грешката може да възникне поради различни причини, като например несъществуващи файлове, групи или потребители, недостатъчно разрешение за извършване на определени операции и т.н.
Понякога обаче не искаме да показваме тези съобщения за грешка. В такива случаи можем да използваме -f
опция на командата за потискане на съобщенията за грешка.
За да разберем това по-добре, нека се опитаме да променим собствеността на несъществуващия файл:
$ sudo chown -f narendra:narendra non-existing-file.txt $ echo $? 1
Сега нека видим резултата от командата:

Както виждаме, горната команда не показва никаква грешка. Въпреки това, командата съобщава за неуспех, използвайки ненулевата върната стойност.
11. Как да промените файловия потребител и групов идентификатор
Досега използвахме имената на потребителите и групите, за да променим собствеността на файла. Можем обаче да използваме идентификаторите на потребителя и групата, за да постигнем същия резултат.
Първо, използвайте документ за самоличност команда за намиране на потребителския и груповия идентификатор на потребителя – нарендра:
$ id narendra
Сега нека използваме идентификатора на потребителя и групата 1001 с хапвам команда:
$ ls -l file-1.txt $ sudo chown 1001:1001 file-1.txt
И накрая, проверете дали собствеността е актуализирана успешно:
$ ls -l file-1.txt

В тази статия обсъдихме някои практически примери за хапвам команда. Човек може да използва тези примери в ежедневието, за да повиши производителността, докато работи с Linux системи.
Знаете ли за някой друг най-добър пример за командата chown в Linux? Кажете ни вашето мнение в коментарите по-долу.
Публикациите се превеждат автоматично с google translate