متن خبر

نحوه کار مالکیت و مجوزهای فایل در RHEL

نحوه کار مالکیت و مجوزهای فایل در RHEL

شناسهٔ خبر: 443092 -




دستورات لینوکس به شما کنترل دقیقی بر مالکیت و مجوزهای فایل می دهد و امنیت داده ها و کنترل دسترسی را تضمین می کند.

این راهنما به چندین دستور ضروری می پردازد: chown ، chgrp ، chmod و umask . مثال ها عملکرد، تغییرات و کاربردهای عملی آنها را به نمایش خواهند گذاشت.

فهرست مطالب

در اینجا چیزی است که ما در این راهنمای جامع پوشش خواهیم داد

ls -l – مشاهده مجوزهای فایل

chown - تغییر مالکیت فایل

chgrp - تغییر مالکیت گروه فایل

chmod - مجوزهای فایل را تغییر دهید

لیست های کنترل دسترسی

فرمان umask

تمرین عملی

بسته بندی

ls -l – مشاهده مجوزهای فایل

در دنیای Red Hat Enterprise Linux، استفاده از دستور ls -l مانند نگاه کردن به دفترچه خاطرات مخفی یک فهرست است. این روشی است برای مشاهده دقیق و از نزدیک آنچه در داخل است، تقریباً مانند ورق زدن یک کاتالوگ با تمام جزئیات ریز.

مثال ls -l

اجرای این دستور مجوزهای فایل، مالکیت و سایر جزئیات را برای فایل‌های موجود در فهرست فعلی نمایش می‌دهد.

ls -l /mydirectory

این خروجی است:

OUTPUT drwxr-xr-x 2 username group 4096 Jan 5 09:30 mydirectory

بیایید این خروجی را قسمت به قسمت تجزیه کنیم. در اینجا تصویری وجود دارد که نشان می دهد هر بخش نشان دهنده چه چیزی است، و در زیر به طور مفصل به آن می پردازم:

قاب-1000004565

خروجی جزئیات برای دستور ls -l

نوع فایل و مجوزها: ستون اول نشان دهنده نوع فایل و مجوزها است. از ده کاراکتر تشکیل شده است:

اولین کاراکتر نوع فایل را نشان می دهد ( - برای یک فایل معمولی، d برای یک فهرست، l برای یک پیوند نمادین، و غیره).

9 کاراکتر بعدی مجوزهای مالک، گروه و دیگران (خواندن، نوشتن، اجرا) را نشان می‌دهند.

تعداد پیوندها: ستون دوم تعداد پیوندهای سخت به فایل یا دایرکتوری را نشان می دهد.

Owner and Group: ستون سوم و چهارم مالک و گروه مرتبط با فایل یا دایرکتوری را نشان می دهد.

حجم فایل: ستون پنجم اندازه فایل را بر حسب بایت نشان می دهد.

آخرین زمان اصلاح: ستون ششم مهر زمانی آخرین اصلاح را نشان می دهد.

نام فایل یا دایرکتوری: در ستون آخر نام فایل یا دایرکتوری فهرست می شود.

chown - تغییر مالکیت فایل

در Red Hat Enterprise Linux (RHEL)، دستور قدرتمند chown مخفف "تغییر مالک" است و به کاربران اجازه می دهد تا مالکیت فایل ها و دایرکتوری ها را تغییر دهند. این ابزار همه کاره یک منبع ارزشمند برای مدیران سیستم در مدیریت موثر مجوزها و کنترل دسترسی است.

نحو chown :

chown [OPTIONS] [NEW_OWNER][:NEW_GROUP] FILE(s)/DIRECTORY(s)

گزینه ها:

R, --recursive : به صورت بازگشتی مالکیت دایرکتوری ها و محتویات آنها را تغییر دهید.

v, --verbose : نمایش یک پیام برای هر فایل پردازش شده.

توجه: فقط کاربر اصلی یا کاربری با مجوزهای مناسب می تواند از chown برای تغییر مالکیت استفاده کند.

نمونه های chown :

تغییر مالکیت فایل:

chown newowner myfile.txt

با این کار مالک یک فایل به newowner تغییر می کند.

تغییر مالکیت گروه:

chown :newgroup myfile.txt

این دستور باعث می‌شود فایلی به نام myfile.txt به گروه جدیدی به نام newgroup ملحق شود و با شخصی که فایل را دارد مشکلی ایجاد نمی‌کند. می توانید این تغییر گروه را با استفاده از دستوری به نام chown انجام دهید. اوه، و یک دستور ویژه دیگر فقط برای تغییر گروه وجود دارد که به زودی در مورد آن صحبت خواهیم کرد.

