mycpen

Mycpen

记录学习历程与受益知识
github
telegram
bilibili

17_Linux基礎-使用者權限2

一。練習:批量創建 n 個用戶#

批量創建 n 個用戶

用戶名以 sanchuang 開頭,sanchuang

指定家目錄 /lianxi/user

示例
---------------------------------------------------------------------------------------------------------------------------------
[root@localhost ~]# seq -w 10			# 注:-w 同等長度輸出
01
02
……………… 
09
10
[root@sanchuang-linux ~]# vim create_user2.sh
#!/bin/bash
num=$1          # 注:$1外面 接收參數,改名字 見名知義
[ -d /lianxi/user ] || mkdir /lianxi/user      # 注:-d判斷目錄是否存在,-f判斷普通文件是否存在
for i in `seq -w $num`						   # 注:mkdir /lianxi/user 就可以了,不要加上用戶名目錄
do				# 注:判斷是否存在,如果前面為真不做任何事情,如果為假就執行mkdir…
    useradd -d /lianxi/user/sanchuang$i sanchuang$i
done
[root@sanchuang-linux ~]# bash create_user2.sh 12
useradd:用戶“sanchuang01”已存在
useradd:用戶“sanchuang02”已存在
……………… 
useradd:用戶“sanchuang10”已存在
useradd:用戶“sanchuang12”已存在
[root@sanchuang-linux ~]# cd /lianxi/user
[root@sanchuang-linux user]# ls
sanchuang01  …………  sanchuang10  sanchuang12
[root@sanchuang-linux user]# cd
[root@sanchuang-linux ~]# bash create_user2.sh 20
useradd:用戶“sanchuang01”已存在
useradd:用戶“sanchuang02”已存在
……………… 
useradd:用戶“sanchuang12”已存在
useradd:用戶“sanchuang13”已存在
[root@sanchuang-linux ~]# cd /lianxi/user
[root@sanchuang-linux user]# ls
sanchuang01  …………  sanchuang18  sanchuang20

二。一般情況下普通用戶只能在家目錄下或者 /tmp 目錄下創建文件或者文件夾#

一般情況下普通用戶只能在家目錄下或者 /tmp 目錄下創建文件或者文件夾

#注:/tmp 目錄是一個臨時目錄,一般存放臨時性的東西

#注:(如:程序運行中需要記錄的一些東西,程序結束後把 /tmp 目錄下的東西刪掉)

[root@sanchuang-linux ~]# su - sanchuang
上一次登錄:五 11月  6 17:09:41 CST 2020pts/2
[sanchuang@sanchuang-linux ~]$ ls -ld /
dr-xr-xr-x. 38 root root 4096 11月  5 15:12 /
[sanchuang@sanchuang-linux ~]$ ls -ld /etc
drwxr-xr-x. 90 root root 8192 11月  7 15:00 /etc
[sanchuang@sanchuang-linux ~]$ ls -ld ./				# 注:家目錄下 創建文件或者文件夾
drwxrwxrwx. 4 sanchuang sanchuang 122 11月  6 17:10 ./ 
[sanchuang@sanchuang-linux ~]$ ls -ld /tmp			# 注:/tmp目錄下 創建文件或者文件夾
drwxrwxrwt. 12 root root 264 11月  7 10:36 /tmp

#注:chmod  自己是屬主的時候,才可以修改權限

三. chmod#

chmod 使用,必須是文件的屬主,才能改動文件的讀寫執行權限(root 除外)

#注:chmod 使用 用戶必須是文件的屬主才能修改(即使是文件屬組裡的成員也沒有權限去修改文件)

#注:root 用戶除外

示例:su切換用戶時 加- 不加- 區別
[root@sanchuang-linux chenpeng]# su - sanchuang11		# 注:加 - 會自動切換到到家目錄下
上一次登錄:六 11月  7 15:10:51 CST 2020pts/0
[sanchuang11@sanchuang-linux ~]$ exit
註銷
[root@sanchuang-linux chenpeng]# su sanchuang11			# 注:不加 - 會在當前目錄下
[sanchuang11@sanchuang-linux chenpeng]$ 

四。設置文件 / 目錄的歸屬#

設置文件 / 目錄的歸屬

