Linux總結5 權限和歸屬

權限和歸屬

基本權限

基本權限的類別
• 訪問方式(權限)
– 讀取:允許查看內容-read r
– 寫入:允許修改內容-write w
– 可執行:允許運行和切換-execute x

對文本文件:
r: cat less head tail
w: vim > >>
x: Shell腳本

• 權限適用對象(歸屬)
– 所有者:擁有此文件/目錄的用戶-user u
– 所屬組:擁有此文件/目錄的組-group g
– 其他用戶:除所有者、所屬組以外的用戶-other o

   lisi   lisi組     a.txt

查看權限
• 使用 ls -l 命令
– ls -ld 文件或目錄…

以 d 開頭爲目錄
以 - 開頭爲文本文件
以 l 開頭爲快捷方式

[root@server0 ~]# ls -l /etc/passwd

[root@server0 ~]# ls -ld /etc/

[root@server0 ~]# ls -l /etc/shadow

[root@server0 ~]# ls -ld /tmp

[root@server0 ~]# ls -ld /home/student

###################################################
• 使用 chmod 命令
– chmod [-R] 歸屬關係±=權限類別 文檔…
[-R]:遞歸設置權限

[root@server0 ~]# mkdir /nsd01
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# chmod u-w /nsd01
[root@server0 ~]# ls -ld /nsd01

[root@server0 ~]# chmod o=— /nsd01
[root@server0 ~]# ls -ld /nsd01

[root@server0 ~]# chmod g+w /nsd01
[root@server0 ~]# ls -ld /nsd01

[root@server0 ~]# chmod ugo=rwx /nsd01
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# chmod u=rwx,g=rx,o=rx /nsd01
[root@server0 ~]# ls -ld /nsd01

[root@server0 ~]# mkdir -p /opt/aa/bb/cc
[root@server0 ~]# ls -ld /opt/aa
[root@server0 ~]# ls -ld /opt/aa/bb
[root@server0 ~]# ls -ld /opt/aa/bb/cc/

[root@server0 ~]# chmod -R o=— /opt/aa #遞歸設置

[root@server0 ~]# ls -ld /opt/aa
[root@server0 ~]# ls -ld /opt/aa/bb
[root@server0 ~]# ls -ld /opt/aa/bb/cc/
################################################
Linux判定一個用戶擁有的權限 匹配及停止
1.判斷用戶的身份 所有者>所屬組>其他人
2.查看相應權限位的權限

1.嚴老師可以進入 1.所有人不可以進入
2.所有人不可以進入 2. 嚴老師可以進入

Permission denied :權限不足

目錄的r權限:能夠 ls 瀏覽此目錄內容
目錄的w權限:能夠執行rm/mv/cp/mkdir/touch更改目錄內容的操作
目錄的x權限:能夠 cd 切換到此目錄

以root用戶新建/nsddir目錄,在此目錄下新建readme.txt文件
並進一步完成下列操作
1)使用戶lisi能夠在此目錄下創建子目錄 su - lisi
chmod o+w /nsddir/
2)使用戶lisi不能夠在此目錄下創建子目錄
chmod o-w /nsddir/
3)使用戶lisi能夠修改readme.txt文件內容
chmod o+w /nsddir/readme.txt
4)調整此目錄的權限,使所有用戶都不能cd進入此目錄
chmod u-x,g-x,o-x /nsddir/
5)爲此目錄及其下所有文檔設置權限 rwxr-x—
chmod -R u=rwx,g=rx,o=— /nsddir/
   -R:遞歸設置權限,目錄下及目錄下所有

#################################################
設置文檔歸屬
• 使用 chown 命令
– chown [-R] 屬主 文檔…
– chown [-R] :屬組 文檔…
– chown [-R] 屬主:屬組 文檔…
[root@server0 ~]# mkdir /nsd03
[root@server0 ~]# ls -ld /nsd03
[root@server0 ~]# groupadd tedu
[root@server0 ~]# chown lisi:tedu /nsd03
[root@server0 ~]# ls -ld /nsd03

[root@server0 ~]# chown root /nsd03
[root@server0 ~]# ls -ld /nsd03

[root@server0 ~]# chown :lisi /nsd03
[root@server0 ~]# ls -ld /nsd03
################################################
利用root用戶新建/nsd06目錄,並進一步完成下列操作
1)將屬主設爲gelin01,屬組設爲tarena組
[root@server0 /]# useradd gelin01
[root@server0 /]# useradd gelin02
[root@server0 /]# groupadd tarena
[root@server0 /]# chown gelin01:tarena /nsd06
2)使用戶gelin01對此目錄具有rwx權限
除屬主與屬組之外的人,對此目錄無任何權限
[root@server0 /]# chmod o=— /nsd06
3)使用戶gelin02能進入、查看此目錄內容
[root@server0 /]# gpasswd -a gelin02 tarena
4)將gelin01加入tarena組, 將nsd06目錄的權限設爲rw-r-x—
再測試gelin01用戶能否進入此目錄
[root@server0 /]# gpasswd -a gelin01 tarena
[root@server0 /]# chmod u=rw,g=rx /nsd06

