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
[sanchuang@sanchuang-linux ~]$ id -gn	# 注:第一位0是粘滞位  002是umask
sanchuang
[sanchuang@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
[sanchuang@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

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.