4.1 chown 命令#

chown 命令 # 注:用來改變文件的屬主和屬組

  • 必須是root # 注:chown 只能 root 去更改
  • 用戶和組必須存在
  • 格式: chown 屬主 文件
    chown :屬組 文件
    chown 屬主:屬組 文件
示例:chown 修改文件的屬主和屬組
--------------------------------------------------------------------------------------------
[root@sanchuang-linux tmp]# ls -al sanchuang_log 						# 注:屬主 sanchuang ; 屬組 sanchuang
-rw-rw-r-- 1 sanchuang sanchuang 673 11月  7 15:19 sanchuang_log
[root@sanchuang-linux tmp]# chown sanchuang10 sanchuang_log 			# 注:修改屬主 sanchuang10
[root@sanchuang-linux tmp]# ls -al sanchuang_log 
-rw-rw-r-- 1 sanchuang10 sanchuang 673 11月  7 15:19 sanchuang_log
[root@sanchuang-linux tmp]# chown :sanchuang9 sanchuang_log 			# 注:修改屬組 sanchuang9
[root@sanchuang-linux tmp]# ls -al sanchuang_log 
-rw-rw-r-- 1 sanchuang10 sanchuang9 673 11月  7 15:19 sanchuang_log
[root@sanchuang-linux tmp]# chown sanchuang2:sanchuang sanchuang_log 	# 注:即改屬主又改屬組
[root@sanchuang-linux tmp]# ls -al sanchuang_log 
-rw-rw-r-- 1 sanchuang2 sanchuang 673 11月  7 15:19 sanchuang_log

#注:屬主和屬組不可以隨便更改
#注:數字隨便改,沒有限制 沒有強制性的檢查
#注:改字符串形式的名字 會檢查一下
[root@sanchuang-linux tmp]# chown xixi:haha sanchuang_log 		# 注:修改 字符串會檢查
chown: 無效的用戶: “xixi:haha”
[root@sanchuang-linux tmp]# chown 6666:6666 sanchuang_log 		# 注:數字沒有限制
[root@sanchuang-linux tmp]# ls -al sanchuang_log 
-rw-rw-r-- 1 6666 6666 673 11月  7 15:19 sanchuang_log

4.2 chgrp 命令#

chgrp 命令 # 注:修改屬組(不常用)

  • 格式: chgrp 屬組 文件
  • 必須是 root 或者是文件的所有者
  • 必須是新組的成員

常用命令選項

  • -R:遞歸修改指定目錄下所有文件、子目錄的歸屬
示例:chgrp命令 修改屬組
--------------------------------------------------------------------------------------------
[root@sanchuang-linux tmp]# chgrp sanchuang5 sanchuang_log 		# 注:只修改屬組
[root@sanchuang-linux tmp]# ls -al sanchuang_log 
-rw-rw-r-- 1 6666 sanchuang5 673 11月  7 15:19 sanchuang_log

4.3 可以執行的用戶#

可以執行的用戶

image-20220817035817124

操作 可以執行的用戶

chmod root 和文件所有者

chgrp root 和文件所有者(必須是組成員)

chown 只有 root

#注:chgrp 修改屬組 文件所有者 必須是想要修改的組裡的組成員


五。默認權限#

  • 在內核級別,文件的初始權限 666
  • 在內核級別,文件夾的初始權限 777
  • 用 umask 命令控制默認權限,臨時有效
[root@localhost ~]# umask  0022
[root@localhost ~]# umask -S  u=rwx,g=rx,o=rx  
[root@localhost ~]# umask 077  
[root@localhost ~]# umask  0077
不推薦修改系統默認umask

# 注:umask規定默認創建文件或者文件夾的權限有多大
============================================================================================
[sanchuang9@sanchuang-linux ~]$ ls -ld dd					 # 注:新建的文件dd
-rw-rw-r-- 1 sanchuang9 sanchuang9 0 11月  7 15:48 dd		# 注:權限644
============================================================================================

5.1 /etc/profile 下面有 umask 的設置#

/etc/profile 下面有umask的設置

系統環境設置 /etc/profile # 注:/etc/profile 下面有 umask 的設置

#注:判斷 uid 是否大於 199,並且當前用戶的 用戶名和組名 相等的時候 umask 是 002

