صفحه اصلی

آرشیو مقاله ها

آرشیو اخبار

همکاری با ما

تماس با ما
 
عنوان خبر
 
  
 
سامانه جمع آوری خودکار تجهیزات IT
افرنگ نیوز مجله زندگی
مجتمع آموزشی شایگان
هر روز صبح جدیدترین اخبار در افرنگ نیوز کلیک کنید ...
رفع موخوره با 6 ماده غذايي
فروش اينترنتي سمعک هاي دست دوم/ماجراي سفارش سمعک از خارج
کاهش 4 تا 8 درجه‌اي دما/ دماي هوا در شمال غرب و غرب کشور به صفر يا زير صفر مي‌رسد
انواع گزيدگي حشرات +نشانه‌ها و راهکار‌هاي درماني
عکس/معلم، عينک را در چشم دانش‌آموز تهراني خورد کرد
9 توصيه براي جذاب شدن نزد همسر
ملخ مصرف خوراکي دارد/ از خوردن ملخ هاي کشته شده پرهيز شود
حمله به معصوميت کودکان در قاب دوربين
لايحه اعطاي تابعيت از مادر ايراني به فرزندان در راه مجلس
خواص شگفت انگيز آب برنج براي زيبايي پوست و مو
تعرفه 10 درصدي؛ نه باب ميل پزشکان نه مورد قبول بيمه
توضيح وزارت بهداشت در خصوص موضوع محدوديت ادامه تحصيل پزشکان عمومي
13 خوراکي اي که زنان نبايد مصرف کنند
چند باور غلط درباره چاقي، مغز ، مصرف نمک و استفاده از ماکروويو
قارچ‌هاي سمي چه نشانه‌هايي دارد؟
روي مثبت اضطراب و استرس!
همزمان خربزه و عسل بخوريد،مي ميريد؟!
قرص هاي روانگردان رايگان در مدرسه دخترانه!
شيزوفرني قبل از بروز، تشخيص داده و درمان مي شود
منع پذيرش 1500 معتاد متجاهر به دليل ابتلا به ايدز و هپاتيت
مجوزهاي دسترسي براي فايل ها و دايرکتوري ها
تعداد بازدید : 9264
 
 

از آنجايي که لينوکس يک سيستم عامل چند کاربره يا Multiuser مي باشد و در هر لحظه بيش از يک کاربر مي توانند از سيستم استفاده کنند ، اين نکته بسيار ضروري است که بتوانيم اين کاربران را مديريت و از لحاظ سطح امنيتي آنها را محدود کنيم تا در آينده دچار مشکلات امنيتي نشويم. براي درک مفهوم مجوزهاي دسترسي ما در ابتدا به معرفي مفاهيم اصلي مانند کاربر و گروه و سپس به بررسي نحوه ي مديريت کاربران خواهيم پرداخت.

I. کاربران در لينوکس
در لينوکس سه دسته ي مختلف از کاربران وجود دارند:
?. کاربر ريشه يا root
?. کاربر ساده
?. کاربران سيستم

کاربر اصلي يا SuperUser با نام root شناخته مي شود که بر تمام سيستم کنترل کامل داشته و بالاترين سطح دسترسي يک سيستم را دارا مي باشد و قابل ذکر است که اين کاربر با شناسه ي کاربري يا UserID به شماره ي 0 شناخته مي شود.
کاربر ساده مي تواند وارد سيستم شود و کارهاي معمولي يک کاربر را انجام دهد. هر کاربر يک دايرکتوري به نام دايرکتوري خانگي يا HomeDirectory دارد که اغلب در home/ و با نام کاربري آن کاربر مي باشد و نيز يک شل دارد که در اکثر مواقع bin/bash/ ميباشد. اين کاربران به منابع سيستم دسترسي ندارند به اين معني که نمي توانند تنظيمات کلي سيستم مثلا سرويس دهنده هاي وب را تغيير دهند (مگر آنکه کاربر ريشه اين مجوز را براي آنها صادر کند). بنابراين اين کاربران نمي توانند به سيستم آسيبي برسانند و يا فايل هاي سيستمي را پاک يا تغيير دهند. در لينوکس هر سيستمي علاوه بر يک کاربر ريشه حداقل يک کابر ساده نيز دارد تا کار هاي معمولي و حتي کارهاي کاربر خانگي توسط اين کاربر ساده انجام گيرد تا از آسيب ديدن سيستم جلوگيري شود. (اين آسيب مي تواند پاک شدن يک فايل سيستمي به دليل نا آشنايي کاربر ساده باشد.)
کاربران سيستم هرگز Login نمي کنند. حساب هاي کاربري يا Account هاي اين کاربران براي کارهاي خاص استفاده مي شود. اين کاربران معمولا دايرکتوري خانگي نيز ندارند. نمونه اي از اين کاربران ? کاربران ftp ، apache ،lp مي باشند. کاربر ftp براي دسترسي بي نام (Anonymous) يا همان بدون نام کاربري و پسورد استفاده مي شود يا کاربرapache معمولا براي مديريت درخواست هاي HTTP استفاده مي شود. (البته در برخي توزيع هاي لينوکس اين کاربر nobody يا www-data مي باشد.)