تغییر مالک و گروه:

chown newowner:newgroup myfile.txt

با این کار مالک به newowner و گروه به newgroup برای فایل myfile.txt تغییر می کند.

تغییر بازگشتی (اعمال تغییرات در زیر شاخه ها):

chown -R newowner:newgroup /path/to/directory

دستور بالا به سیستم دستور می دهد که مالکیت همه فایل ها و دایرکتوری های داخل دایرکتوری مشخص شده و زیر شاخه های آن را به مالک و گروه جدید مشخص شده تغییر دهد. این تضمین می کند که عملیات به صورت بازگشتی در کل ساختار دایرکتوری انجام می شود.

حالت پرمخاطب:

chown -v newowner:newgroup myfile.txt

این فرمان به سیستم دستور می دهد که مالکیت فایل مشخص شده را تغییر دهد و خروجی دقیقی از تغییرات انجام شده ارائه دهد. خروجی دقیق نشان داده می شود زیرا ما از گزینه -v با chown استفاده می کنیم.

مالکیت توسط UID/GID:

chown 1001:1002 myfile.txt

این فرمان به سیستم دستور می دهد که مالکیت فایل مشخص شده را تغییر دهد و آن را به یک کاربر و گروه خاص که با شناسه های عددی مربوطه آنها مشخص شده است (1001، 1002) اختصاص دهد.

chgrp - تغییر مالکیت گروه فایل

دستور chgrp در Red Hat Enterprise Linux (RHEL) برای تغییر مالکیت گروهی فایل ها یا دایرکتوری ها استفاده می شود. این به ویژه زمانی مفید است که می خواهید فقط مالکیت گروه را بدون تأثیر بر مالک کاربر یا مجوزهای فایل تغییر دهید.

نحو chgrp :

chgrp [OPTIONS] NEW_GROUP FILE...

نمونه های chgrp :

تغییر مالکیت گروهی یک فایل:

chgrp newgroup myfile.txt

با این کار مالکیت گروه یک فایل به نام myfile.txt به گروهی به نام newgroup تغییر می کند.

تغییر مالکیت گروهی دایرکتوری به صورت بازگشتی:

chgrp -R newgroup /path/to/directory

این امر مالکیت گروه را نه تنها دایرکتوری مشخص شده بلکه تمامی محتویات آن را به صورت بازگشتی تغییر می دهد. این تضمین می کند که همه چیز در ساختار دایرکتوری اکنون با گروهی به نام newgroup مرتبط است.

تغییر مالکیت گروه و نمایش آشکار تغییرات:

chgrp -v newgroup myfile.txt

با این کار مالکیت گروه myfile.txt به newgroup تغییر می‌کند، اما پیامی نیز برای تأیید این عمل ارائه می‌دهد. این فرآیند را شفاف‌تر می‌کند و شما را از تغییرات به محض وقوع مطلع می‌کند.

chmod - مجوزهای فایل را تغییر دهید

توانایی کنترل مجوزهای فایل یکی از جنبه های حیاتی لینوکس Red Hat Enterprise (RHEL) است. دستور chmod ابزار قدرتمندی برای این منظور است. با استفاده از این دستور می توانید سطوح دسترسی برای خواندن، نوشتن و اجرای یک فایل را مشخص کنید.

نحو chmod :

chmod [OPTIONS] MODE FILE...

مجوزها:

Read ( r ): به خواندن یا مشاهده محتویات یک فایل اجازه می دهد.

Write ( w ): اجازه تغییر یا حذف فایل را می دهد.

Execute ( x ): اجازه اجرا را به یک فایل (برای اسکریپت ها یا باینری ها) می دهد.

نمایش عددی:

0 : بدون اجازه

1 : اجرا کنید.

2 : بنویس

3 : بنویسید و اجرا کنید. (2+1)

4 : بخوانید.

5 : بخوانید و اجرا کنید. (4+1)

6 : بخوانید و بنویسید. (4+2)

7 : بخوانید، بنویسید و اجرا کنید. (4+2+1)

بازنمایی نمادین:

u : کاربر/مالک.

g : گروه.

o : دیگران

a : همه (معادل ugo ).

نمونه های chmod :

مجوزهای خواندن و نوشتن را به مالک اختصاص دهید:

chmod 600 myfile.txt

پس از اجرای chmod 600 myfile.txt ، صاحب myfile.txt به فایل دسترسی کامل به خواندن و نوشتن خواهد داشت ( 6 در 6 00 )، در حالی که گروه و سایرین هیچ مجوزی نخواهند داشت (دو 0 زیر در 6 00 ).