#注:用戶名和組名不一樣時 umask 是 022

[sanchuang9@sanchuang-linux ~]$ less /etc/profile	# 注:/etc/profile下面有umask的設置
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
    umask 002			# 注:如果uid大於199 執行 id -gn 命令  group_name  ;id -un user_name
else					# 注:判定uid是否大於199,並且group_name=user_name
    umask 022			# 注:用戶名和組名一樣時 umask 是002 ; 用戶名和組名不一樣時 是 002
fi
--------------------------------------------------------------------------------------------
#注:新建文件的權限是666-umask,新建目錄的權限是777-umask
#注:使用umask設置文件的權限,因為每次登錄shell都會加載系統的環境,會運行/etc/profile,所以會設置它的umask

#注:id -gn 獲取當前用戶組名
#注:id -un 獲取當前用戶名
#uid大於199,並且當前用戶的group_name和user_name名字相同的時候 umask是002
#剩下的時候 umask是022

·在內核級別,文件的初始權限666  
·在內核級別,文件夾的初始權限777
·用umask命令控制默認權限,臨時有效

umask為002 則表示新建文件的默認權限為664,新建文件的文件夾權限為775
umask為022 則表示新建文件的默認權限為644,新建文件的文件夾權限為755

# 注:666 - umask
	 777 - umask
============================================================================================
示例:id -gn 獲取當前用戶組名; id -un 獲取當前用戶名
--------------------------------------------------------------------------------------------
[root@sanchuang-linux tmp]# /usr/bin/id -gn
root
[root@sanchuang-linux tmp]# /usr/bin/id -un
root
[root@sanchuang-linux tmp]# id -gn			# 注:當前所在用戶組名
root
[root@sanchuang-linux tmp]# id -un			# 注:當前所在用戶名
root
============================================================================================
示例:判斷2個字符串是否相等 可以用1個等號
--------------------------------------------------------------------------------------------
[root@sanchuang-linux tmp]# [ "a" = "b" ] || echo "ok"		# 注:判斷字符串相同 可以用一個等於號
ok															# 注:條件為假 輸出ok
[root@sanchuang-linux tmp]# [ "a" = "b" ] && echo "ok"		# 注:條件為真 輸出ok
[root@sanchuang-linux tmp]# [ "a" = "a" ] && echo "ok"
ok
--------------------------------------------------------------------------------------------
[root@sanchuang-linux tmp]# su - sanchuang	# 注:用戶名和組名一樣時
[sanchuang@sanchuang-linux ~]$ umask 
0002									# 注:用戶名和組名一樣時 umask 是002
[sanchuang9@sanchuang-linux ~]$ id -gn	# 注:第一位0是粘滯位  002是umask
sanchuang
[sanchuang9@sanchuang-linux ~]$ id -un
sanchuang

[root@localhost ~]# su - b1				# 注:用戶名 和 組名不一樣時
[b1@localhost ~]$ id
uid=1204(b1) gid=1001(cali) 组=1001(cali),200(tech)
[b1@localhost ~]$ id -un
b1
[b1@localhost ~]$ id -gn
cali
[b1@localhost ~]$ umask 				# 注:用戶名和組名不一樣時 umask是022
0022
[b1@localhost ~]$ touch gg
[b1@localhost ~]$ ls -ld gg				# 注:新建文件的權限是644權限
-rw-r--r--. 1 b1 cali 0 11月  8 16:27 gg
[b1@localhost ~]$ umask 422				# 注:臨時設置umask為422	(臨時修改)
[b1@localhost ~]$ mkdir test			# 注:新建文件夾的權限是 355(777-umask)
[b1@localhost ~]$ ls -ld test/
d-wxr-xr-x. 2 b1 cali 6 11月  8 16:49 test/	# 注:目錄權限355 寫執行 讀執行 讀執行
============================================================================================
示例:臨時設置umask
--------------------------------------------------------------------------------------------
[root@sanchuang-linux tmp]# umask 422			# 注:臨時更改umask
[root@sanchuang-linux tmp]# touch hh
[root@sanchuang-linux tmp]# ls -ld hh
--w-r--r-- 1 root root 0 11月  7 16:02 hh	   # 注:文件 權限是244 寫讀讀
============================================================================================
示例:umask -S 查看文件目前默認權限是多少
[sanchuang9@sanchuang-linux ~]$ umask -S		# 注:查看文件目前默認權限是多少
u=rwx,g=rwx,o=rx		
============================================================================================
示例:想要修改某個用戶的umask,永久修改
--------------------------------------------------------------------------------------------
#注:在家目錄下的.bashrc下添加umask設置		永久修改
#注:/etc/profile,/etc/bashrc系統配置 基本上不要更改(不要想着改全局配置)
[sanchuang9@sanchuang-linux ~]$ vim /home/sanchuang9/.bashrc
umask=002
[sanchuang9@sanchuang-linux ~]$ exit
註銷
[root@sanchuang-linux tmp]# su - sanchuang9
上一次登錄:六 11月  7 16:07:40 CST 2020pts/0
[sanchuang9@sanchuang-linux ~]$ umask		# 注:umask變成002了
0002
[sanchuang9@sanchuang-linux ~]$ bash		# 注:執行到新bash裡面去 umask也是002
[sanchuang9@sanchuang-linux ~]$ umask
0002

