linux基本權限和歸屬、附加權限控制

1、基本權限和歸屬服務器

1. 訪問權限ide

讀取:容許查看、顯示目錄列表ui

寫入:容許修改,容許在目錄中新建、移動、刪除文件或子目錄spa

可執行:容許運行程序、切換目錄對象

2. 查看文件的權限blog

# ls -l install.log繼承

-|rw-|r--|r-- 1  root  root  26195 Dec 17 10:42  install.log遞歸

① ② ③ ④ ⑤   ⑥    ⑦       ⑧           ⑨                   ⑩開發

①. 文件類型v8

-表明普通文件

d表明目錄

l表明鏈接

②. rw-:表明文件全部者的權限(u)

r=讀=4

w=寫=2

x=執行=1

③. r--:表明文件所屬組的權限(g)

r=讀=4

w=寫=2

x=執行=1

④. r--:其餘用戶的權限(o)

r=讀=4

w=寫=2

x=執行=1

a=ugo

⑤. 文件  硬連接數

     目錄  該目錄下有多少子目錄包括.和..

⑥. 文件全部者

⑦. 文件所屬組

⑧. 文件大小

⑨. 文件修改時間

⑩. 文件名


3. 命令 (R表示遞歸)

chmod 改變權限

chmod ugoa [+-=] [rwx] 文件

chmod 數字 文件


文件最大權限666

目錄最大權限777

默認建立文件的權限644

默認建立目錄的權限755

umask 

最大權限的rwx-umask的rwx=默認權限

補充:

對於目錄來講沒有x權限,不管有沒rw,都不能進入該目錄


chown 改變全部者與所屬組

chown 全部者:所屬組  對象

chgrp 組 文件更改文件的屬組


2、附加權限控制

1. 特殊權限介紹

Set UID:4User+x

Set GID:2Group+x

Sticky Bit:1Other+x

2. 特殊權限做用

Set UID:

只能對可執行程序設置,當其餘用戶執行帶SUID標記的程序時,將會使用程序全部者的身份去執行


Set GID:

能夠對可執行程序設置,當其餘用戶執行帶SGID標記的程序時,將會使用程序所屬組的身份去執行

能夠對目錄設置,當對目錄設置SGID後,任何人在該目錄下建立文件和目錄的所屬組自動繼承該目錄的所屬組


Sticky Bit:

對目錄設置,任何人在該目錄下建立文件和目錄,只有root與文件建立者有刪除權限


3. ACL策略

getfacl文件查看ACL策略

setfacl[選項] u:用戶名:權限 文件

setfacl[選項] g:組名:權限 文件

-m定義一條ACL策略

-x刪除指定的ACL策略

-b清除全部已設置的ACL策略

-R遞歸設置

-d爲目錄設置默認權限





1、基本權限和歸屬

公司技術部有一臺Linux開發服務器,根據部門內項目組的構成狀況,須要創建相應的用戶帳號,並對開發數據相關目錄配置訪問權限。

1.文件夾/tech/nsdhome、/tech/jsdhome,分別歸屬於nsd組、jsd組,禁止其餘用戶進入。

2.建立部門公共目錄/public,技術部的全部員工(tech組)對其擁有可讀、可寫、可執行,其餘用戶禁止訪問此目錄。


[root@localhost /]# mkdir -p /tech/nsdhome

[root@localhost /]# mkdir -p /tech/jsdhome

[root@localhost /]# mkdir /public

[root@localhost /]# groupadd nsd

[root@localhost /]# groupadd jsd

[root@localhost /]# groupadd tech

[root@localhost /]# useradd -g nsd nsd01

[root@localhost /]# useradd -g nsd nsd02

[root@localhost /]# useradd -g jsd jsd01

[root@localhost /]# useradd -g jsd jsd02

[root@localhost /]# useradd -g tech yg01

[root@localhost /]# useradd yg02

[root@localhost /]# chown :nsd /tech/nsdhome

[root@localhost /]# ls -l /tech/nsdhome

總計 0

[root@localhost /]# ls -ld /tech/nsdhome

drwxr-xr-x 2 root nsd 4096 07-30 11:36 /tech/nsdhome

[root@localhost /]# chmod o-rx /tech/nsdhome

[root@localhost /]# chown :jsd /tech/jsdhome