اجازه خواندن و اجرا برای مالک، خواندن برای گروه و عدم دسترسی برای دیگران:

chmod 540 script.sh

صاحب فایل هم مجوز خواندن و هم مجوز اجرا دارد ( 5 ). گروه مرتبط با فایل دسترسی فقط خواندنی دارد ( 4 ). سایر کاربران (کسانی که در گروه مالک نیستند) اصلاً مجوزی برای فایل ندارند ( 0 ).

مجوزهای کامل را برای همه (خواندن، نوشتن، اجرا) فراهم کنید:

chmod 777 important_file.txt

مالک، گروه و همه کاربران دیگر دسترسی کامل به خواندن، نوشتن در و اجرای important_file.txt دارند. این تنظیم گسترده ترین مجوزهای ممکن را می دهد، که ممکن است برای فایل های حساس یا مهم به دلیل دسترسی نامحدود خطرناک باشد.

مجوز خواندن و نوشتن را به کاربر اختصاص دهید:

chmod u+rw myfile.txt

صاحب myfile.txt ( u ) مجوز خواندن و نوشتن ( rw ) را به دست می آورد و به آنها اجازه می دهد هم از فایل بخوانند و هم بنویسند.

اجازه نوشتن برای دیگران را حذف کنید

chmod ow myfile.txt

سایرین (کاربرانی که در گروه مالک نیستند – o ) اجازه نوشتن خود را در myfile.txt ( -w ) از دست می دهند. آنها می توانند فایل را بخوانند اما اجازه تغییر آن را ندارند.

فهرست های کنترل دسترسی

فهرست های کنترل دسترسی (ACL) در لینوکس Red Hat Enterprise (RHEL) پسوند مجوزهای فایل استاندارد هستند. آنها کنترل دقیق تری را بر روی افرادی که می توانند به یک فایل یا دایرکتوری دسترسی داشته باشند، ارائه می دهند و شما را قادر می سازند تا مجوزهایی را برای کاربران یا گروه های خاص فراتر از مالک سنتی، گروه و دیگران تنظیم کنید.

مجوزهای سنتی (خواندن، نوشتن، اجرا) بر دسترسی ها بر اساس مالک، گروه و دیگران نظارت می کنند.

ACL ها این را با اجازه دادن مجوز برای چندین کاربر و گروه گسترش می دهند.

در لینوکس Red Hat Enterprise (RHEL)، getfacl و setfacl دستوراتی هستند که برای مدیریت فهرست های کنترل دسترسی (ACL) روی فایل ها و دایرکتوری ها استفاده می شوند.

نمونه های فهرست کنترل دسترسی:

نحوه مشاهده ACL ها:

getfacl filename

این اطلاعات ACL را برای آن فایل یا دایرکتوری خاص بازیابی و نمایش می دهد. نمای جامع تری از حقوق دسترسی و مجوزهای پیکربندی شده برای آن فایل خاص در سیستم ارائه می دهد.

نحوه تنظیم ACL:

نحو:

setfacl -mu:username:permissions filename

مثال:

setfacl -mu:john:rw important_file.txt

کد بالا ACL مربوط به important_file.txt را تغییر می دهد و به طور خاص مجوز خواندن و نوشتن را به کاربر به نام john می دهد. این به آنها امکان می‌دهد بدون تأثیر بر مجوزهای دیگر کاربران، فایل را بخوانند و روی آن بنویسند.

بیایید کد را تجزیه کنیم:

setfacl : دستوری که برای تنظیم ACL ها استفاده می شود.

-m : این گزینه مخفف "modify" است و برای اصلاح ACLهای موجود یک فایل یا دایرکتوری بدون تغییر سایر مجوزهایی که ممکن است قبلاً تنظیم شده باشند استفاده می شود.

u:username:permissions : این قسمت کاربر، نام کاربری او و مجوزهایی را که برای آن کاربر اعطا یا اصلاح می شود مشخص می کند.

u : نشان می دهد که ورودی زیر مربوط به یک کاربر خاص است.

username : نشان دهنده نام کاربری کاربری است که مجوزهایش در حال تغییر است.

permissions : نشان دهنده مجوزهای خاص است که به کاربر اختصاص داده شده است.

فرمان umask

در لینوکس Red Hat Enterprise (RHEL)، umask مخفف «ماسک ایجاد فایل کاربر» است. این یک دستور و یک ماسک ایجاد حالت فایل است که مجوزهای پیش فرض فایل را هنگام ایجاد یک فایل یا دایرکتوری جدید تعیین می کند.

