Linux命令(shell)從入門到精通 學習筆記之1 文件安全與權限
1.ls -l 命令:

最前面的一位表示文件類型:
d 目錄。
l 符號鏈接(指向另一個文件)。
s 套接字文件。
b 塊設備文件。
c 字符設備文件。
p 命名管道文件。
- 普通文件,或者更準確地說,不屬于以上幾種類型的文件。
后面的連續(xù)九位,表示文件的讀寫權限:
r w x:文件屬主權限 這是前面三位
r - x:同組用戶權限 這是中間三位
r - x:其他用戶權限 這是最后三位
2.新創(chuàng)建文件(夾)的權限
目錄:

可以看到,新創(chuàng)建的目錄myshell的權限是:rwxr-xr-x,即:
onwer用戶具有read、write、execute權限,group和其他用戶具有read、execute權限。
文件:

可以看到,新創(chuàng)建的文件myfile的權限是:rw-r--r--。
文件在新創(chuàng)建的狀態(tài)下,不會被賦予執(zhí)行的權限,這是出于安全性的考慮。
文件權限修改:

#chmod777myfile //為所有用戶賦予了該文件的所有權限。
#chmoda-xmyfile //回收所有用戶的執(zhí)行權限(注意a-x,-x前面沒有空格)。

#chmodu+x,go-wmyfile //賦予文件屬主執(zhí)行權限,同時回收其他用戶的寫權限
3.chmod命令兩種模式:符號模式和絕對模式
符號模式:
#u:文件屬主
#g:同組用戶
#o:其他用戶
#a:所有用戶
+增加權限
-回收權限
如:
chmoda-xmyfile //剝奪所有用戶的文件執(zhí)行權限
chmodog-wmyfile
chmodg+wmyfile
chmodu+xmyfile
chmodgo+xmyf
chmodu+x,o-wmyfile
絕對模式:
004 可讀
002 可寫
001 可執(zhí)行
000 沒有權限
chmod750myfile
對文件myfile增加權限:
7=4+2+1(屬主可讀、寫、執(zhí)行)
5=4+1(同組用戶可讀、執(zhí)行)
0=0 (其他用戶沒有任何權限)
如果對一個目錄執(zhí)行:
chmod740*
表示對該目錄下的所有文件賦予740權限,但以后新增的目錄,權限仍是默認的rw-r--r--
4.目錄的權限
對目錄而言,意味著:
讀權限:可以列出該目錄中的文件
寫權限:可以在該目錄中創(chuàng)建或刪除文件
執(zhí)行權限:可以搜索或進入該目錄
目錄的權限將會覆蓋該目錄中文件的權限。例如,如果目錄docs具有如下的權限:

而其中的文件pay的權限為:

那么admin組的用戶將無法編輯該文件,因為它所屬的目錄不具有這樣的權限。
該文件對任何用戶都可讀,但由于它所在的目錄并未給admin組的用戶賦予執(zhí)行權限,所以該組的用戶都將無法訪問該目錄,他們將會得到“訪問受限”的錯誤消息。
5.suid和guid(了解)
suid意味著如果某個用戶對屬于自己的shell腳本設置了這種權限,那么其他用戶在執(zhí)行這一腳本時也會具有其屬主的相應權限。
如文件myfile具有741的權限,要對其設置suid,只需在其權限數字前加4(guid是加2,兩個都設置就是4+2=6),


6./etc/passwd文件
該文件中列出了系統(tǒng)合法的用戶相關信息。
7.chown和chgrp
chown:文件的所有者和管理員能用這一命令改變文件的所有權,改變之后,原來的所有者,就不能回收他的權限了,如果真要回收,必須求助與管理員。
如:

將myfile的所有者,從root變更為用戶zhy(zhy必須是在/etc/passwd中合法的)。
chgrp:改變文件所屬的組。
如:

將myfile所屬的組,從root改成了zhy組。
(
#groups
查看當前登錄用戶所在的組內所有的成員。
#id

查看當前登錄用戶的信息
#whoami
查看系統(tǒng)當前是被哪個用戶登錄的。
#groupszhy
查看zhy用戶所在的組,以及組內成員。
用戶組的特性在系統(tǒng)管理中為系統(tǒng)管理員提供了極大的方便,但安全性也是值得關注的,如某個用戶下有對系統(tǒng)管理有最重要的內容,最好讓用戶擁有獨立的用戶組,或者是把用戶下的文件的權限設置為完全私有;另外root用戶組一般不要輕易把普通用戶加入進去。
8.umask命令
一個用戶登錄到系統(tǒng)之后,他所創(chuàng)建的文件有一個缺省的權限,這個權限可以由管理員配置,也可以由用戶登錄之后用umask命令自己配置,這種配置在退出該shell或使用另外的umask命令之前一直有效。
一般來說,umask命令是在/etc/profile文件中設置的,每個用戶在登錄時都會引用這個文件,所以如果希望改變所有用戶的umask,可以在該文件中加入相應的條目。如果希望永久性地設置自己的umask值,那么就把它放在自己$home目錄下的.profile或.bash_profile文件中。
umask值與權位:

通過:
#umask
命令查看當前umask值(后三位):

可以看到,當前umaks值為022,通過上面的表,就可以知道,umask對應的文件權限是644,目錄權限是755。
如果沒有上面的表,還有另外一種計算方法:
777: rwxrwxrwx
022: ----w--w-
取上面兩行中沒有匹配的位就是目錄的權限:
rwxr-xr-x
換成值就是:755(目錄權限)
再將上面算出的結果(rwxr-xr-x)中為x的位換成-,就是文件的權限:
rw-r--r--
換成值就是:644(文件權限)
如果希望改變系統(tǒng)的umask值,可以這樣:
#umask007
例:

可以看到,文件的權限確實被改變了。
9.符號鏈接
是一個指向文件的指針,在我理解就是window下的快捷方式:

.profile就是/usr/local/menus/sales.profile的快捷方式了,這樣很方便,比如我們有多個用戶,比如50個,可以為他們分別創(chuàng)建一個.profile文件,都指向這同一個sales.profile文件,以后我們修改一個sales.profile就可以了,不用對每個用戶的.profile做修改。
創(chuàng)建符號鏈接的命令格式:
#ln[-s]source_pathtarget_path
source_path是要指向的文件
target_path就是指針(快捷方式)
例:
#ln-s/usr/opt/monitor/regstar/reg.log/var/adm/logs/monitor.log
在新安裝的系統(tǒng)上,通常要進行這樣的操作,在/var目錄中創(chuàng)建一個指向/tmp目錄的鏈接,因為有些應用程序認為存在/var/tmp目錄(然而它實際上并不存在),有些應用程序在該目錄中保存一些臨時文件。為了使所有的臨時文件都放在一個地方,可以使用ln命令在/var目錄下建立一個指向/tmp目錄的鏈接:
#ln-s/tmp/var/tmp
以后,如果有應用程序試圖將一些臨時文件放在/var/tmp下,實際上它是被存放在了/tmp目錄下了,因為/var/tmp只是一個符號鏈接而已。
版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網友推薦、互聯(lián)網收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。
關注官方微信