براي ديدن ليستي از کاربران موجود در سيستم (هر سه دسته ي بالا) مي توانيد فايل etc/passwd/ را ببينيد. در اين فايل هر خط نشان دهنده ي يک کاربر مي باشد و اطلاعات مربوط به کاربر در مقابل آن کاربر نمايش داده مي شود. براي ديدن اين اطلاعات مي توانيد از دستور زير استفاده کنيد:

tux@GNUIran:~$ cat /etc/passwd

نتيجه ي اين دستور چيزي شبيه زير خواهد بود:

tux@GNUIran:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
Debian-exim:x:102:102::/var/spool/exim4:/bin/false
identd:x:100:65534::/var/run/identd:/bin/false
sshd:x:101:65534::/var/run/sshd:/bin/false
gdm:x:103:104:Gnome Display Manager:/var/lib/gdm:/bin/false
mysql:x:104:106:MySQL Server:/var/lib/mysql:/bin/false
tux:x:1000:30:GNUIran.org´s Tux،9990011،:/home/tux:/bin/bash

همان طور که مي بينيد هر کدام از کاربران در يک خط هستند.
براي نمونه اطلاعات مربوط به کاربر tux را مورد بررسي قرار مي دهيم:
tux : نام کاربري
x : در اين بخش کلمه ي عبور يا پسورد کاربر به صورت رمز نوشته مي شود. البته در توزيع هاي جديد بجاي آن يک x نوشته ميشود و پسورد در فايل ديگري به نام etc/shadow/ نگهداري مي شود.
1000 : شماره ي کاربر يا UserID مي باشد که همان طور که مي بينيد براي کاربر ريشه 0 مي باشد.
30 : شماره ي گروه يا GroupID مي باشد که در ادامه درباره ي گروه ها توضيح خواهيم داد.
GNUIran.org´s Tux : اطلاعات اضافي درباره ي کاربر که مي تواند شامل نام و نام خانوادگي و تلفن و غيره باشد. به اين فيلد ? فيلد GECOS گفته مي شود. براي کاربران سيستم اين فيلد اغلب توضيحي درباره ي کاربرد آن کاربر مي باشد. به توضيحات کاربرgdm توجه کنيد.
home/tux/ : اين بخش محل دايرکتوري خانگي کاربران را نمايش مي دهد. به محل اين دايرکتوري در کاربران سيستم دقت کنيد!
bin/bash/ : در اين بخش به شل يا پوسته ي هر کاربر اشاره شده است که در اغلب توزيع هاي لينوکس bin/bash/ مي باشد.

براي ايجاد يک کاربر جديد در خط فرمان بعد از رفتن به حالت ريشه (با دستور su) مي توانيد با دستور adduser يک کاربر جديد بسازيد:

GNUIran:~# adduser gnu
GNUIran:~# passwd gnu

با وارد کردن اين دستورات ابتدا کاربر جديد gnu ساخته مي شود و با وارد کردن دستور بعد از شما يک کلمه ي عبور يا پسورد براي کاربر gnu پرسيده خواهد شد. اگر اين دستور در توزيع شما غير فعال است شما مي توانيد از مدير هاي گرافيکي مانند YaST در زوزه ? براي مديريت کاربران استفاده نماييد يا از برنامه ي Kuser در محيط ميزکار KDE استفاده کنيد و يا به سادگي رکورد آن را در همين فايل اضافه کنيد.

نکته:

در اغلب توزيع ها در خط فرمان براي کاربران ساده از کاراکتر دلار ($) و براي کاربر ريشه يا root از کاراکتر پوند (#) استفاده مي شود.

II. گروه ها در لينوکس
مفهوم ديگري که در لينوکس پياده سازي شده است گروه ها يا group مي باشد. گروه از يک کاربر يا تعدادي کاربر تشکيل شده است. زماني که براي يک گروه دسترسي يا عدم دسترسي به منبعي تعريف مي شود ? اين نوع مجوز دهي براي تمام اعضاي آن گروه اعمال مي شود. بنابراين مي توان با گروه بندي کاربران به راحتي به عده اي مجوزي را داد و يا آن را سلب کرد.

براي ديدن گروه هاي موجود در لينوکس خود مي توانيد به فايل etc/group/ مراجعه کنيد. حال با استفاده از دستور cat بخشي از محتويات اين فايل را بررسي مي کينم:

tux@GNUIran:~$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
lp:x:7:
mail:x:8:
news:x:9:
ftp:x:50:
dialout:x:20:
tty:x:25:
users:x:100:tux،gnu،deb

در اين فايل نيز هر گروه در يک خط (يا رکورد) نوشته شده است. براي نمونه گروه users را بررسي مي کنيم.
users : يک نام اختصاصي براي گروه
x : پسورد رمز نگاري شده ي مخصوص گروه که البته در صورت نبودن x پسوردي نياز نيست.
100 : شماره ي اختصاصي گروه يا GroupID مي باشد.
tux،gnu،deb : کاربراني که عضو اين گروه مي باشند.
براي نمونه اعضاي گروه tty مي توانند در ترمينال (خط فرمان) تايپ کنند يا اعضاي گروه dialout مي توانند از مودم استفاده کنند.
حتما حدس زده ايد که براي اضافه کردن يک گروه از دستور groupadd بايد استفاده کرد:

GNUIran:~# groupadd gnuusers
GNUIran:~# usermod -G gnuusers tux

در خط اول يک گروه به نام gnuusers ساخته شد و در خط دوم کاربر tux عضو اين گروه شد.

III. مجوزهاي دسترسي براي فايل ها
مجوزهاي دسترسي تعيين کننده ي اين مطلب است که هر کاربر يا کاربران يک گروه اجازه ي انجام چه کارهايي را دارند. در اينجا ما قوانين دسترسي به فايل ها را وضع مي کنيم. بنابراين بررسي خواهيم کرد که چه کاربري چه اعمالي بر روي يک فايل مي تواند انجام دهد. اين مجوزها از ابتدا در سيستم عامل لينوکس و بر روي تمام انواع فايل سيستم هاي آن موجود بوده و در تمام سيستم فايل ها يکسان مي باشند. (مي توانيد با سيستم فايل هاي مايکروسافت مقايسه کنيد که بعد از ورود NTFS اين مجوزها به اين سيستم عامل معرفي شدند.) مجوزها در سيستم عامل لينوکس شامل سه نوع يا سه mode مي باشند:

? ) Read ( خواندن ) : بيانگر مجوز خواندن يک فايل مي باشد و با r نشان داده مي شود.
? ) Write ( نوشتن ) : بيانگر مجوز نوشتن و تغيير دادن محتويات يک فايل مي باشد و با w نشان داده مي شود.
? ) eXecute ( اجرا کردن ) : مجوز اجرا کردن را به کاربر مورد نظر مي دهد و با x نشان داده مي شود. واضح است که اين مجوز فقط براي فايل هاي اجرايي تاثير گذار مي باشد.

لازم به ذکر است که هر يک از کاربران در سيستم عامل گنو/لينوکس مي توانند هر ترکيبي از انواع مجوزهاي خواندن ? نوشتن و اجرا کردن را براي هر فايل داشته باشند.
اگر بخواهيم عملياتي را روي يک فايل يا دايرکتوري انجام دهيم که مجوز دسترسي لازم را نداشته باشيم با پيغام خطاي زير مواجه خواهيم شد:

tux@GNUIran:~$ cd /root
bash: cd: /root: Permission denied

براي مشاهده مجوزهاي دسترسي يک فايل بايد از دستور ls که مخفف list مي باشد به همراه گزينه (option) l استفاده کرد. به نمونه ي زير توجه کنيد:

tux@GNUIran:~$ ls -l
total 2
drwxr-xr-x 3 tux GNUIran 6553 Sep 1 17:19 Documents
-rw-r--r-- 1 tux GNUIran 1024 Sep 12 17 :49 myfile

