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

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。