از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش کار مالکیت و مجوزهای فایل در RHEL
سرفصلهای مطلب
دستورات لینوکس به شما کنترل دقیقی بر مالکیت و مجوزهای فایل می دهد و امنیت داده ها و کنترل دسترسی را تضمین می کند.
این راهنما به چندین دستور ضروری می پردازد: 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
بیایید این خروجی را قسمت به قسمت تجزیه کنیم. در اینجا تصویری وجود دارد که نشان می دهد هر بخش نشان دهنده چه چیزی است، و در زیر به طور مفصل به آن می پردازم:
- نوع فایل و مجوزها: ستون اول نشان دهنده نوع فایل و مجوزها است. از ده کاراکتر تشکیل شده است:
- اولین کاراکتر نشان دهنده نوع فایل (
-
برای یک فایل معمولی،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
: نمایش یک پیام برای هر فایل پردازش شده.
توجه: فقط root کاربر یا کاربری با مجوزهای مناسب می تواند از 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
بلکه پیامی مبنی بر تایید این عمل ارائه می دهد. این باعث می شود process شفاف تر است و شما را از تغییرات به محض وقوع مطلع می کند.
chmod
– مجوزهای فایل را تغییر دهید
توانایی کنترل مجوزهای فایل یکی از جنبه های حیاتی لینوکس Red Hat Enterprise (RHEL) است. این chmod
دستور ابزار قدرتمندی برای این منظور است. با استفاده از این دستور می توانید سطوح دسترسی برای خواندن، نوشتن و اجرای یک فایل را مشخص کنید.
نحو از chmod
:
chmod [OPTIONS] MODE FILE...
مجوزها:
- خواندن (
r
): به خواندن یا مشاهده محتویات یک فایل اجازه می دهد. - نوشتن (
w
): اجازه تغییر یا حذف فایل را می دهد. - اجرا کردن (
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
که در 600
، در حالی که گروه و سایرین هیچ مجوزی نخواهند داشت (دو عدد 0 زیر in 600
).
اجازه خواندن و اجرا برای مالک، خواندن برای گروه و عدم دسترسی برای دیگران:
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 o-w 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 -m u:username:permissions filename
مثال:
setfacl -m u: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
مخفف “user file create mask.” این یک دستور و یک ماسک ایجاد حالت فایل است که مجوزهای پیش فرض فایل را هنگام ایجاد یک فایل یا دایرکتوری جدید تعیین می کند.
به عنوان یک عدد هشت رقمی سه رقمی نشان داده می شود (به عنوان مثال، 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 (r-x)
- برای بقیه:
7 (rwx)
–2 (no write)
=5 (r-x)
پس از اعمال 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
دستور برای مشاهده جزئیات مجوزهای فایل فایل ها در فهرست فعلی شما. - خروجی را تفسیر کنید، نوع فایل، مجوزها، تعداد پیوندها، مالک، گروه، اندازه فایل، آخرین زمان تغییر و نام فایل/دایرکتوری را درک کنید.
تغییر مالکیت فایل:
- یک فایل به نام ایجاد کنید
example.txt
با استفاده از هر ویرایشگر متنی (به عنوان مثال،touch 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
. - استفاده کنید
getfacl
برای مشاهده ACL های دایرکتوری. - استفاده کنید
setfacl
برای اعطای مجوز خواندن و نوشتن به یک کاربر خاص (جایگزین کنیدjohn
با یک نام کاربری واقعی). - با استفاده از تغییرات ACL را تأیید کنید
getfacl
.
درک Umask:
- مقدار umask فعلی را با استفاده از
umask
فرمان - یک فایل جدید با نام ایجاد کنید
confidential.txt
. - استفاده کنید
ls -l
برای مشاهده مجوزهای پیش فرضconfidential.txt
. - مقدار umask را موقتاً به تغییر دهید
027
با استفاده ازumask
فرمان - فایل دیگری با نام ایجاد کنید
secret.txt
و مجوزهای پیش فرض آن را بررسی کنید.
تغییر دائمی Umask:
- برای تغییرات در سراسر سیستم، فایل پیکربندی سیستم را تغییر دهید (به عنوان مثال،
/etc/profile
،/etc/bashrc
) برای تنظیم یک umask پیش فرض جدید. - برای تغییرات خاص کاربر، فایل اولیه سازی کاربر را ویرایش کنید (به عنوان مثال،
~/.bashrc
،~/.bash_profile
) برای تنظیم یک umask جدید. - با ایجاد یک فایل جدید و بررسی مجوزهای پیش فرض آن، تغییرات را تأیید کنید.
بسته بندی
از شما برای کاوش در دنیای مدیریت لینوکس سازمانی Red Hat (RHEL) امروز با من سپاسگزارم.
ما دستورات اصلی ضروری برای مدیریت دقیق فایل در لینوکس Red Hat Enterprise را پوشش دادیم و مثالها و تمرینهایی را برای تقویت درک و مهارت ارائه کردیم.
میتوانید عمیقتر در حوزه تخصص لینوکس غوطهور شوید و در آموزشهای آینده من برای محتوای روشنتر همراه باشید.
میتونی دنبال من بیای روی:
- توییتر
- لینکدین
منتشر شده در 1403-01-17 02:05:06