5.1 文件系統(tǒng)安全(訪問權(quán)限)
在unixstuff目錄中侈玄,輸入
% ls -l
會輸出很多有關(guān)目錄的內(nèi)容細節(jié)
每一個文件和目錄都有相關(guān)的訪問權(quán)限袱巨,可以看出是什么用戶什么組擁有這個文件谆刨。
-rwxrw-r-- 1 ee51ab beng95 2450 Sept29 11:52 file1
最左邊一列的是十個字符組成的字符串,是由d扰法,r轧飞,w衅鹿,x,-过咬,還有s或者S組成的塘安,如果開頭是d的
話就代表是一個目錄,開頭是-的話就代表是字符串的開始援奢。
其余的九個字符顯示的就是文件訪問權(quán)限,三個一組加起來是九個忍捡。
- 最左邊的一組表示的文件所有者的權(quán)限
- 中間的一組表示同一組的成員的權(quán)限
- 最右邊的一組表示所有其他人的權(quán)限
符號r集漾,w切黔,等的含義根據(jù)文件或者目錄來講含義是不一樣的。
文件的訪問權(quán)限
- r表示可以讀取具篇,就是有讀和拷貝的權(quán)限
- w表示寫權(quán)限纬霞,就是可以修改文件
- x表示可以執(zhí)行的權(quán)限
目錄的訪問權(quán)限
- r表示用戶可以列印目錄的內(nèi)容
- w意思是用戶可以刪除目錄里的文件或者往目錄里添加文件
- x就可以訪問目錄里的文件,也就是可以讀取目錄里的所有文件
所以驱显,想要讀一個文件诗芜,首先要有這個文件所在的目錄的執(zhí)行權(quán)限。
一些例子
權(quán)限 | 意思 |
---|---|
-rwxrwxrwx | 可以對一個文件可讀可寫可執(zhí)行埃疫,還有可刪除 |
-rw------- | 只有所有者可以讀寫伏恐,其他人不能讀寫也沒有執(zhí)行權(quán)(例如郵件) |
5.2 更改訪問權(quán)限
符號 | 意思 |
---|---|
u | user |
g | group |
o | other |
a | all |
r | read |
w | write(and delete) |
x | execute(and access directory) |
+ | add permission |
- | take away permission |
chmod(changing a file mode)
只有所有者可以使用chmod來更改文件的權(quán)限。
符號 | 意思 |
---|---|
u | user |
g | group |
o | other |
a | all |
r | read |
w | write(and delete) |
x | execute(and access directory) |
+ | add permission |
- | take away permission |
例如移除組成員和其他人對biglist文件的寫和執(zhí)行權(quán)限
% chmod go-rwx biglist
習(xí)題 5a
嘗試改變文件science.txt和目錄backups的訪問權(quán)限
5.3 進程和任務(wù)
一個進程栓霜,就是以PID(進程ID)來定義的執(zhí)行程序翠桦。可以使用以下信息來看看進程相關(guān)信息胳蛮。
% ps
一個進程可以再前臺運行销凑,也可以在后臺運行,也可以掛起仅炊。一般來說shell會在程序運行結(jié)束之后
才返回提示符斗幼。
一些進程所花的時間會很長很長,占據(jù)著終端屏幕抚垄,也不能做其他事情蜕窿。后臺運行一個進程就可以
馬上回到UNIX提示符,可以操作其他任務(wù)了就督勺。
運行后臺進程
為了將進程后臺運行渠羞,在命令行的結(jié)尾可以加一個&符號,例如智哀,sleep命令可以使得計算機進行等
待次询,時間是10秒。
% sleep 10
在提示符出現(xiàn)之前會有十秒的時間間隔瓷叫,在出現(xiàn)之前屯吊,什么也做不了。
也可以將這個等待命令放到后臺運行
% sleep 10 &
[1] 6259
符號&會將進程放到后臺運行摹菠,并且直接返回提示符盒卸,允許你在運行期間做其他的事情。
上面第一行是用戶的輸入命令次氨,第二行是機器返回的信息蔽介,作業(yè)號和進程ID。用戶被告知的是第一
個作業(yè)號(數(shù)字1),由方括號包裹虹蓄。后面的PID會在進程完成的時候返回犀呼。后臺運行在作業(yè)運行時
間很長的時候是非常有用的。
將前臺的進程放到后臺去
在提示符中輸入薇组,
% sleep 1000
你可以通過按下[Ctrl]+[z]來掛起進程外臂,這個進程會進入一個作業(yè)的序列,jobs命令可以查看這個
序列律胀。
[1] Suspended sleep 1000
[2] Running netscape
[3] Running matlab
將作業(yè)重新拉回前臺運行宋光,只要輸入
% fg %jobnumber
比如,重新喚醒sleep 1000炭菌,
% fg %1
fg命令不帶參數(shù)的話就會喚醒最近的一個掛起進程罪佳。
5.5 殺死一個進程
kill(終結(jié)或者中斷一個進程)
有時候必須殺死一個進程,比如程序陷入無限循環(huán)娃兽。殺死一個前臺的進程可以使用組合鍵
[Ctrl]+[c]菇民。
% sleep 100
^C
殺死一個掛起的或者后臺運行的進程可以使用kill命令
% kill %jobnumber
比如現(xiàn)在
% sleep 100 &
% jobs
如果他的作業(yè)號是4
% kill %4
ps(process status)
殺死一個進程,可以使用作業(yè)號或者使用進程ID投储,都可以
% sleep 1000 &
% ps
PID TT S TIME COMMAND
20077 pts/5 S 0:05 sleep 1000
21563 pts/5 T 0:00 netscape
21873 pts/5 S 0:25 nedit
通過進程號來殺死進程
% kill 20077
如果進程拒絕被終止第练,那就可以啟用-9選項來強制執(zhí)行
% kill -9 20077
注意:想要終止其他用戶的進程是不可能的。
小結(jié)
命令 | 意思 |
---|---|
ls -lag | 列出所有文件訪問權(quán)限 |
chmod [選項] 文件 | 改變文件的訪問權(quán)限 |
命令 & | 將命令后臺運行 |
^c | 組合鍵來終止前臺進程 |
^z | 組合鍵來掛起前臺進程 |
bg | 后臺運行掛起的進程 |
jobs | 列出現(xiàn)在的作業(yè) |
fg %1 | 將作業(yè)1拿到前臺運行 |
kill %1 | 終止作業(yè)1 |
ps | 列出當前的進程 |
kill 26152 | 終止進程26152 |