六。練習#

6.1 新建文件夾 /pem,複製 /etc/hosts 文件到 pem 目錄下#

1、新建文件夾/pem,複製/etc/hosts文件到pem目錄下
[root@sanchuang-linux pem]# mkdir /pem
[root@sanchuang-linux pem]# cp /etc/hosts /pem

6.2 修改 hosts 文件的權限為,屬主有讀寫執行,組有讀寫執行,其他人沒有任何權限#

2、修改hosts文件的權限為,屬主有讀寫執行,組有讀寫執行,其他人沒有任何權限
[root@sanchuang-linux pem]# chmod 750 /pem/hosts 
[root@sanchuang-linux pem]# ls -al /pem/hosts 
-rwxr-x--- 1 root root 158 11月  7 16:20 /pem/hosts

6.3 新建 /pem2 目錄,修改權限為任何人都有讀寫執行的權限#

3、新建/pem2目錄,修改權限為任何人都有讀寫執行的權限
[root@sanchuang-linux pem]# mkdir /pem2
[root@sanchuang-linux pem]# chmod 777 /pem2
[root@sanchuang-linux pem]# chmod 777 /pem2 -R		# 注:連帶下面所有的子文件

6.4 修改 /pem2 目錄權限為屬主有讀寫執行的權限,其他任何人都沒有權限#

4、修改/pem2目錄權限為屬主有讀寫執行的權限,其他任何人都沒有權限
[root@sanchuang-linux pem]# chmod 700 /pem2 

6.5 修改 /pem2 任何人都沒有任何權限#

5、修改/pem2任何人都沒有任何權限
[root@sanchuang-linux pem]# chmod 000 /pem2 

6.6 複製 /etc/passwd 和 /etc/shadow 文件到 /pem 目錄下,查看複製之後的權限是否一致,如何保持權限一致#

6、複製/etc/passwd和/etc/shadow文件到/pem目錄下,查看複製之後的權限是否一致,如何保持權限一致
[root@sanchuang-linux pem]# cp /etc/{passwd,shadow} /pem
[root@sanchuang-linux pem]# ls -al /pem
--w-r--r--   1 root root 3964 11月  7 16:23 passwd
----------   1 root root 4201 11月  7 16:23 shadow

6.7 cp -a 保留文件的屬性(包括權限、時間、用戶、組)#

cp -a 保留文件的屬性(包括權限、時間、用戶、組)

[root@sanchuang-linux pem]# cp /home/sanchuang9/.viminfo /tmp/viminfo	# 注:cp過來 屬主、屬組發生改變
[root@sanchuang-linux pem]# ls -al /tmp/viminfo 
--w------- 1 root root 1622 11月  7 16:30 /tmp/viminfo
[root@sanchuang-linux pem]# ls -al /tmp/viminfo 						# 注:cp-a選項 屬主、屬組、權限、創建時間都沒變
-rw------- 1 sanchuang9 sanchuang9 1622 11月  7 16:11 /tmp/viminfo

七。文件或目錄的隱藏屬性#