به عنوان یک عدد هشت رقمی سه رقمی نشان داده می شود (به عنوان مثال، 022، 002، و غیره).

محاسبه: مقدار umask مجوزها را از حداکثر مجوزهای پیش فرض کم می کند:

برای فایل ها: با 666 (rw-rw-rw-) شروع کنید و مقدار umask را کم کنید.

برای دایرکتوری ها: با 777 (rwxrwxrwx) شروع کنید و مقدار umask را کم کنید.

مثالی از محاسبه umask

بیایید مثالی را در نظر بگیریم که در آن مقدار umask 022 است.

برای فایل ها:

حداکثر مجوزهای پیش فرض: 666 ( rw-rw-rw- )

مقدار Umask: 022

کم کردن مقدار umask ( 022 ) از مجوزهای فایل پیش فرض ( 666 ):

برای مالک: 6 (rw) - 0 (no write) = 6 (rw-)

برای گروه: 6 (rw) - 2 (no write) = 4 (r--)

برای دیگران: 6 (rw) - 2 (no write) = 4 (r--)

پس از اعمال umask ( 022 )، مجوزهای حاصل برای فایل های جدید 644 می شود ( rw-r--r-- ).

برای دایرکتوری ها:

حداکثر مجوزهای پیش فرض: 777 ( rwxrwxrwx )

مقدار Umask: 022

کم کردن مقدار umask ( 022 ) از مجوزهای دایرکتوری پیش فرض ( 777 ):

برای مالک: 7 (rwx) - 0 (no write) = 7 (rwx)

برای گروه: 7 (rwx) - 2 (no write) = 5 (rx)

برای دیگران: 7 (rwx) - 2 (no write) = 5 (rx)

پس از اعمال umask ( 022 )، مجوزهای حاصل برای دایرکتوری های جدید به 755 تبدیل می شود ( rwxr-xr-x ).

پس با مقدار umask 022 ، فایل های جدید دارای مجوزهای پیش فرض 644 ( rw-r--r-- ) و دایرکتوری های جدید دارای مجوزهای پیش فرض 755 ( rwxr-xr-x ) خواهند بود.

نمونه های umask :

umask فعلی را تحلیل کنید:

umask

umask را به طور موقت تغییر دهید

umask [new_umask_value]

رقم اول نشان دهنده مجوزهای حذف شده برای مالک فایل است.

رقم دوم نشان دهنده مجوزهای حذف شده برای گروه است.

رقم سوم نشان دهنده مجوزهای حذف شده برای دیگران (کاربرانی که در گروه مالک نیستند) است.

نمونه هایی از مقادیر umask و پیامدهای آنها:

000 : هیچ مجوزی حذف نمی شود، و در نتیجه مجوزهای خواندن، نوشتن و اجرای کامل برای همه (به دلیل پیامدهای امنیتی توصیه نمی شود).

022 : اجازه نوشتن را برای دیگران حذف می‌کند، که معمولاً برای اطمینان از اینکه دیگران می‌توانند فایل‌های ایجاد شده توسط مالک را بخوانند، اما اصلاح نکنند، استفاده می‌شود.

077 : تمام مجوزها را برای گروه و دیگران حذف می کند و فقط به مالک اجازه می دهد تا مجوزهای کامل خواندن، نوشتن و اجرا را انجام دهد.

002 : شبیه 022 است، اما به علاوه به اعضای گروه اجازه می دهد تا در فایل هایی که ایجاد می کنند بنویسند.

تغییر دائمی umask

اگر بخواهید یا نیاز دارید، می توانید umask در سراسر سیستم را تغییر دهید (که دائمی است). در اینجا نحوه انجام این کار آمده است:

برای تغییرات در سراسر سیستم، فایل‌های پیکربندی سیستم مانند /etc/profile ، /etc/bashrc یا فایل‌های مخصوص پوسته را تغییر دهید.

فایل را با استفاده از یک ویرایشگر متن با امتیازات مدیریت ویرایش کنید:

 sudo nano /etc/profile

خطی را که مقدار umask را تنظیم می کند، پیدا کنید و بر اساس آن تنظیم کنید.

فایل را ذخیره کرده و از ویرایشگر متن خارج شوید.

شما همچنین می توانید umask خاص کاربر (همچنین دائمی) را تغییر دهید. در اینجا نحوه انجام این کار آمده است:

برای تغییرات خاص یک کاربر، فایل اولیه سازی آنها را ویرایش کنید (به عنوان مثال، ~/.bashrc ، ~/.bash_profile ، ~/.profile )

vim ~/.bashrc

