Начини на плащане Abuse

Команда CHGRP LINUX

14.12.2021, 10:30

Често при работа с Linux потребителите рядко се замислят кой притежава даден файл. Когато обаче става въпрос за работа със сървър, ситуацията се променя. За да се повиши сигурността, сървърът получава свой собствен потребител. Не е необичайно сървърите да използват една и съща група, например www-data. След това нека видим как тази функция работи с файлове и директории. Ще обърнем специално внимание на символните връзки, тъй като те могат да предизвикат проблеми при използване на несигурни настройки.

Какво означава

Стандартът за разрешенията на файловете е дошъл в Linux от Unix. Така че всеки обект има потребител, група в допълнение към това описва правата надруги потребители (other). Разрешенията се състоят от три елемента: четене, запис, изпълнение. Командата umask се използва за промяна на разрешенията, но командите chown се използват за директна промяна на собственика и групата. Командата ls може да се използва за преглед на текущите разрешения.

Синтаксис и опции

Общ изглед на командата chgrp:

$ chgrp [options] new_group file_name

Списък на общите опции за командата chgrp:

  1. -h - работи директно със самите символни връзки;
  2. --dereference - работи с файлове, а не със самите символични връзки. Използва се по подразбиране;
  3. -R - рекурсивна обработка на директория с цялото ѝ съдържание;
  4. -H - следва символичната връзка и променя атрибутите на файла/директорията. Използва се заедно с параметъра -R;
  5. -L - следва символната връзка и продължава рекурсивната обработка. Използва се заедно с параметъра -R;
  6. -P - при среща със символна връзка обработва само нея. Използва се заедно с параметъра -R и е стойността по подразбиране;
  7. --референция=име на файл - използва групата на примера;
  8. -c - изходът се променя само при обработка;
  9. -v - извежда информация за всеки обработен обект.

Използване на командата

Най-простият пример за използване на командата chgrp. Следващият променя целия обект www-data за файл в текущата папка:

$ sudo chgrp www-data file.txt

А тази променя групата на www-data за папката:

 $ sudo chgrp www-data folder

Командата работи по много предсказуем начин, като променя групата им. Обектите в папката остават непроменени. Ако се обработват символни връзки, техните атрибути остават непроменени, но обектът получава нова група. Това поведение е подобно на обработката на параметъра --dereference.

Например тези команди, приложени към символни връзки, ще работят, както е показано на снимката:

$ sudo chgrp www-data sym_file.txt

Нека разгледаме как ще работи параметърът -h, променящ атрибутите на символна връзка:

$ sudo chgrp -h www-data sym_file

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

За да видите разликата между параметрите -H и -L, нека разгледаме още няколко примера. Припомнете си, че те трябва да се използват заедно с -R:

$ sudo chgrp -RH www-data folder

При използване на -H поведението при обработката на символни връзки се е променило, като сега те се обработват така, сякаш функциите се изпълняват отделно. Атрибутите на препратките не се променят, а атрибутите на самите обекти се променят, а рекурсивната обработка спира, когато преминете в директория.

$ sudo chgrp -RL www-data folder

Изпълнява се една функция - променя се групата от файлове и директории.

При обработката на символни връзки трябва да сте изключително внимателни, за да не повредите системата.