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

این راهنما به چندین دستور ضروری می پردازد: 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

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

Frame-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)

گزینه ها:

  • --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 شفاف تر است و شما را از تغییرات به محض وقوع مطلع می کند.

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

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 را پوشش دادیم و مثال‌ها و تمرین‌هایی را برای تقویت درک و مهارت ارائه کردیم.

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

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