خط umask را در صورت نیاز اضافه یا تغییر دهید.

فایل را ذخیره کرده و از ویرایشگر متن خارج شوید.

برای تایید تغییرات این دستور را تایپ کنید:

umask

تمرینات عملی

در اینجا چند تمرین وجود دارد که به شما کمک می کند آنچه را که در اینجا پوشش داده ایم را تمرین کنید. سعی کنید به تنهایی از آنها عبور کنید.

مشاهده مجوزهای فایل:

از دستور ls -l برای مشاهده جزئیات مجوزهای فایل فایل ها در فهرست فعلی خود استفاده کنید.

خروجی را تفسیر کنید، نوع فایل، مجوزها، تعداد پیوندها، مالک، گروه، اندازه فایل، آخرین زمان تغییر و نام فایل/دایرکتوری را درک کنید.

تغییر مالکیت فایل:

با استفاده از هر ویرایشگر متنی (به عنوان مثال، touch example.txt ) یک فایل به نام example.txt ایجاد کنید.

از دستور ls -l برای تأیید مالکیت example.txt استفاده کنید.

از دستور chown برای تغییر مالکیت example.txt به کاربر دیگری استفاده کنید (نام کاربری واقعی را جایگزین newowner کنید).

تغییر مالکیت را با استفاده از ls -l تأیید کنید.

تغییر مالکیت گروه فایل:

فایل دیگری به نام data.txt ایجاد کنید.

از دستور ls -l برای تأیید مالکیت گروه data.txt استفاده کنید.

از دستور chgrp برای تغییر مالکیت گروه data.txt به گروهی دیگر استفاده کنید (نام گروه را جایگزین newgroup کنید).

تغییر مالکیت گروه را با استفاده از ls -l تأیید کنید.

تغییر مجوزهای فایل:

یک فایل سوم با نام script.sh ایجاد کنید.

از دستور ls -l برای مشاهده مجوزهای پیش فرض script.sh استفاده کنید.

از دستور chmod برای دادن مجوز خواندن و اجرای به مالک، مجوز خواندن گروه، و هیچ مجوزی برای دیگران استفاده کنید.

با استفاده از ls -l تغییرات مجوز را تأیید کنید.

تنظیم ACL:

یک دایرکتوری با نام secure_folder ایجاد کنید.

برای مشاهده ACL های دایرکتوری از getfacl استفاده کنید.

از setfacl برای اعطای مجوز خواندن و نوشتن به یک کاربر خاص استفاده کنید (یک نام کاربری واقعی را جایگزین john کنید).

با استفاده از getfacl تغییرات ACL را تحلیل کنید.

درک Umask:

مقدار umask فعلی را با استفاده از دستور umask تحلیل کنید.

یک فایل جدید با نام confidential.txt ایجاد کنید.

از ls -l برای مشاهده مجوزهای پیش فرض confidential.txt استفاده کنید.

با استفاده از دستور umask مقدار umask را به طور موقت به 027 تغییر دهید.

فایل دیگری به نام secret.txt ایجاد کنید و مجوزهای پیش فرض آن را تحلیل کنید.

تغییر دائمی Umask:

برای تغییرات در سراسر سیستم، فایل پیکربندی سیستم را تغییر دهید (به عنوان مثال، /etc/profile ، /etc/bashrc ) تا یک umask پیش فرض جدید تنظیم کنید.

برای تغییرات خاص کاربر، فایل اولیه سازی کاربر (به عنوان مثال ~/.bashrc ، ~/.bash_profile ) را ویرایش کنید تا یک umask جدید تنظیم کنید.

با ایجاد یک فایل جدید و تحلیل مجوزهای پیش فرض آن، تغییرات را تأیید کنید.

بسته بندی

از شما برای کاوش در دنیای مدیریت لینوکس سازمانی Red Hat (RHEL) امروز با من سپاسگزارم.

ما دستورات اصلی ضروری برای مدیریت دقیق فایل در لینوکس Red Hat Enterprise را پوشش دادیم، با ارائه مثال‌ها و تمرین‌های عملی برای تقویت درک و مهارت.

می‌توانید عمیق‌تر در حوزه تخصص لینوکس غوطه‌ور شوید و در آموزش‌های آینده من برای محتوای روشن‌تر همراه باشید.

شما می توانید من را دنبال کنید:

توییتر

لینکدین

خبرکاو

ارسال نظر

دیدگاه‌ها بسته شده‌اند.


تبليغات ايهنا تبليغات ايهنا

تمامی حقوق مادی و معنوی این سایت متعلق به خبرکاو است و استفاده از مطالب با ذکر منبع بلامانع است