پایه و اساس سطح دسترسی ها در لینوکس شامل دو تا قسمت میشه یکی مالکیت فایل یا (ownership ) و یکی مجوز فایل ها (permissions ) .
مالکیت فایل (ownership ) شامل دو تا قسمت میشه :
یکی مالکیت کاربری (User Ownership)
یکی مالکیت گروهی (Group Ownership)
پس یک فایل دو تا مالکیت میگیره یکی مالکیت گروه یکی مالکیت کاربر
برای مثال فایل زیر رو ببینید :
از فایل بالا متوجه میشیم که Group Ownership این فایل گروه vahid هست .کد:root@debian:~/# ll
-rw-r--r-- 1 root vahid 0 Aug 5 00:58 vahid.txt
root@debian:~/#
و User Ownership این فایل مربوط به یوزر root هست .
حالا ما چه شکلی میتونیم ownership یک فایل رو تغییر بدیم ؟ با دستور chown
به صورت زیر :
به طور مثال ما میخوایم User Ownership و Group Ownership هر دو این فایل رو به vahid تغییر بدیمکد:chown userowner:groupowner myfile.txt
حالا میریم سراغ قسمت دوم یعنی مجوز فایل ها (permissions )کد:root@debian:~/wht# chown vahid:vahid vahid.txt
root@debian:~/wht# ll
-rw-r--r-- 1 vahid vahid 0 Aug 5 00:58 vahid.txt
root@debian:~/wht#
مجوز فایل ها (permissions ) شامل 3 تا قسمت میشه :
مجوز برای کاربر
مجور برای گروه
مجوز برای دیگران (که شامل بقیه کاربران سیستم میشه)
-کد:rw- r-- r-- 1 vahid vahid 0 Aug 5 00:58 vahid.txt
| | |
| | |_______ other permission
| |___________ group permission
|_______________ user permission
که هر قست شامل 3 قسمت میشه :
یعنی :کد:r = read permission
w = write permission
x = execute permission
دسترسی خواندن
دسترسی نوشتن
دسترسی اجرایی (برای اجرا کردن یک برنامه)
که هر قسمت یه عدد میگیره
برای مثال فایل زیر رو مد نظر بگیرید :کد:4 = read (r)
2 = write (w)
1 = execute (x)
0 = no permission (-)
اگر permission فایل رو سه قسمت کنیم :کد:root@debian:~/wht# ll
-rw-r--r-- 1 vahid vahid 0 Aug 5 00:58 vahid.txt
root@debian:~/wht#
میبینیم کهکد:-rw- r-- r--
در سطح کاربر فقط میتونه فایل رو بخونه
در سطح گروه هم فقط میتونه فایل رو بخونه
و در سطح other دسترسی خوندن و نوشن رو داره
حالا ما چه شکلی میتونیم permission یک فایل رو تغییر بدیم ؟ با دستور chmod
به طور مثال ما میخوایم خود کاربر دسترسی خوندن و نوشتن و اجرا شدن رو داشته باشه ولی گروهش هیج دسترسی نداشته باشه و برای Other هم فقط دسترسی خوندن باشهکد:chmod permissionnumber myfile.txt
حالا میایم عدد ها رو جمع میزنی
دسترسی برای کاربر = خوندن + نوشتن + اجرا شدن = 4+2+1 = پس عدد دسترسی برای کاربر میشه 7
دسترسی برای گروه = هیچ دسترسی نداشته باشه = 0 = پس عدد دسترسی گروه میشه 0
دسترسی برای other = خوندن = 4 = پس عدد دسترسی other میشه 4
و این دسترسی رو اعمال میکنیم :
حالا اگر خواستید تمامی فایل ها و زیر مجموعه هاش رو تغیر owner یا permission بدید باید از آپشن -R (تاکید میکنم بر روی R بزرگ هست ) استفاده کنیدکد:root@debian:~/wht# chmod 407 vahid.txt
root@debian:~/wht# ll
-r-----rwx 1 vahid vahid 0 Aug 5 00:58 vahid.txt
root@debian:~/wht#
برای مثال :این دو تا دستور تمامی owner های این فایل هارو به vahid تغییر میده و تمامی فایل های این فولدر به 407 تغییر میکنهکد:root@debian:~# chown -R vahid:vahid wht/
root@debian:~# chmod -R 407 wht/
موفق و پیروز باشید