chattr 命令:設置文件的隱藏屬性

  • 格式:chattr [+-=] [ai] 文件或目錄 # 注:+、-、= 分別表示 增加、去除、設置參數

常用命令選項

  • -R:遞歸修改
  • -a:可以增加文件內容,但不能修改和刪除
  • -i:鎖定保護文件

lsattr 命令:查看文件的隱藏屬性

  • 格式:lsattr [Rda] 文件或目錄

常用命令選項

  • -R:遞歸修改
  • -d:查看目錄

#注:普通用戶設置不了文件的隱藏屬性;root 用戶才能設置

示例1:chattr +i hosts 鎖定保護文件
# 注:root用戶也不能去修改它
--------------------------------------------------------------------------------------------
#注:不能更改文件(不能刪 不能加 不能移動)
[root@sanchuang-linux pem]# chattr +i hosts		# 注:設置鎖定保護文件;將它不能更改
[root@sanchuang-linux pem]# mv hosts{,.bak}		# 注:不能移動(即使是root用戶)
mv: 無法將'hosts' 移動至'hosts.bak': 不允許的操作	
[root@sanchuang-linux pem]# ls -al hosts 		# 注:ls -al命令 無法查看隱藏屬性
-rwxr-x--- 1 root root 158 11月  7 16:20 hosts
[root@sanchuang-linux pem]# lsattr hosts		# 注:lsattr 才能 查看文件隱藏屬性 i
----i--------------- hosts						# 注:多了1個i屬性
[root@sanchuang-linux pem]# chattr -i hosts		# 注:去除屬性 去除鎖定
[root@sanchuang-linux pem]# lsattr hosts
-------------------- hosts						# 注:i隱藏屬性沒了
#注:不能刪,加,移動(root用戶也不能)
============================================================================================
示例2:chattr +a hosts 可以增加文件內容,但不能修改和刪除
# 注:可以使用重定向去增加文件內容,但不能去修改和刪除
--------------------------------------------------------------------------------------------
[root@sanchuang-linux pem]# chattr +a hosts		# 注:可以增加文件內容,但是無法修改和刪除
[root@sanchuang-linux pem]# lsattr hosts
-----a-------------- hosts						# 注:多了a屬性
[root@sanchuang-linux pem]# vim hosts 			# 注:不可以修改
[root@sanchuang-linux pem]# echo "aaaa" >> hosts 	# 注:可以追加
[root@sanchuang-linux pem]# cat hosts 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
aaaa
[root@sanchuang-linux pem]# rm -rf hosts 			# 注:不可以刪除
rm: 無法刪除'hosts': 不允許的操作
#注:不能修改,只能追加,不能刪除
#注:有時候無論什麼情況都不想讓它更改 +a屬性
============================================================================================
示例3:chattr +i /etc/passwd
--------------------------------------------------------------------------------------------
[root@sanchuang-linux pem]# chattr +i /etc/passwd		# 注:設置以後就創建不了用戶
[root@sanchuang-linux pem]# lsattr /etc/passwd			# 注:查看隱藏屬性
----i--------------- /etc/passwd						# 注:隱藏屬性i
[root@sanchuang-linux pem]# useradd sanchuang21			# 注:無論什麼用戶,設置了隱藏屬性,基本沒戲了
useradd:無法打開 /etc/passwd
[root@sanchuang-linux pem]# chattr -i /etc/passwd		# 注:解鎖
============================================================================================
示例4:普通用戶設置不了文件的隱藏屬性
--------------------------------------------------------------------------------------------
[root@localhost ~]# su - sanchuang
[sanchuang@localhost ~]$ touch aa
[sanchuang@localhost ~]$ chattr +i aa					# 注:普通用戶設置不了文件的隱藏屬性
chattr: 不允許的操作 while setting flags on aa

八。文件的正常權限#

image-20220817041614445

#注:正常文件的權限是讀寫執行
[root@sanchuang-linux pem]# ls -ld /tmp
drwxrwxrwt. 12 root root 4096 11月  7 16:30 /tmp		# 注:t 文件的特殊權限

九。文件的特別權限#

#注:set 位權限設置

image-20220817041733623

SET 位權限

