نحوه کار مالکیت و مجوزهای فایل در RHEL
دستورات لینوکس به شما کنترل دقیقی بر مالکیت و مجوزهای فایل می دهد و امنیت داده ها و کنترل دسترسی را تضمین می کند.
این راهنما به چندین دستور ضروری می پردازد: chown
، chgrp
، chmod
و umask
. مثال ها عملکرد، تغییرات و کاربردهای عملی آنها را به نمایش خواهند گذاشت.
فهرست مطالب
در اینجا چیزی است که ما در این راهنمای جامع پوشش خواهیم داد
chgrp - تغییر مالکیت گروه فایل
chmod - مجوزهای فایل را تغییر دهید
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
بیایید این خروجی را قسمت به قسمت تجزیه کنیم. در اینجا تصویری وجود دارد که نشان می دهد هر بخش نشان دهنده چه چیزی است، و در زیر به طور مفصل به آن می پردازم:
خروجی جزئیات برای دستور 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 [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 را پوشش دادیم، با ارائه مثالها و تمرینهای عملی برای تقویت درک و مهارت.
میتوانید عمیقتر در حوزه تخصص لینوکس غوطهور شوید و در آموزشهای آینده من برای محتوای روشنتر همراه باشید.
شما می توانید من را دنبال کنید:
ارسال نظر