[root@localhost /]# ls -ld /tech/jsdhome

drwxr-xr-x 2 root jsd 4096 07-30 11:36 /tech/jsdhome

[root@localhost /]# chmod o-rx /tech/jsdhome

wKioL1PflnSTwX1nAAX4XkJDzFk506.jpg

[root@localhost /]# chown :tech /public

[root@localhost /]# ls -ld /public

drwxr-xr-x 2 root tech 4096 07-30 11:36 /public

[root@localhost /]# chmod g+w /public

[root@localhost /]# ls -ld /public

drwxrwxr-x 2 root tech 4096 07-30 11:36 /public

[root@localhost /]# chmod o-rx /public

[root@localhost /]# ls -ld /public

drwxrwx--- 2 root tech 4096 07-30 11:36 /public

[root@localhost /]# ls -ld /tech/nsdhome

drwxr-x--- 2 root nsd 4096 07-30 11:36 /tech/nsdhome

[root@localhost /]# ls -ld /tech/jsdhome

drwxr-x--- 2 root jsd 4096 07-30 11:36 /tech/jsdhome

[root@localhost /]# 

wKioL1PflpvyBXFqAAJ9qB1Ry9c477.jpg


2、附加權限控制

一、Suid實驗

只能針對程序(命令)設置,當任何人在執行具備suid權限的命令時,將使用該命令的全部者身份執行

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

[root@localhost ~]# which passwd

[root@localhost ~]# ls -l /usr/bin/passwd 

[root@localhost ~]# umask 022

[root@localhost ~]# which touch

[root@localhost ~]# cp /bin/tosuuch /bin/suidtouch

[root@localhost ~]# ls -l /bin/*touch

[root@localhost ~]# useradd lily

[root@localhost ~]# su - lily

[lily@localhost ~]$ suidtouch suid-file1.txt

[lily@localhost ~]$ ls -l suid-file1.txt 

[lily@localhost ~]$ exit

[root@localhost ~]# ls -l /bin/suidtouch 

[root@localhost ~]# chmod u+s /bin/suidtouch 

[root@localhost ~]# ls -l /bin/suidtouch 

[root@localhost ~]# su - lily

[lily@localhost ~]$ suidtouch suid-file2.txt 

[lily@localhost ~]$ ls -l suid-file*

[lily@localhost ~]$ exit

[root@localhost ~]# rm -rf /bin/suidtouch 

wKiom1PflaTh9y6nAAOjYMs4Lpw713.jpg

wKioL1Pflr-iLAbaAAKuYdIBx-Y770.jpg

二、Sgid實驗

能對程序(命令)設置,也能夠對目錄設置

當任何人在執行具備sgid權限的命令時,將使用該命令的所屬組身份執行

[root@localhost ~]# which mkdir

[root@localhost ~]# cp /bin/mkdir /bin/sgidmkdir

[root@localhost ~]# ls -l /bin/*mkdir

[root@localhost ~]# su - lily

[lily@localhost ~]$ sgidmkdir test1

[lily@localhost ~]$ ls -ld test1

[lily@localhost ~]$ exit

[root@localhost ~]# chmod g+s /bin/sgidmkdir 

[root@localhost ~]# ls -l /bin/sgidmkdir 

[root@localhost ~]# su - lily

[lily@localhost ~]$ sgidmkdir test2

[lily@localhost ~]$ ls -ld test*

[lily@localhost ~]$ exit

[root@localhost ~]# rm -rf /bin/sgidmkdir 

wKiom1Pflc2jGAdAAAJlRbqKH2o144.jpg

wKioL1PflujT8yt3AAHPRTcjumY402.jpg

對目錄設置Sgid,任何人在該目錄下建立的文件或子目錄的所屬組都自動繼承該目錄自己所屬組

[root@localhost ~]# mkdir /testgid

[root@localhost ~]# ls -ld /testgid/

drwxr-xr-x 2 root root 4096 Jan  6 16:53 /testgid/

[root@localhost ~]# chmod 0757 /testgid/

[root@localhost ~]# su - lily

[lily@localhost ~]$ mkdir /testgid/lilytest1

[lily@localhost ~]$ touch /testgid/lilyfile1.txt

[lily@localhost ~]$ ls -l /testgid/

[lily@localhost ~]$ exit