主要用途:

  • 可執行(有 x 權限的)文件設置,權限字符為 “s” # 注:以前的 x 位變成 s 位
  • 其他用戶執行該文件時,將擁有屬主或屬組用戶的權限

SET 位權限類型

  • SUID:表示對屬主用戶增加 SET 位權限
  • SGID:表示對屬組內的用戶增加 SET 位權限

# 注:用在可執行文件
# 注:suid sgid 對應文件而言

示例:/bin/passwd
--------------------------------------------------------------------------------------------
[root@localhost ~]# which passwd
/bin/passwd
[root@localhost ~]# ls -ld /bin/passwd 
-rwsr-xr-x. 1 root root 27856 4月   1 2020 /bin/passwd
#注:普通用戶以root用戶的身份,間接更新了shadow文件中自己的密碼
[root@localhost ~]# su - sanchuang
[sanchuang@localhost ~]$ passwd sanchuang				# 注:不能更改密碼  其他權限沒到位
passwd:只有根用戶才能指定用戶名。

#注:s位 這個權限基本不會頒布,必須在有可執行文件下才能生效
#注:這個權限設置 所有人全部給,不能精確到某個用戶

示例:SET位權限設置
--------------------------------------------------------------------------------------------
[root@sanchuang-linux pem]# ls -ld /pem
d-wxr-xr-x 2 root root 47 11月  7 16:42 /pem				# 注:只有root用戶有寫的權限
#注:讓/pem有普通用戶創建、寫入的權限?
1.設置/pem的權限為777
2.設置mkdir SUID的權限
[root@sanchuang-linux sbin]# which mkdir
/usr/bin/mkdir
[root@sanchuang-linux sbin]# ls -ld /usr/bin/mkdir 		
-rwxr-xr-x. 1 root root 195192 4月  10 2020 /usr/bin/mkdir	# 注:沒有設置s屬性
[root@sanchuang-linux sbin]# chmod u+s /bin/mkdir	 	# 注:讓普通用戶執行mkdir時以root(屬主)權限去運行
[root@sanchuang-linux sbin]# ls -ld /usr/bin/mkdir 		# 注:變成s位了
-rwsr-xr-x. 1 root root 195192 4月  10 2020 /usr/bin/mkdir
[root@sanchuang-linux sbin]# su - sanchuang9
上一次登錄:六 11月  7 16:09:48 CST 2020pts/0
[sanchuang9@sanchuang-linux ~]$ cd /pem
[sanchuang9@sanchuang-linux pem]$ ls
hosts  passwd  shadow
[sanchuang9@sanchuang-linux pem]$ mkdir aa 				# 注:普通用戶有寫的權限了
[sanchuang9@sanchuang-linux pem]$ ls -ld /pem
d-wxr-xr-x 3 root root 57 11月  7 16:59 /pem
[sanchuang9@sanchuang-linux pem]$ touch dd				# 注:touch沒有這個權限
touch: 無法創建 'dd': 權限不夠
[sanchuang9@sanchuang-linux pem]$ exit
註銷
[root@sanchuang-linux sbin]# chmod u-s /bin/mkdir
[root@sanchuang-linux sbin]# ls -ld /bin/mkdir 
-rwxr-xr-x. 1 root root 195192 4月  10 2020 /bin/mkdir
# 注:s位基本不會給
# 注:s位不要輕易的頒布它,會對用戶進行影響

十。粘滯位權限(Sticky)#

粘滯位權限(Sticky)

主要用途:

  • 為公共目錄(例如,權限為 777 的)設置,權限字符為 “t” # 注:t 粘滯位標記字符
  • 用戶不能刪除該目錄中其他用戶的文件

# 注:一般作用於文件夾
# 注:粘滯位對於文件夾而言

