小技巧
除root用戶外其他用戶將不能登錄
touch /etc/nologin 或touch /run/nologin
echo “system is maintaining”>> /etc/nologin
文件屬性
文件的權限主要針對三類對象進行定義:
owner: 屬主, u
修改文件的屬主:
chown [OPTION]… [OWNER][:[GROUP]] FILE…
命令中的冒號可用.替換;
-R: 遞歸
chown [OPTION]… –reference=RFILE FILE…
group: 屬組, g
修改文件的屬組:
chgrp [OPTION]… GROUP FILE…
chgrp [OPTION]… –reference=RFILE FILE…
-R 遞歸
other: 其他, o
每個文件針對每類訪問者:
r: Readable 可使用文件查看類工具獲取其內容
w: Writable 可修改其內容
x: eXcutable 可以把此文件提請內核啟動為一個進程
每個目錄針對每類訪問者:
r: 可以使用ls查看此目錄中文件列表
w: 可在此目錄中創建文件,也可刪除此目錄中的文件
x: 可以使用ls -l查看此目錄中文件列表,可以cd進入此
目錄 X:只給目錄x權限
文件權限的兩種表示法,字符表示法和數字表示法:
修改文件權限
chmod [OPTION]… OCTAL-MODE FILE…
-R: 遞歸修改權限
chmod [OPTION]… MODE[,MODE]… FILE…
MODE: 修改一類用戶的所有權限: u= g= o= ug= a= u=,g=
修改一類用戶某位或某些位權限 u+ u- g+ g- o+ o- a+ a- +
chmod [OPTION]… –reference=RFILE FILE…
參考RFILE文件的權限,將FILE的修改為同RFILE;
新建文件和目錄的默認權限
umask值 可以用來保留在創建文件權限
新建FILE權限: 666-umask 如果所得結果某位存在執行(奇數)權限,則將其權限+1
新建DIR權限: 777-umask
非特權用戶umask是 002
root的umask 是 022
umask: 查看
umask #: 設定
umask 002
umask –S 模式方式顯示
umask –p 輸出可被調用
全局設置: /etc/bashrc
用戶設置:~/.bashrc
Linux文件系統上的特殊權限
SUID
SUID只對二進制可執行程序有效,SUID設置在目錄上無意義
如果執行該程序的用戶擁有該程序的執行權限,那么該程序的進程將以程序文件的屬主身份運行
SGID
對文件:如果執行該程序的用戶擁有該程序的執行權限,那么該程序的進程將以程序文件的屬組身份運行
對目錄:一旦某目錄被設定了SGID,則對此目錄有寫權限的用戶在此 目錄中創建的文件所屬的組為此目錄的屬組,包括子目錄,通常用于創建一個協作目錄
默認情況下,用戶創建文件時,其屬組為此用戶所屬的主組
Sticky
具有寫權限的目錄通常用戶可以刪除該目錄中的任何文件,無論該文件的權限或擁有權
在目錄設置Sticky 位,只有文件的所有者或目錄的屬主或root可以刪除該文件
只對目錄有效,設置在文件上無意義
權限位映射
SUID: user,占據屬主的執行權限位 s: 屬主擁有x權限 S:屬主沒有x權限
SGID: group,占據屬組的執行權限位 s: group擁有x權限 S:group沒有x權限
Sticky: other,占據other的執行權限位 t: other擁有x權限 T:other沒有x權限
設定文件特定屬性
chattr +i 不能刪除,改名,更改
chattr +a 只能增加
lsattr 顯示特定屬性
注意:權限是針對特定文件系統的,并不是所有的文件系統都支持
訪問控制列表
ACL:Access Control List,實現靈活的權限管理
除了文件的所有者,所屬組和其它人,可以對更多的用戶設 置權限
CentOS7.0默認創建的xfs和ext4文件系統有ACL功能
CentOS7.X之前版本,默認手工創建的ext4文件系統無ACL功能。
需手動增加: tune2fs –o acl /dev/sdb1 mount –o acl /dev/sdb1/mnt
修改setfacl -m u或g:用戶或組名:權限 文件或目錄
刪除setfacl -x u或g:用戶或組名 文件或目錄
清空setfacl -b 文件或目錄
把寫好的acl作用在文件上,修改setfacl -M file.acl file|directory
把寫好的acl作用在文件上,刪除 setfacl -X file.acl directory
遞歸修改目錄下的sales權限,目錄有執行權限,但文件沒有執行權限setfacl -Rm g:sales:rwX directory
ACL文件上的group權限是mask 值(自定義用戶,自定義組 ,擁有組的最大權限),而非傳統的組權限
getfacl 可看到特殊權限:flags
mask是一條高壓線,限制除了所有者和other其他人的權限統統不能超過mask
設置acl權限后,更改組相當于該mask
setfacl -m mask::rx file
對目錄下新建的文件具有acl權限 setfacl -m d:u:wang:rx directory
刪除默認acl權限 setfacl -k d:u:wang:rx directory
getfacl file1 | setfacl –set-file=- file2 復制file1 的acl權限給file2
復制文件保留acl權限cp -a或cp -p
tar打包acl不會被保留
getfacl -R /tmp/dir1 > acl.txt
setfacl -R -b /tmp/dir1
setfacl -R –set-file=acl.txt /tmp/dir1
getfacl -R /tmp/dir1
原創文章,作者:M20-16劉國新,如若轉載,請注明出處:http://www.www58058.com/31493