سطح دسترسی ها در لینوکس و دستور chmod
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
سطح دسترسی ها در لینوکس
پایه و اساس سطح دسترسی ها در لینوکس شامل دو تا قسمت میشه یکی مالکیت فایل یا (ownership ) و یکی مجوز فایل ها (permissions ) .
مالکیت فایل (ownership ) شامل دو تا قسمت میشه :
یکی مالکیت کاربری (User Ownership)
یکی مالکیت گروهی (Group Ownership)
پس یک فایل دو تا مالکیت میگیره یکی مالکیت گروه یکی مالکیت کاربر
برای مثال فایل زیر رو ببینید :
کد:
root@debian:~/# ll
-rw-r--r-- 1 root vahid 0 Aug 5 00:58 vahid.txt
root@debian:~/#
از فایل بالا متوجه میشیم که Group Ownership این فایل گروه vahid هست .
و User Ownership این فایل مربوط به یوزر root هست .
حالا ما چه شکلی میتونیم ownership یک فایل رو تغییر بدیم ؟ با دستور chown
به صورت زیر :
کد:
chown userowner:groupowner myfile.txt
به طور مثال ما میخوایم User Ownership و Group Ownership هر دو این فایل رو به vahid تغییر بدیم
کد:
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 )
مجوز فایل ها (permissions ) شامل 3 تا قسمت میشه :
مجوز برای کاربر
مجور برای گروه
مجوز برای دیگران (که شامل بقیه کاربران سیستم میشه)
کد:
rw- r-- r-- 1 vahid vahid 0 Aug 5 00:58 vahid.txt
| | |
| | |________ user permission
| |___________ group permission
|_______________ other permission
که هر قست شامل 3 قسمت میشه :
کد:
r = read permission
w = write permission
x = execute permission
یعنی :
دسترسی خواندن
دسترسی نوشتن
دسترسی اجرایی (برای اجرا کردن یک برنامه)
که هر قسمت یه عدد میگیره
کد:
4 = read (r)
2 = write (w)
1 = execute (x)
0 = no permission (-)
برای مثال فایل زیر رو مد نظر بگیرید :
کد:
root@debian:~/wht# ll
-rw-r--r-- 1 vahid vahid 0 Aug 5 00:58 vahid.txt
root@debian:~/wht#
اگر permission فایل رو سه قسمت کنیم :
میبینیم که
در سطح کاربر فقط میتونه فایل رو بخونه
در سطح گروه هم فقط میتونه فایل رو بخونه
و در سطح other دسترسی خوندن و نوشن رو داره
حالا ما چه شکلی میتونیم permission یک فایل رو تغییر بدیم ؟ با دستور chmod
کد:
chmod permissionnumber myfile.txt
به طور مثال ما میخوایم خود کاربر دسترسی خوندن و نوشتن و اجرا شدن رو داشته باشه ولی گروهش هیج دسترسی نداشته باشه و برای Other هم فقط دسترسی خوندن باشه
حالا میایم عدد ها رو جمع میزنی
دسترسی برای کاربر = خوندن + نوشتن + اجرا شدن = 4+2+1 = پس عدد دسترسی برای کاربر میشه 7
دسترسی برای گروه = هیچ دسترسی نداشته باشه = 0 = پس عدد دسترسی گروه میشه 0
دسترسی برای other = خوندن = 4 = پس عدد دسترسی other میشه 4
و این دسترسی رو اعمال میکنیم :
کد:
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 یا permission بدید باید از آپشن -R (تاکید میکنم بر روی R بزرگ هست ) استفاده کنید
برای مثال :
کد:
root@debian:~# chown -R vahid:vahid wht/
root@debian:~# chmod -R 407 wht/
این دو تا دستور تمامی owner های این فایل هارو به vahid تغییر میده و تمامی فایل های این فولدر به 407 تغییر میکنه
موفق و پیروز باشید
منبع :
کد:
http://www.webhostingtalk.ir/f104/29244/
موضوعات وابسته :
کد:
http://forum.ubuntu.ir/index.php/topic,17561.msg151252.html#msg151252
shell job controls (دستور fg bg jobs nohup)
shell job controls (دستور fg bg jobs nohup)
منظور از shell job از کاv انداختن و راه اندازی مجدد یک پروسس یا ازبین بردن و یا به پشت صحنه بردن یک پروسس در ترمینال است
jobs = برایه دیدن کار هایه پشت صحنه
fg = برایه رویه صحنه اوردن کاری که در پشت صحنه است
bg = برایه رستارت کردن کاری که در پشت صحنه است
nohup = برایه ازبین نرفتن کاری به هنگام بستن ترمینال
منظور از فرستادن یک کار (( پروسس )) به پشت صحنه
فرض کنین تو ترمینال دستور firefox رو میزنین یا مثلا دستور nautilus وقتی که یکی از این دو دستور رو میزنین نرم افزار مربوطه رو صفحه ظاهر میشود و یک سری اطلاعاتی رو تو ترمینال مینویسد و عملا ترمینال رو برایه زدن دستورات دیگر غیر قابل مصرف میکند . حالا برایه این که ترمینالتون در این مواقع قابل استفاده باشد اون نرم افزار یا پروسس رو به پشت صحنه میفرستیم
مثال:
مراحل کار :
اول nautilus رو اجرا میکنیم
دوم به وسیله کلید ترکیبی Ctrl+z از کار میندازیمش و
سوم به وسیله ی دستور bg رستارتش میکنیم تا شروع به کار کند
کد:
alieblice@/$ sudo nautilus
Initializing nautilus-open-terminal extension
Initializing nautilus-gdu extension
Initializing nautilus-image-converter extension
^Z
[1]+ Stopped sudo nautilus
alieblice@/$
اگر الان دستور jobs رو بزنین خروجی شبیه زیر رو میبینین
کد:
alieblice@/$ jobs
[1]+ Stopped sudo nautilus
alieblice@/$
همون طور که میبینین کلمه Stopped رو نوشته که نشون از ازکار افتادن این پروسس ((در اینجا به وسیله Ctrl+z )) هست که برایه راه اندازیش از دستور bg به همراه شماره کار (پروسس) که در این جا [1] میباشد استفاده میکنیم
کد:
alieblice@/$ bg 1
[1]+ sudo nautilus &
alieblice@/$
حالا اگر دستور jobs رو بزنین میبینین که از کلمه Runnig استفاده شده است
کد:
alieblice@/$ jobs
[1]+ Running sudo nautilus &
alieblice@/$
اگر خاستین nautilus رو دوباره به رویه صحنه بیارین از fg استفاده کنین به همراه شمارش
کد:
alieblice@/$ fg 1
sudo nautilus
alieblice@/$
اجرا کردن یک پروسس که به طور خود کار به پشت صحنه برود
برایه این کار در پایان دستورتون از حرف & استفاده کنین
مثال:
بعد از زدن دستور به همراه & یک بار دکمه enter رو بزنین
کد:
alieblice@/$ sudo nautilus&
[1] 7661
alieblice@/$ Initializing nautilus-open-terminal extension
Initializing nautilus-gdu extension
Initializing nautilus-image-converter extension
alieblice@/$
دستور jobs
در مورد jobs این جا کامل توضیح داده ولی چون بیشتر چیزایی که گفته بود کار نمیکرد من فقط دو تا از اپشناشو میگم
کد:
http://publib.boulder.ibm.com/infocenter/aix/v7r1/index.jsp?topic=%2Fcom.ibm.aix.cmds%2Fdoc%2Faixcmds3%2Fjobs.htm
همون طور که در بالا دیدین دستور jobs برایه دیدن کارهایه پشت صحنه هستش
مثال:
کد:
alieblice@/$ jobs
[1]+ Running sudo nautilus &
alieblice@/$
توضیح چند تا از اپشن ها
از l- برایه دیدن job number, current job, process group ID
از p- برایه دیدن pid
دستور nohup
از این دستور برایه زمانی که یک پروسس رو در ترمینال ایجاد کردیم و میخایم که بابسته شدن ترمینال پروسسمون از بین نره استفاده میکنیم
در nohup
خروجی ها در $HOME/nohup.out
اررور ها در خود ترمینال
و ورودی ها :
If standard input is a terminal, redirect it from /dev/null
نکته : همیشه با بسته شدن ترمینال پروسس هامون از بین نمیره مثلا در مثال هایه nautilus بالا اگه nautilus پشت صحنه باشه از بین نمیره
مثال :
کد:
alieblice@~$ sudo nohup firefox
nohup: ignoring input and appending output to `nohup.out'
alieblice@~$
نکته :
پروسس هایی که با nohup اجرا میشن در لیست کار هایه دستور jobs نمیاد
منابع :
LPIC-1_In_Nutshell_Oreilly_Edition3
کد:
http://ubuntuone.com/p/15HZ/
کد:
http://publib.boulder.ibm.com/infocenter/aix/v7r1/index.jsp?topic=%2Fcom.ibm.aix.cmds%2Fdoc%2Faixcmds3%2Fjobs.htm