که خروجي اين دستور را براي myfie بررسي مي کنيم:
بيت اول که در اينجا " – " مي باشد بيانگر نوع فايل مي باشد و فقط يک بيت براي کنترل و اطلاع از نوع فايل يا دايرکتوري بودن آن مي باشد و يک بيت براي نشان دادن مجوزها نيست. انواع آن را در زير مشاهده مي کنيد:
- : فايل ساده
d : دايرکتوري
l : لينک نمادين يا لينک نرم -Symbolic link
s : سوکت -Socket
p : يک FIFO pipe

بيت هاي بعدي:
rwxr-xr-x : مجوزهاي دسترسي
1 : تعداد لينک هاي سخت يا Hardlinks [?]
tux : کاربر
GNUIran : گروه
1024 : حجم فايل به بايت - Byte
Sep 12 : تاريخ آخرين تغييرات
17:19 : ساعت آخرين تغييرات
myfile : نام فايل

همان طور که مشاهده نموديد مجوزهاي دسترسي در نه بيت نمايش داده مي شوند (--rw-r--r). اين ? کاراکتر يا در اصلاح دقيق نه بيت (bit) نسبت به سه نوع (mode) مالکيت وضع مي شوند:

? ) User ( مالک ) : همان ايجاد کننده ي فايل يا دايرکتوري مي باشد.
? ) Group ( گروه ) : تعدادي از کاربران سيستم عامل مي باشند که در يک گروه مشخصي قرار دارند و افراد متعلق به يک گروه مي توانند در صورت داشتن مجوزهاي لازم به فايل ها و دايرکتوري ها هم گروهي هاي خود دسترسي داشته باشند.
? ) Other ( ساير کاربران ) : مي تواند شامل هر کاربر خارج از گروه شما باشد.

براي هر يک از اين استفاده کنندگان سه نوع مجوز ( mode ) وجود دارد که شامل خواندن ? نوشتن و اجرا کردن فايل ها و دايرکتوري ها مي باشد که اين دليل نه کاراکتري بودن مجوزهاست. سه کاراکتر اول از سمت چپ مجوزهاي دسترسي مربوط به مالک ( User ) ? سه کاراکتر بعدي مجوزهاي دسترسي مربوط به گروه و سه کاراکتر آخر مجوزهاي دسترسي براي ساير کاربران را مشخص مي کنند.
با توجه به مطالب ذکر شده همان طور که مشاهده مي شود در مثال مطرح شده يک دايرکتوري بنام Documents و بک فايل بنامmyfile وجود دارد که صاحب و مالک اين فايل و دايرکتوري کاربر tux مي باشد و عضو گروه GNUIran مي باشد. در اين مثال مجوزهاي دسترسي براي اين فايل به صورت زير خواهد بود:

فايل myfile
مالک : مجاز به خواندن و نوشتن مي باشد.
گروه : فقط مجاز به خواندن مي باشد.
ساير کاربران : فقط مجاز به خواندن مي باشند.

در صورتيکه هر يک از کاربران داراي مجوز دسترسي rwx باشند به معني اين است که همه ي کاربران تمام مجوزهاي لازم در مورد فايل را در اختيار دارند يا به عبارت ديگر داراي بيشترين مجوز دسترسي مي باشند.

IV. مجوزهاي دسترسي دايرکتوري ها
براي دايرکتوري ها هم همان سه مجوز موجود براي فايل ها استفاده مي شوند ، اما نحوه ي استفاده با توجه به اينکه دايرکتوري هستند کمي متفاوت مي باشد که در زير اين سه مجوز را براي دايرکتوري ها بررسي مي کنيم:

? ) خواندن : اگر يک دايرکتوري داراي مجوز خواندن باشد شما مي توانيد ليستي از نام فايل ها و دايرکتوري هاي داخل آن بگيريد. يا به زبان خط فرمان مي توانيد از آن يک ls بگيريد.
? ) نوشتن : اگر دايرکتوري داراي مجوز نوشتن باشد اين بدين معني است که شما مي توانيد فايل هاي داخل آن را پاک کرده يا تغيير نام دهيد يا يک فايل جديد در آن ايجاد کنيد و فايل ها را ويرايش کنيد. نکته ي بسيار مهم اين است که اين اعمال به شرطي قابل انجام هستند که شما مجوز اجرا کردن (x) را نيز داشته باشيد و نوشتن (w) به تنهايي نمي تواند اين اعمال را براي شما فراهم کند.
? ) اجرا کردن ( جستجو ) : اين دستور اجازه ي ورود به دايرکتوري را مي دهد يا به زبان خط فرمان شما اجازه ي cd کردن به داخل دايرکتوري را داريد و بدين وسيله شما به محتويات دايرکتوري دسترسي داريد و به شرط داشتن مجوز نوشتن مي توانيد آنها را تغيير دهيد. به اين مجوز در دايرکتوري ها ? اغلب مجوز جستجو گفته مي شود. بنابراين هرگاه درباره ي مجوز جستجو مطلبي گفته شد در واقع درباره ي مجوز x در دايرکتوري صحبت مي شود.