[root@localhost ~]# chmod 2757 /testgid/

[root@localhost ~]# ls -ld /testgid/

[root@localhost ~]# su - lily

[lily@localhost ~]$ mkdir /testgid/lilytest2

[lily@localhost ~]$ touch /testgid/lilyfile2.txt

[lily@localhost ~]$ ls -l /testgid/

wKiom1Pflfzyh9mUAAK_yrVtCMU661.jpg

wKioL1PflxejdJM8AALrSHqF6Ck361.jpg

三、t位權限echo

針對公共目錄設置,目錄設置t位權限後,該目錄下的文件或子目錄只有root與文件全部者可以刪除

[root@localhost ~]# mkdir /soft

[root@localhost ~]# ls -ld /soft/

[root@localhost ~]# chmod o+w /soft/

[root@localhost ~]# ls -ld /soft/

[root@localhost ~]# useradd wbb

[root@localhost ~]# useradd lhq

[root@localhost ~]# su - lhq

[lhq@localhost ~]$ cat /soft/lhq.txt

hello,byebye

[lhq@localhost ~]$ exit

[root@localhost ~]# su - wbb

[wbb@localhost ~]$ ls -ld /soft/

[wbb@localhost ~]$ ls -l /soft/

[wbb@localhost ~]$ rm -rf /soft/lhq.txt 

[wbb@localhost ~]$ ls -l /soft/

[root@localhost ~]# chmod o+t /soft/

[root@localhost ~]# ls -ld /soft/

[root@localhost ~]# su - lhq

[lhq@localhost ~]$ cat /soft/lhq.txt

hello,byebye

[lhq@localhost ~]$ exit

[root@localhost ~]# su - wbb

[wbb@localhost ~]$ ls -l /soft/

[wbb@localhost ~]$ ls -ld /soft/

[wbb@localhost ~]$ rm -rf /soft/lhq.txt 


[root@localhost ~]# find / -type f -a -perm +6000//查找系統中suid/sgid的程序

wKiom1PfliuS1-WXAAKivHESxc8703.jpg

wKioL1Pfl0ajFdpbAAGFVgYo02U733.jpg

wKiom1Pfli3hOWHNAAFedESh2ww292.jpg

wKioL1Pfl0fTWK-KAAGaF5GXSRs650.jpg

四、ACL權限設置

建立帳戶:mike  john  kaka

建立文件:/data/file1.txt

·mike對文件有讀寫權限,john只有讀權限。其餘用戶沒有任何權限

·kaka具備與john相同權限

·建立lily,lily對file1.txt具備讀執行權限,其餘用戶沒有任何權限


[root@localhost ~]# tune2fs -l /dev/sda2 | grep acl

Default mount options:    user_xattr acl

[root@localhost ~]# tune2fs -l /dev/sda1 | grep acl

Default mount options:    user_xattr acl

[root@localhost ~]# ls -ld /data/

drwxrwxrwx 3 root root 4096 12-09 16:21 /data/

[root@localhost ~]# rm -rf /data/

[root@localhost ~]# mkdir /data

[root@localhost ~]# getfacl /data/

getfacl: Removing leading '/' from absolute path names

# file: data

# owner: root

# group: root

user::rwx

group::r-x

other::r-x


[root@localhost ~]# ls -ld /data/

drwxr-xr-x 2 root root 4096 12-09 16:27 /data/

[root@localhost ~]# setfacl -m u:mike:rwx /data/

[root@localhost ~]# ls -ld /data/

drwxrwxr-x+ 2 root root 4096 12-09 16:27 /data/

[root@localhost ~]# getfacl /data/

getfacl: Removing leading '/' from absolute path names

# file: data

# owner: root

# group: root

user::rwx

user:mike:rwx

group::r-x

mask::rwx

other::r-x

[root@localhost ~]# setfacl -m u:john:r-- /data/

[root@localhost ~]# setfacl -m u:kaka:r-- /data/

[root@localhost ~]# setfacl -m u:lily:r-x /data/

wKiom1PflnqwIZ8SAATNJNv8zLs609.jpg

wKiom1PY90DAbbAEAAOS5GqnxKo436.jpg

wKioL1PY-FvTiFCnAANYOLh-6bE112.jpg

相關文章
相關標籤/搜索