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

| | 0 Comments| 2:30 AM
Categories:

Команда chgrp в Linux змінює групу власності на файл або каталог. Чому використовувати його замість chown? Іноді швейцарський ніж чудовий, але коли вам дійсно потрібен скальпель, підійде тільки скальпель.

Коли слід використовувати chgrp

Ви використовуєте команду chgrp, щоб змінити групу власності на файл або каталог. Команда chown дозволяє змінити власника користувача та власника групи файлу або каталогу. Тож навіщо вам потрібен або використовувати chgrp?

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

Синтаксис chgrp такий взагалі більш прямий. Він також має чудову функцію, яка простими словами повідомляє, які зміни він щойно вніс.

Це спеціально створений інструмент для виконання поставлених завдань. chgrp повністю охоплює принцип дизайну Unix: робити одну справу і робити це добре. Давайте подивимося, що він може запропонувати.

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

Змінити групове право власності на файл дуже просто. Ви повинні використовувати sudo з chgrp. Групи не належать користувачам, тому переміщення файлу чи каталогу з однієї групи в іншу не є рішенням для середнього користувача. Це робота для людини з правами root.

  Як знищити процеси з терміналу Linux

Ми збираємося змінити групове право власності на вихідний файл C під назвою «gc.c». Ми збираємося змінити його на групу «розробник».

Ми можемо перевірити поточні значення власності, використовуючи ls з опцією -l (довгий список).

ls -l

Це команда для зміни права власності на групу. Введіть sudo, пробіл, chgrp, пробіл, назву групи, яку ми збираємося встановити як власника групи, пробіл і ім’я файлу.

sudo chgrp devteam gc.c

Ми перевіримо, чи внесено зміну, за допомогою ls -l знову.

ls -l

Ми бачимо, що право власності на групу було змінено з «dave» на «devteam».

Щоб змінити право власності на групу відразу для набору файлів, можна використовувати символи підстановки. Давайте змінимо право власності на групу для всіх вихідних файлів C у поточному каталозі. Ми будемо використовувати цю команду:

sudo chgrp devteam *.c

Ми можемо перевірити, чи внесено зміни, як ми очікували, за допомогою ls -l.

ls -l

Усі вихідні файли C у цьому каталозі були змінені так, що їх групою належить «devteam».

За допомогою параметра -c (зміни) chgrp покаже список змін, які він вніс до кожного файлу. Припустимо, ми зробили помилку, ми хотіли, щоб для вихідних файлів C було встановлено групове право власності на «researchlab». Давайте зараз це виправимо. Ми будемо використовувати цю команду:

sudo chgrp -c researchlab *.c

Зміни вносяться для нас, і кожна з них відображається в міру їх настання, що дозволяє нам перевірити, чи те, що ми змінили, правильне.

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

Змінити групове право власності на каталог так само просто. Ми можемо використовувати цю команду, щоб змінити право власності на групу для каталогу «резервна копія».

sudo chgrp -c devteam ./backup

Щоб було зрозуміло, ця команда змінить групове право власності на сам каталог, а не на файли всередині каталогу. Ми будемо використовувати ls -l з опцією -d (каталог), щоб переконатися, що це так.

ls -l -d

Групове право власності на сам каталог було змінено на «devteam».

  Як встановити браузер Otter на Linux

Рекурсивний варіант

Якщо ми хочемо змінити групу власності для файлів і каталогів, що зберігаються в каталозі, ми можемо використовувати параметр -R (рекурсивний). Це змусить chgrp змінити право власності на групу для всіх файлів і підкаталогів під цільовим каталогом.

Давайте спробуємо це зробити з каталогом «резервна копія». Ось команда:

sudo chgrp -R devteam ./backup

Ми переглянемо файли в одному з вкладених підкаталогів за допомогою команди ls, а також перевіримо налаштування одного з вкладених підкаталогів за допомогою ls .

ls -l ./backup/images
ls -l -d ./backup/images

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

Використання довідкового файлу

Поки що ми явно повідомляли chgrp назву групи, яку ми хочемо використовувати. Ми також можемо використовувати chgrp таким чином, щоб «встановити групове право власності на цей файл на те саме, що й цей файл».

Давайте встановимо, що група володіння «gc.h» буде такою ж, як і «gc.c».

Ми можемо перевірити поточні налаштування «gc.c» і «gc.h» за допомогою ls.

ls -l gc.c
ls -l gc.h

Параметр, який нам потрібно використати, — це параметр –reference. Право власності на групу копіюється з довідкового файлу в інший файл. Подбайте про те, щоб файли перемістилися правильно.

sudo chgrp --reference=gc.c gc.h

Ми будемо використовувати ls, щоб перевірити, чи налаштування перенесено в «gc.h».

ls -l gc.h

Файл «gc.h» тепер має те саме право власності на групу, що й «gc.c».

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

Використання chgrp із символічними посиланнями

Ми можемо використовувати chgrp, щоб змінити групу власності на символічні посилання або файл, на який вказує символічне посилання.

Для цього прикладу ми створили a символічне посилання називається «посилання на кнопку». Це вказує на файл під назвою «./backup/images/button_about.png». Щоб змінити групове право власності на файл, ми повинні використовувати параметр –deferencee. Це змінить налаштування файлу, а символічне посилання залишиться без змін.

Перевіримо налаштування символічного посилання за допомогою ls -l.

ls -l button_link

Команда для зміни файлу:

sudo chgrp --dereference devteam button_link

Ми перевіримо, чи символічне посилання не змінилося, за допомогою ls, а також перевіримо налаштування групового володіння файлом.

ls -l button_link
ls -l ./backup/images/button_about.png

Символічне посилання не змінилося, а право власності на групу файлу «button_about.png» було змінено.

Щоб змінити групове право власності на саме символічне посилання, ми повинні використовувати параметр –no-deferencee.

Команда для використання:

sudo chgrp --no-dereference devteam button_link

Ми будемо використовувати ls -l, щоб переконатися, що нове право власності на групу встановлено для символічного посилання.

ls -l button-link

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

Гарно та просто

Просто добре. Це означає, що потрібно менше пам’ятати і менше плутатися. Це має означати менше помилок.