با توجه به مطالب گفته شده مجوز دايرکتوري Documents در مثال بالا به شکل زير خواهد بود:

دايرکتوري Documents
مالک : داراي حداکثر مجوزهاي دسترسي مي باشد.
گروه : فقط مجاز به خواندن و اجرا کردن مي باشد.
ساير کاربران : فقط مجاز به خواندن و اجرا کردن مي باشند.

V. تغيير مجوزهاي دسترسي
براي تغيير مجوزها مي توانيد در پنجره ي مدير فايل خود بر روي فايل مورد نظر کليک راست کنيد و از بخش Properties آن براي تغيير مجوزها استفاده کنيد و يا به سادگي از خط فرمان اين کار را انجام دهيد. در سيستم عامل گنو/لينوکس از دستور chmod که مخفف change mode مي باشد براي تغيير مجوزهاي دسترسي فايل ها و دايرکتوري ها استفاده مي شود. توجه نماييد که براي استفاده از اين دستور براي تغيير مجوزهاي دسترسي يک فايل/دايرکتوري بايد مالکيت آن فايل/دايرکتوري متعلق به شما باشد و يا اينکه کاربر ريشه ( root ) باشيد.
از فرمان chmod به دو روش استفاده مي شود:

روش اول ( با نشان ها )


chmod USER /= NEW_MODE File/Directory

در اين روش به صورت نسبي مي توان مجوزهاي دسترسي را تغيير داد که در آن USER يکي از حروف زير يا ترکيبي از آنها مي تواند باشد:

u : براي مالک فايل/دايرکتوري
g : براي گروه
o : براي ساير کاربران
a : براي تمام کاربران ( all )

همان طور که گفته شد مي توانيد ترکيبي از اين مقادير را نيز بکار برد. مثلا از "go" براي group و other مي توانيد استفاده کنيد.
يکي از سه گزينه ي =/-/+ را براي انتساب مجوز جديد به کاربراني که انتخاب کرده ايد را بايد بر حسب نياز خود انتخاب کنيد. بدين صورتکه از "+" جهت اضافه کردن ? از "-" براي گرفتن و حذف کردن و از "=" براي انتساب مجوز استفاده کنيد.
NEW_MODE نيز مي تواند يکي از مجوزهايي باشد که در بالا اشاره کرديم ( r براي خواندن ? w براي نوشتن و x براي اجرا کردن ). در اينجا نيز مي توانيد از ترکيب مجوزها استفاده کنيد. براي نمونه از "rw" براي مجوز خواندن و نوشتن استفاده کنيد.
بنابراين g+r به معناي دادن اجازه ي خواندن فايل/دايرکتوري مورد نظر به گروه مي باشد و يا go-wx به معناي اين است که اجازه ي نوشتن و اجرا کردن از گروه و ساير کاربران گرفته مي شود. حال به مثال زير توجه کنيد:


tux@GNUIran:~$ ls -l
-rw-r--r-- 1 tux GNUIran 29 Oct 4 19:49 myfile

اکنون اگر بخواهيم مجوزهاي دسترسي اين فايل را طوري عوض کنيم که مجوز نوشتن به اعضاي گروه داده شود بايد از دستور زير استفاده کنيم:

tux@GNUIran:~$ chmod g+w myfile

اگر بخواهيم علاوه بر دادن مجوز نوشتن به گروه ? مجوز اجرا کردن را نيز به ساير کاربران بدهيم از دستور chmod بايد بدين صورت استفاده کنيم:


tux@GNUIran:~$ chmod g+w،o+x myfile

براي حصول اطمينان از تغيير مجوزها يک بار ديگر فرمان ls -l را اجرا کنيد.

tux@GNUIran:~$ ls -l
-rw-rw-r-x 1 tux GNUIran 29 Oct 4 19:49 myfile

همانطور که مشاهده مي کنيد مجوزهاي نوشتن براي گروه و اجرا کردن براي ساير کاربران اعمال شده است.
براي اعطاي مجوزهاي خواندن و نوشتن و اجرا به گروه مي توانيم از دستور زير نيز استفاده کنيم:


tux@GNUIran:~$ chmod g=rwx myfile

روش دوم ( با اعداد )
وقت آن رسيده که کمي با اعداد بازي کنيم! همان طور که در قسمت هاي قبل مطالعه کرديد مجوزهاي دسترسي در ? کاراکتر نمايش داده مي شوند مانند rwxrwxrwx ، به بيان دقيق تر مجوزهاي دسترسي در ? بيت ذخيره مي شوند ، هر بيت مي تواند يک يا صفر باشد! خوب بنابراين ? به معني داشتن آن مجوز و ? به معني نداشتن آن مجوز است ، براي نمونه rwxrwxrwx با معادل 111111111 در مبناي دو برابر است و يا مجوز rwx---r-x به صورت صفر و يکي خواهد شد: 111000101 . در واقع rwx برابر 111 خواهد بود و r-w برابر101 خواهد شد. اين روش ايده ايست براي مجوز دهي با روشي بسيار آسان به نام روش عددي! در اين روش مقدار r برابر ? مي باشد. به اين دليل که اگر شما فقط مجوز خواندن صادر کنيد خواهيم داشت --r که برابر 100 مي باشد و مي دانيم 100 در مبناي ده برابر ? مي باشد. مقدار w برابر ? مي باشد چرا که -w- برابر 010 است که در مبناي ده ? مي باشد و معادل x برابر ? مي باشد چرا که x-- برابر 001 است و ? در مبناي ده ? مي شود.
بنابراين در اين روش براي اعطاي مجوزها بايد از اعداد اين جدول استفاده بکنيد.

خواندن

?

نوشتن

?

اجرا کردن

?

با اين حساب مي توانيم روش دوم را به صورت زير بنويسيم:

chmod MODE File/Directory

در اين حالت مي توان بطور مطلق مجوزهاي دسترسي را تعيين کرد. منظور اين است که مانند حالت اول مجوزي را اضافه يا کم نمي کنيم بلکه تمام مجوزها از ابتدا وارد مي شوند.
MODE همان عدد سه رقمي مي باشد که نشان دهنده ي مجوزهاي جديد براي فايل/دايرکتوري مورد نظر مي باشد. رقم اول مربوط به مجوز دسترسي مالک ? رقم دوم مربوط به مجوز دسترسي گروه و رقم سوم مربوط به مجوز دسترسي ساير کاربران مي باشد.
با يک مثال طريقه ي استفاده از اين اعداد را براي شما شرح مي دهيم. براي نمونه اگر بخواهيد که مجوز خواندن و نوشتن را به يک کاربر بدهيد بايد اعداد مربوط به مجوزهاي خواندن (?) و نوشتن (?) را با هم جمع کنيد تا مجوز کاربر را بدست بياوريد.

?+?=?

بنابراين عدد ? مجوز جديد کاربر خواهد بود که نشان دهنده ي وجود مجوزهاي خواندن و نوشتن براي او مي باشد.
حال همان فايل myfile در مثال هاي بالايي را در نظر بگيريد. مي خواهيم مجوزهاي آنرا طوري تغيير بدهيم که مالک داراي تمام مجوزها باشد ? گروه داراي مجوز خواندن و اجرا کردن باشد و ساير کاربران نيز هيچ مجوزي نداشته باشند. دستور زير تمام اين مجوزها را تعيين مي کند.

tux@GNUIran:~$ chmod 750 myfile

همانطور که مشاهده مي کنيد عدد ? براي مالک فايل و نشان دهنده ي تمام مجوزهاي خواندن و نوشتن و اجرا کردن ( ?=?+?+? ) براي وي مي باشد. عدد ? براي گروه و نشان دهنده ي مجوزهاي خواندن و نوشتن ( ?=?+? ) براي آن مي باشد. عدد صفر نيز براي ساير کاربران مي باشد و نشان دهنده ي اين است که هيچ مجوزي براي خواندن يا نوشتن و يا اجرا کردن اين فايل ندارند.
شما مي توانيد از هر يک از حالت هاي گفته شده براي تعيين مجوزها استفاده کنيد. هيچ تفاوتي بين دستورهاي معادل وجود نخواهد داشت. به دو دستور زير توجه کنيد. اين دو دستور دقيقا معادل يکديگر مي باشند و هر دو يک کار را انجام خواهند داد.