示例1
--------------------------------------------------------------------------------------------
[root@sanchuang-linux sbin]# ls -ld /tmp
drwxrwxrwt. 12 root root 4096 11月  7 16:30 /tmp	# 注:/tmp目錄 任何用戶 都有讀寫執行權限
#注:因為粘滯位權限,用戶在/tmp目錄下只能創建自己的,刪除自己的
#注:一般作用於文件夾
#注:sanchuang10用戶不能刪除sanchuang用戶創建的文件
==============================================================================================================
示例2:chmod 777 /pem 普通用戶可以操作/pem這一層目錄下的文件或者文件夾及子文件
# 注:777權限,不同用戶可以相互刪除文件
# 注:設置粘滯位後,只能刪除自己創建的文件
--------------------------------------------------------------------------------------------
[root@sanchuang-linux ~]# chmod 777 /pem				# 注:把/pem文件夾權限改為777
[root@sanchuang-linux ~]# ls -ld /pem					# 注:所有用戶都有對/pem讀寫執行的權限 包括創建、刪除
drwxrwxrwx 3 root root 74 11月  7 17:10 /pem
[root@sanchuang-linux ~]# su - sanchuang9				# 注:普通用戶有創建的權限
上一次登錄:六 11月  7 17:07:17 CST 2020pts/2
[sanchuang9@sanchuang-linux ~]$ touch /pem/sanchuang9	# 注:普通用戶有創建的權限
[root@sanchuang-linux ~]# su - sanchuang
[sanchuang@sanchuang-linux ~]$ rm -rf /pem/sanchuang9	# 注:普通用戶有刪除的權限
#注:用戶可以刪除其他用戶創建的文件
==============================================================================================================
示例3:粘滯位 t
# 注:設置粘滯位後,只能刪除自己創建的文件
[sanchuang9@sanchuang-linux tmp]$ ls -ld /tmp
drwxrwxrwt. 13 root root 4096 11月  7 17:07 /tmp			# 注:/tmp目錄設置了1個粘滯位
[sanchuang9@sanchuang-linux ~]$ touch /tmp/sanchuang9
[sanchuang9@sanchuang-linux ~]$ exit
[root@sanchuang-linux ~]# su - sanchuang
上一次登錄:日 11月  8 19:05:55 CST 2020pts/3
[sanchuang9@sanchuang-linux ~]$ rm -rf /tmp/sanchuang9	# 注:因為設置了1個粘滯位
rm: 無法刪除'/tmp/sanchuang9': 不允許的操作				# 注:用戶只能在/tmp目錄下創建 刪除自己的
#注:粘滯位的作用
#注:·為公共目錄(例如,權限為777的)設置,權限字符為“t”
#注:·用戶不能刪除該目錄中其他用戶的文件
#注:一般作用於文件夾

十一。設置 SET 位、粘滯位權限#

設置 SET 位、粘滯位權限

使用權限字符

  • chmod ug±s 可執行文件... # 注:設置 set 位
  • chmod o±t 目錄名... # 注:設置粘滯位

使用權限數字

  • chmod mnnn 可執行文件...
  • m 為 4 時,對應 SUID,2 對應 SGID,1 對應粘滯位,可疊加 # 注:m 為 4 為 2 set 位
示例
--------------------------------------------------------------------------------------------
[root@sanchuang-linux ~]# ls -ld /tmp
drwxrwxrwt. 13 root root 4096 11月  7 17:07 /tmp		# 注:/tmp目錄設置了粘滯位,權限為1777
#注:/tmp目錄設置了粘滯位,第1位是1
============================================================================================
示例:設置粘滯位
--------------------------------------------------------------------------------------------
[root@sanchuang-linux ~]# chmod 1777 /pem
[root@sanchuang-linux ~]# ls -ld /pem
drwxrwxrwt 3 root root 74 11月  7 17:10 /pem			# 注:粘滯位 t 之前 x 的位置
#注:普通情況下不需要使用粘滯位、set位的時候,用3個數字就可以了
-----------------------------------------------------------------
[root@sanchuang-linux ~]# ls -ld /bin/mkdir 
-rwxr-xr-x. 1 root root 195192 4月  10 2020 /bin/mkdir
[root@sanchuang-linux ~]# chmod 4755 /bin/mkdir		# 注:設置為SET位SUID權限
[root@sanchuang-linux ~]# ls -ld /bin/mkdir 
-rwsr-xr-x. 1 root root 195192 4月  10 2020 /bin/mkdir
[root@sanchuang-linux ~]# chmod 755 /bin/mkdir		# 注:改回來
[root@sanchuang-linux ~]# ls -ld /bin/mkdir 
-rwxr-xr-x. 1 root root 195192 4月  10 2020 /bin/mkdir

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。