#################################################
設置權限,讓lisi用戶可以讀取/etc/shadow文件內容,有幾種辦法?
1.利用其他人:
chmod o+r /etc/shadow
2.利用所屬組:
chown :lisi /etc/shadow
chmod g+r /etc/shadow
3.利用所有者:
chown lisi /etc/shadow
chmod u+r /etc/shadow
4.利用ACL策略
setfacl -m u:lisi:r /etc/shadow

#################################################
附加權限(特殊權限)

Set GID
• 附加在屬組的 x 位上
– 屬組的權限標識會變爲 s
– 適用於目錄,Set GID可以使目錄下新增的文檔自動設
置與父目錄相同的屬組
– 自動繼承父目錄所屬組身份

[root@server0 ~]# mkdir /nsd08
[root@server0 ~]# chown :tedu /nsd08
[root@server0 ~]# ls -ld /nsd08

[root@server0 ~]# mkdir /nsd08/abc01
[root@server0 ~]# ls -ld /nsd08/abc01

[root@server0 ~]# chmod g+s /nsd08/ #設置Set GID
[root@server0 ~]# ls -ld /nsd08/

[root@server0 ~]# mkdir /nsd08/abc02
[root@server0 ~]# ls -ld /nsd08/abc02

[root@server0 ~]# ls -ld /nsd08/abc01

財務: caiwu組
/nsd09/20190703.txt
/nsd09/20190704.txt
/nsd09/20190705.txt
/nsd09/20190706.txt
/nsd09/20190707.txt

[root@server0 ~]# chown :caiwu /nsd09
[root@server0 ~]# chmod g+s /nsd09

#################################################
Set UID
• 附加在屬主的 x 位上
– 屬主的權限標識會變爲 s
– 適用於可執行文件,Set UID可以讓使用者具有文件屬主的身份及部分權限

[root@server0 ~]# cp /usr/bin/mkdir /usr/bin/hahadir

[root@server0 ~]# chmod u+s /usr/bin/hahadir
[root@server0 ~]# ls -l /usr/bin/hahadir
[root@server0 ~]# ls -l /usr/bin/mkdir

[root@server0 ~]# su - lisi
[lisi@server0 ~]$ /usr/bin/mkdir test
[lisi@server0 ~]$ ls -l
[lisi@server0 ~]$ /usr/bin/hahadir nsd
[lisi@server0 ~]$ ls -l
[lisi@server0 ~]$ exit

################################################
Sticky Bit
• 附加在其他人的 x 位上
– 其他人的權限標識會變爲 t
– 適用於開放 w 權限的目錄,可以阻止用戶濫用 w 寫入
權限(禁止操作別人的文檔)

[root@server0 ~]# mkdir /public
[root@server0 ~]# chmod ugo=rwx /public
[root@server0 ~]# ls -ld /public

[root@server0 ~]# chmod o+t /public
[root@server0 ~]# ls -ld /public

#################################################
acl訪問控制列表

acl策略的作用
• 文檔歸屬的侷限性
– 任何人只屬於三種角色:屬主、屬組、其他人
– 無法實現更精細的控制

• acl訪問策略
– 能夠對個別用戶、個別組設置獨立的權限
– 大多數掛載的EXT3/4、XFS文件系統默認已支持

[root@server0 ~]# mkdir /nsd11
[root@server0 ~]# chmod o=— /nsd11
[root@server0 ~]# ls -ld /nsd11

[root@server0 ~]# su - lisi
[lisi@server0 ~]$ cd /nsd11
-bash: cd: /nsd11: Permission denied
[lisi@server0 ~]$ exit

[root@server0 ~]# setfacl -m u:lisi:rx /nsd11
[root@server0 ~]# getfacl /nsd11 #專用於查看ACL策略
[root@server0 ~]# su - lisi
[lisi@server0 ~]$ cd /nsd11
[lisi@server0 nsd11]$ pwd
[lisi@server0 nsd11]$ exit

###############################################
使用 getfacl、setfacl 命令
– getfacl 文檔…
– setfacl [-R] -m u:用戶名:權限類別 文檔…
– setfacl [-R] -m g:組名:權限類別 文檔…
– setfacl [-R] -x u:用戶名 文檔… #刪除指定ACL

– setfacl [-R] -b 文檔… #清除所有ACL

]# mkdir /nsd14
]# setfacl -m u:lisi:rwx /nsd14
]# setfacl -m u:dc:rx /nsd14
]# setfacl -m u:genlin01:rwx /nsd14
]# setfacl -m u:genlin02:— /nsd14 #設置無任何權限
]# getfacl /nsd14

]# setfacl -x u:genlin02 /nsd14 #刪除指定ACL策略
]# getfacl /nsd14

]# setfacl -x u:genlin01 /nsd14 #刪除指定ACL策略
]# getfacl /nsd14

]# setfacl -b /nsd14 #清除所有的ACL策略
]# getfacl /nsd14

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章