tux@GNUIran:~$ chmod a=rx myfile
tux@GNUIran:~$ chmod 555 myfile


نکته:

توجه کنيد که اگر مجوزها را طوري تعيين کنيد که مالک فايل/دايرکتوري هيچ مجوزي نداشته باشد حتي مالک فايل/دايرکتوري نيز نمي تواند به آن دسترسي داشته باشد. اما چون وي مالک فايل/دايرکتوري مي باشد مي تواند مجددا مجوزها را تغيير دهد و از آن استفاده کند. ( فراموش نکنيد که فقط کاربر ريشه و مالک فايل/دايرکتوري مي توانند مجوزها را تغيير بدهند. )


نکته:

براي تغيير مجوزهاي يک دايرکتوري با تمام محتويات آن مي توانيد از گزينه (option) R استفاده کنيد:

tux@GNUIran:~$ chmod -R 755 test


در نمونه ي بالا تمام محتويات دايرکتوري test نيز مجوز 755 خواهند گرفت.

VI. تعيين مجوز پيش فرض
شما زماني که يک فايل يا دايرکتوري مي سازيد به طور پيش فرض به آن يک مجوز اختصاص پيدا خواهد کرد که اين مجوز پيش فرض را مي توان با دستور umask تغيير داد. براي اطلاع از مجوز کنوني مي توانيد اين دستور را به تنهايي اجرا کنيد. کافيست در خط فرمان تايپ کنيد umask تا مجوز پيش فرض براي شما نمايش داده شود.


tux@GNUIran:~$ umask
022

بله 022 ! کمي عجيب است! در واقع خود شما به طور پيش فرض هيچ مجوزي نداريد! اما روش خواندن اين عدد کمي متفاوت است ، در واقع اين اعداد مجوزهاي سلب شده است که به شما نمايش داده مي شود. براي نمونه در 022 از مالک هيچ مجوزي سلب نشده است. يعني مالک تمام مجوزها را داراست و از گروه و ديگران مجوز ? يا نوشتن سلب شده است. براي اينکه بتوانيد راحت تر اين مجوزها را بخوانيد مي توانيد براي دايرکتوري ها مقدار داده شده را از 777 و براي فايل ها از 666 کم کنيد. با اين کار مجوز پيش فرض براي فايل ها و دايرکتوري ها بدست مي آيد.

666-022= 644
777-022=755

خوب خواندن راحت تر شد ، بنابراين هر دايرکتوري جديدي که شما مي سازيد داراي مجوز پيش فرض 755 مي باشد و هر فايل داراي مجوز644 مي باشد. اگر باز هم با خواندن اعداد مشکلي داريد مي توانيد با گزينه (option) S اين دستور را اجرا کنيد:

tux@GNUIran:~$ umask -S
u=rwx،g=rx،o=rx

که نوع مجوزها دقيقا معلوم است.
اما اگر از مجوزي که در حال حاضر به عنون پيش فرض است ناراضي هستيد به راحتي مي توانيد با همين دستور آن را تغيير دهيد:
براي مثال اگر مي خواهيد جز شما هيچ کس به دايرکتوري يا فايل شما دسترسي نداشته باشد مي توانيد مقدار umask را 077 بدهيد که در اين صورت فايل هاي جديد ايجاد شده داراي مجوز 600 يا -------rw و دايرکتوري هاي جديد ايجاد شده نيز داراي مجوز 700 يا ------rwx خواهند بود. اما اگر از روش عددي چندان راضي نيستيد مي توانيد از روش ساده استفاده کنيد. مانند نمونه ي زير:


tux@GNUIran:~$ umask u=rwx،g=r،o=

که کاربر يا مالک تمام مجوزها را دارد و هم گروهي هاي او مي توانند فايل ها را بخوانند و ديگران هيچ دسترسي ندارند. به همين سادگي!

VII. بيت Sticky
تا به حال به ? بيت براي کنترل مجوزها اشاره کرديم. حال به بيتي ديگري به نام بيت استيکي (Sticky) اشاره مي کنيم. اين بيت که فقط براي دايرکتوري ها استفاده مي شود باعث مي شود تا هيچ کاربري نتواند فايلي را که مالک آن نيست پاک کند. براي نمونه اگر يک دايرکتوري به نام mail داشته باشيم که مجوز آن 777 باشد يا به عبارت ديگر مجوز خواندن و نوشتن و جستجو براي همه در آن صادر شده باشد شما مي توانيد نامه هاي دوستان خود را که مالک آنها نيستيد را پاک کنيد اما اگر بيت استيکي در آن قرار داده شود با وجود مجوز براي تمام تغييرات شما ديگر نمي توانيد نامه هايي که شما مالک آنها نيستيد را پاک کنيد.
براي قرار دادن اين بيت کافيست دستور chmod را مانند نمونه ي زير به کار گيريد:


tux@GNUIran:~$ chmod +t mail

حال اگر يک بار ديگر دستور ls را اجرا مي کنيم:

tux@GNUIran:~$ ls -l
drwxr-xr-t 2 tux GNUIran 4096 Sep 1 4:02 mail

مشاهده مي کنيد که در قسمت آخر بيت مربوط به x به t تبديل شده است. بنابراين در اين دايرکتوري شما نمي توانيد فايلهايي را که در تملک ديگران قرار دارد را پاک کنيد. (فايل هايي که کاربر آنها شما نيستيد.)

VIII. تغيير مالکيت فايل يا دايرکتوري
گاهي ممکن است بخواهيم مالکيت يک فايل/دايرکتوري را تغيير بدهيم. براي اين کار بايد از فرمان chown استفاده کنيم. شکل کلي آن بصورت زير مي باشد:

tux@GNUIran:~$ chown NEW_OWNER File/Directory

NEW_OWNER نام مالک جديد فايل/دايرکتوري مي باشد که مي خواهيم مالکيت فايل/دايرکتوري را به او نسبت دهيم. بايد دقت کرد که فرد مورد نظر که مي خواهيم مالکيت فايل/دايرکتوري را به او نسبت بدهيم در سيستم تعريف شده باشد. در غير اين صورت با پيغام زير مواجه خواهيم شد:

tux@GNUIran:~$ chown tux2 myfile
chown: `tux2´: invalid user

براي ديدن ليست کاربران همان طور که در بالا اشاره شد در خط فرمان بايد از دستور زير استفاده کنيد:

tux@GNUIran:~$ cat /etc/passwd


هشدار!

به اين نکته توجه داشته باشيد که پس از تغيير مالکيت فايل/دايرکتوري ديگر نمي توانيد مجوزهاي آنرا تغيير دهيد چون شما ديگر مالک آن فايل/دايرکتوري نيستيد! اگر عضو گروه فايل/دايرکتوري باشيد ? همانند اعضاي گروه با شما رفتار خواهد شد. اگر هم عضو گروه فايل/دايرکتوري نباشيد در قسمت ساير کاربران قرار خواهيد گرفت! پس حواس خود را جمع کنيد تا اشتباهي مالکيت فايلي را تغيير ندهيد! البته کاربر ريشه مي تواند هر گونه تغييري در مالکيت فايل/دايرکتوري ايجاد کند.

IX. تغيير گروه فايل يا دايرکتوري
براي تغيير دادن گروه يک فايل/دايرکتوري بايد از فرمان chgrp به شکل زير استفاده کرد:

tux@GNUIran:~$ chgrp NEW_GROUP File/Directory

NEW_GROUP نام گروه جديدي است که مي خواهيد فايل/دايرکتوري مورد نظر را به آن گروه نسبت دهيد. همانند تغيير مالکيت در اينجا نيز بايد گروه در سيستم تعريف شده باشد. براي ديدن ليست گروهها در خط فرمان از دستور زير استفاده کنيد:


 
نویسنده: نويد ? عباس
مترجم :
منبع :
تاریخ :
مطالب مرتبط
 
 A.A.B/ OPTIMIZATION OF LINEAR OBJECTIVE FUNCTION SUBJECT TO FUZZY RELATION INEQUALITIES CONSTRAINTS WITH MAX-AVERAGE COMPOSITION
 A.A.B/ USING DISTRIBUTION OF DATA TO ENHANCE PERFORMANCE C OF FUZZY CLASSIFICATION SYSTEMS
 A.A.B/ DISTRIBUTED AND COLLABORATIVE FUZZY MODELING
 A.A.B/ NEW CRITERIA FOR RULE SELECTION IN FUZZY LEARNING CLASSIFIER SYSTEMS
 A.A.B/ A PRIMER ON FUZZY OPTIMIZATION MODELS AND METHODS
 
نظرات
 
نام : شهر :
   
 
پيام تهران
خيلي مفيد بود و به زباني قابل فهم توضيح داده شده - متشکرم
 
 
کلیه حقوق این وب سایت متعلق به شرکت فرا ارتباط می باشد