سلام دوستان؛
در این آموزش از وب داده، نحوه تغییر مجوز انواع فایل و دایرکتوری از طریق خط فرمان در سیستم های لینوکس / یونیکس را خواهید آموخت. دو دستورالعمل اساسی وجود دارد که می توانید برای تغییر مجوز در لینوکس از آن استفاده کنید: chmod
و chown
. دسترسی های مختلفی را می توان به انواع فایل و دایرکتوری اعمال کرد. به عنوان مثال می توان امکان خواندن، نوشتن و اجرای آن ها را تغییر داد و تنها اشخاص خاص مثل مالک امکان تغییرات داشته باشند و یا اینکه تنها اعضای یک گروه بتوانند مورد را اجرا کنند و یا همه دسترسی ها را به همگان اعطا کنیم. تمام این موارد بر حسب سلیقه قابل کنترل است.
قبل از شروع به موارد زیر نیاز دارید:
- دسترسی روت سرور
روش اول: تغییر مجوز در لینوکس از طریق خط فرمان (مجوز فایل و پوشه)
chmod – این فرمان برای تغییر مجوزهای یک فایل یا پوشه استفاده می شود. اساسا هر فایل می تواند با سه نوع کاربر ارتباط برقرار کنند:
- owner: کاربری که یک فایل یا دایرکتوری ایجاد کرده و صاحب آن است.
- group:همه کاربران عضو گروه.
- others: همه کاربران در سیستم که نه صاحبان و نه اعضای گروه هستند.
دستور ls -l
برای دیدن مجوزها و صاحبان فایل ها استفاده می شود. به عنوان مثال، ls -l file1.txt خروی زیر را نمایش می دهد:
-rwxr–rw- 1 user user 0 Jan 19 12:59 file1.txt
دستور “-rwxr-rw-
” مجوزها را نمایش می دهد. چهار حروف اصلی وجود دارد که در این دستور به چشم می خورند r، w، x، d. d به این معنی است که نوع پرونده دایرکتوری است، حرف x به معنای مجوز اجرای یک فایل یا پوشه است. w به معنای اجازه نوشتن یک فایل یا پوشه (ویرایش فایل، حذف فایل و غیره) و آخرین حرف r به معنای خواندن است. اگر ما مجوز خواندن داشته باشیم، می توانیم محتویات فایل را بخوانیم، اما امکان ویرایش یا اجرای آن نیست. (مثلا می توانیم کد اسکریپت را بخوانیم، اما نمیتوانیم آن را اجرا کنیم.)
خروجی بالا را با هم تحلیل کنیم:
- user user – این مالک و مالک گروه فایل را نشان می دهد.
- 0 – اندازه فایل را نشان می دهد.
- 19 ژانویه 12:59 – تاریخ آخرین ویرایشات فایل را نمایش می دهد.
- file1.txt – نام فایل یا پوشه است.
فرمان chmod اجازه می دهد تا مجوزهای یک فایل یا پوشه را تغییر دهیم. هر نوع مجوز شماره خاص خود را دارد:
r (خواندن) – 4
W (نوشتن) – 2
x (اجرا) – 1
برای مثال، اگر بخواهیم مجوزهای file1.txt را تغییر دهیم:
-rwxr–rw- 1 user user 0 Jan 19 12:59 file1.txt
باید این دستور را بنویسیم:
chmod 746 file1.txt
هر عدد در این کد، مجوزهای مربوط به یکی از انواع کاربر (مالک، مالک گروه، و دیگران) را نشان می دهد.
- اولین شماره 7 است، بر اساس اعدادی که در بالا ذکر شد، شماره 7 از مجموع اعداد 4، 2 و 1 یعنی به صورت 4 + 2 + 1 = 7 به وجود آمده وبه معنای ALL و تمامی مجوزها است. (خواندن، نوشتن و اجرا – rwx).
- این شماره مجوزها و دسترسی های اونر را مشخص می کند.
- شماره دوم 4 است، یعنی مجوز r (خواندن) و این شماره اجزاه خواندن فایل را صادر می کند.
- شماره سوم 6 است، تنها راه به دست آوردن این عدد، مجموع 4 و 2 است. بنابراین اجازه خواندن (4) و نوشتن (2) فایل صادر می شود.
- بخش سوم (file1.txt) از دستور نام فایل است.
انواع مجوزهای فایل
برای انجام اقدامات مرتبط با تغییر مجوز در لینوکس ابتدا باید با تمام دسترسی ها آشنا شوید.
rw — 600 مالک می تواند اجازه خواندن و نوشتن داشته باشد.
rw-r-r- 644 مالک می تواند اجازه خواندن و نوشتن داشته باشد، اعضای گروه و دیگران هم می توانند آن را بخوانند.
rw-rw-rw- 666 مالک، اعضای گروه و دیگران می توانند اجازه خواندن و نوشتن داشته باشند.
rwx– 700 فقط مالک اجازه خواندن، نوشتن و اجرا دارد.
rwx-x-x 711 مالک اجازه خواندن، نوشتن و اجرای آن را دارد، گروه و دیگران فقط می توانند آن را اجرا کنند.
rwxr-xr-x 755 مالک امکان خواندن، نوشتن و اجرا دارد. اعضای گروه و دیگران فقط امکان خواندن و اجرا دارند.
rwxrwxrwx 777 مالک، گروه و دیگران امکان خواندن، نوشتن و اجرا دارند.
انواع مجوزهای دایرکتوری ها
drwx – 700 تنها مالک می تواند امکان خواندن و نوشتن داشته باشد.
drwxr-xr-x 755 مالک، گروه و دیگران می توانند دایرکتوری را بخوانند، اما تنها مالک می تواند مطالب آن را تغییر دهد.
برای تغییر مجوز در لینوکس و تغییر مجوز فایل ها با استفاده از دستور chmod راه های دیگری هم وجود دارد.
روش دوم: تغییر مجوز پرونده ها و پرونده ها از طریق خط فرمان
chown – این فرمان برای تغییر صاحب یک فایل یا پوشه استفاده می شود. اصولا کد مربوط به تغییر مجوز در لینوکس به صورت زیر در محیط خط فرمان وارد می شوذ:
chown [owner/group owner] [file name]
اگر یک فایل با نام “demo.txt” داشته باشیم و بخواهیم صاحب فایل را به “jerry” و مالک گروه به “clients” تغییردهیم، برای تغییر مجوز در لینوکس از دستور زیر استفاده می کنیم:
chown jerry:clients demo.txt
این دو مورد را با یک نماد “:” (کولون) جدا می کنیم. اگر ما فقط می خواستیم مالک فایل را تغییر دهیم، می توانیم از این استفاده کنیم:
chown jerry demo.txt
همان طور که می بینید، با فرمول بالا به راحتی می توان نسبت به تغییر مجوز در لینوکس اقدام کرد. تنهاکافی است مجوزهای مورد نظر را در دستور کلی آن جایگزین کنید.
جمع بندی نهایی
- حرف r به معنای خواندن
- حرف w به معنای امکان نوشتن
- حرف x به معنای امکان اجرا
chmod
می توان مجوز فایل یا دایرکتوری و با دستور chown
نیز می توان صاحب یا همان owner را تعیین کرد.