Linux - 安全 - 權限管理

吳宏東 - 記於2018年06月13日 - 博客 https://segmentfault.com/u/wu...segmentfault

Linux 權限管理

文件屬性

屬性命令 ls -l

drwxr-xr-x.   2 root root   15 6月  13 16:23 wuhd
-rwsr-xr--+ 1 root root 27832 6月  10 2014 /usr/bin/passwd
lrwxrwxrwx.   1 root root    8 5月  20 00:29 sbin -> usr/sbin
brw-rw----. 1 root disk      8,   0 6月  13 06:54 sda
crw-rw-rw-. 1 root root      1,   5 6月  13 06:54 zero

說明:
第1列第1個字符分別有b、c、d、-、l,分別表明
[b] 表示裝置文件裏面的可供儲存的接口設備;
[c] 表示裝置文件裏面的串行端口設備;
[d] 表示目錄;
[-] 表示文件;
[l] 表示連接文件;
第2-4列三個位表示屬主權限標記;
第5-7列三個位表示組權限標記;
第8-10列三個位表示其餘用戶權限標記;
第11列表示特殊權限位,+表示存在ACL權限;
[r] 表示讀,用數字4標記;
[w] 表示寫,包括建立、刪除,用數字2標記;
[x] 表示執行,用數字1標記;bash

更改操做權限

文字設定法 chmod

格式:chmod ugoa[rwx] <文件名或目錄名>
[u] 屬主(user)
[g] 屬組用戶(group)
[o] 其餘用戶(other)
[a] 全部用戶(all)
[+] 添加權限
[-] 刪除權限
[=] 替換原有權限
[r] 容許讀取
[w] 容許寫入、建立、刪除
[x] 容許執行code

# 對屬主用戶添加執行權限,對其餘用戶刪除讀取權限,針對文件text.txt
chmod u+x,o-r text.txt
# 分配權限=的寫法
chmod u=rwx,g=rw,o=rx text.txt

數字設定法 chmod

格式:chmod n1n2n3 <文件名或目錄名>
n1 屬主權限
n2 組用戶權限
n3 其餘用戶權限
數字分別按r=四、w=二、x=1進行相加組合而成。遞歸

# 對文件text.txt賦予最高權限
chmod 777 text.txt;

更改屬主和組

命令 chown

格式:chown [-R] <用戶[:組]> <文件名或目錄名>接口

# 將www目錄的屬主和組由root:root改成wuhd:wuhd
chown wuhd:wuhd www;
# 加-R表示將www目錄及其子目錄下的全部文件的屬主和組都修改成wuhd:wuhd
chown -R wuhd:wuhd www;

設置權限掩碼

命令 umask

權限掩碼是告訴系統當建立文件或目錄時不該該賦予的權限。
格式:umask [-S] [u0u1u2u3]
[u0] 表示特使權限,0爲不設置,4爲SUID權限,2爲SGID權限,1爲sticky-bit權限
[u1] 不容許屬主有的權限,0爲擁有所有權限
[u2] 不容許同組人有的權限,0爲擁有所有權限
[u3] 不容許其餘人有的權限,0爲擁有所有權限get

# 查看當前的權限掩碼,root用戶輸出0022,普通用戶輸出0002
umask;
# 權限掩碼的文字表達,表示實際賦予的權限,輸出u=rwx,g=rx,o=rx
umask -S;
# 將普通用戶的掩碼設置成root用戶的權限掩碼
umask 0022;

設置特殊權限

文字設定法 chmod

# 爲文件 /usr/bin/passwd 添加SUID權限
chmod u+s /usr/bin/passwd;
# 爲文件 /usr/bin/passwd 添加SGID權限
chmod g+s /usr/bin/passwd;
# 爲文件 /usr/bin/passwd 添加sticky-bit權限
chmod o+t /usr/bin/passwd;

設置ACL權限

命令 setfacl

格式:setfacl [-R] {-m|-x} <u:用戶名:{r|w|x}> <文件名或目錄名>
[-R] 遞歸目錄
[-m] 修改ACL權限
[-x] 刪除ACL權限博客

[root@master ~]# ll /usr/bin/passwd
-rwsr-xr--+ 1 root root 27832 6月  10 2014 /usr/bin/passwd
# 第11位爲+號表示已設置ACL權限
# 設置全部普通用戶不能修改密碼
chmod o-x /usr/bin/passwd;
# 單獨給普通用戶wuhd賦予修改密碼的權限
setfacl -m u:wuhd:x /usr/bin/passwd;
# 刪除文件 /usr/bin/passwd 全部ACL權限
setfacl -b /usr/bin/passwd;
# 單獨刪除某個用戶的ACL權限
setfacl -x u:wuhd /usr/bin/passwd;

命令 getfacl

# 查看ACL權限
getfacl /usr/bin/passwd;

輸出:it

# file: usr/bin/passwd
# owner: root
# group: root
# flags: s--
user::rwx
user:wuhd:--x
group::r-x
mask::r-x
other::r--

設置文件屬性

安裝 e2fsprogs

# 安裝
yum install -y e2fsprogs;

命令 lsattr

# 查看文件的屬性
lsattr fluent.conf;

命令 chattr

a:讓文件或目錄僅供附加用途;
i:不得任意更動文件或目錄;ast

[-R]:遞歸處理,將指令目錄下的全部文件及子目錄一併處理;
+<屬性>:開啓文件或目錄的該項屬性;
-<屬性>:關閉文件或目錄的該項屬性;
=<屬性>:指定文件或目錄的該項屬性;class

# 設置任何用戶(包括root用戶)只讀且不可刪除
chattr +i fluent.conf;
# 取消任何用戶(包括root用戶)只讀且不可刪除
chattr -i fluent.conf;
# 設置任何用戶(包括root用戶)只能追加內容且不可刪除
chattr +a fluent.conf;
# 取消任何用戶(包括root用戶)只能追加內容且不可刪除
chattr -a fluent.conf;
相關文章
相關標籤/搜索