دستور Chgrp در لينوكس

دستور Chgrp در لينوكس

زهرا عزتی

در لینوکس ، هر فايل با یک مالک و گروه همراه است و مجوزهایی دارد که تعیین می کند کاربران می توانند فایل را بخوانند ، بنویسند یا اجرا کنند. در این مقاله نحوه استفاده از دستور chgrp برای تغییر مالکیت گروه فايل های داده شده توضیح داده شده است. با ما در شتابان هاست همراه باشيد.

نحوه دستور chgrp

دستور chgrp به شکل زیر شکل می گیرد:

chgrp [OPTIONS] GROUP FILE.
  • Group نام گروه جدید یا شناسه گروه (GID) است. GID عددی باید با نماد + پیشوند باشد.
  • FILE نام یک یا چند فايل است.

بر خلاف دستور chown که به شما امکان تغییر کاربر و گروه را می دهد ، chgrp فقط مالکیت گروه را تغییر می دهد.

برای اینکه دریابید فايل به کدام گروه تعلق دارد ، از دستور ls -l استفاده کنید.

کاربران عادی می توانند فایل گروه را (تنها در صورت داشتن فايل) و فقط در گروهی که عضو آن هستند مالكيت خود را تغییر دهند؛ همچنين کاربران اداری می توانند مالکیت گروه را در همه فايل ها تغییر دهند.

نحوه تغییر مالکیت گروه فايل

برای تغییر در مالکیت گروه یک فايل یا فهرست ، از دستور chgrp که در ادامه نام گروه جدید و فايل مورد نظر به عنوان استدلال استفاده می شود ، استفاده کنید.

به عنوان مثال ، برای تغییر گروه filename به داده های www:

chgrp www-data filename

اگر دستور را با کاربر غیر شخصی اجرا کنید ، خطایی “Operation not permitted” (عملکرد مجاز نیست) دریافت خواهید کرد. برای ناديده گرفتن پیام خطا ، از گزینه -f استفاده کنید. به طور پیش فرض ، با موفقیت ، chgrp هیچ خروجی تولید نمی کند و با كد ۰ برمی گردد.

همچنین می توانید چندین فايل را به عنوان آرگومان به دستور chgrp منتقل کنید:

chgrp www-data file1 file2 dir1

برای به دست آوردن اطلاعات در مورد فايل هایی که پردازش می شوند از گزینه -v استفاده کنید:

chgrp www-data file1 file2
changed group of 'file1' from nginx to www-data
group of 'file2' retained as www-data

چاپ اطلاعات را فقط در مورد آن فايل هایی اعمال كنيد که از -c به -v تغيير مي يابند.

به جای نام کاربری ، می توانید از گروه عددی (GID) استفاده کنید. مثال زیر مالکیت گروه  را با ۱۰۰۰ GID تغییر می دهد:

chgrp +1000 filename

چگونه می توان مالکیت گروه Symlinks را تغییر داد

رفتار پیش فرض دستور chgrp تغییر مالکیت گروهی از اهداف Symlink است. (نه خود پیوندهای نمادین)

به عنوان مثال ، اگر می خواهید گروه پیوند symbolic Symlink1 که به / opt / file1 اشاره می کند را تغییر دهید ، chgrp مالکیت فایل را تغییر می دهد یا دایرکتوری Symlink را به آن تغییر می دهد:

chgrp www-data symlink1

“cannot dereference ‘symlink1’: Permission denied” error ممكن است با اين خطا مواجه شويد. این خطا رخ می دهد زیرا به طور پیش فرض در اکثر توزیع های لینوکس ،  پیوندها محافظت می شوند و شما نمی توانید بر روی فایل های هدف کار کنید. این گزینه در / proc / sys / fs / protection_symlinks مشخص شده است. ۱ به معنای فعال و ۰ غیرفعال است. توصیه می کنیم محافظت از Symlink را غیرفعال نکنید.

برای تغییر مالکیت گروهی از Symlink ، از گزینه -h استفاده کنید:

chgrp -h www-data symlink1

تغيير مالكيت گروه با Recursively

برای تغییر Recursively  در مالکیت گروه کلیه فايل ها و فهرست ها در یک فهرست مشخص ، از گزینه -R استفاده کنید.

به عنوان مثال ، دستور زیر مالکیت کلیه فايل ها و فهرست ها را در زیر فهرست / var / www به گروه www-data تغییر می دهد:

chgrp -R www-data /var/www

هنگامی که گزینه Recursively مشخص شد ، chgrp پیوندهای نمادین را طی نكرده و هیچ تغییری در پیوندها ایجاد نمی کند. برای تغییر مالکیت گروهی از پیوندهای نمادین ، از گزینه -h استفاده کنید:

chgrp -hR www-data /var/www

گزینه های دیگر که می تواند هنگام تغییر Recursively مالکیت گروه مورد استفاده قرار گیرد -H و -L هستند. اگر آرگومان به دستور chgrp منتقل شود ، یک پیوند نمادین است ، گزینه -H باعث می شود که دستور از آن عبور کند. -L به chgrp می گوید که هر قسمت از سیم را به فهرستی که با آن روبرو هستید ، عبور دهید. در بیشتر موارد ، شما نباید از این گزینه ها استفاده کنید زیرا ممکن است سیستم خود را به هم ریخته یا یک خطر امنیتی ایجاد کنید.

chgrp مالکیت گروهی از فايل ها ، فهرست ها و پیوندها را تغییر می دهد. ما را در شتابان هاست دنبال كنيد.