一. 练习:批量创建n个用户

批量创建n个用户

用户名以sanchuang开头,sanchuang

指定家目录/lianxi/user

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
示例
---------------------------------------------------------------------------------------------------------------------------------
[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目录下的东西删掉)

1
2
3
4
5
6
7
8
9
10
11
12
[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用户除外

1
2
3
4
5
6
7
示例: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 属主:属组 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
示例: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:递归修改指定目录下所有文件、子目录的归属

1
2
3
4
5
示例: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 可以执行的用户

可以执行的用户

操作 可以执行的用户

chmod root和文件所有者

chgrp root和文件所有者(必须是组成员)

chown 只有root

#注:chgrp修改属组 文件所有者 必须是想要修改的组里的组成员


五. 默认权限

  • 在内核级别,文件的初始权限666

  • 在内核级别,文件夹的初始权限777

  • 用umask命令控制默认权限,临时有效

1
2
3
4
5
6
7
8
9
10
11
[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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
[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
2
3
1、新建文件夹/pem,复制/etc/hosts文件到pem目录下
[root@sanchuang-linux pem]# mkdir /pem
[root@sanchuang-linux pem]# cp /etc/hosts /pem

6.2 修改hosts文件的权限为,属主有读写执行,组有读写执行,其他人没有任何权限

1
2
3
4
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目录,修改权限为任何人都有读写执行的权限

1
2
3
4
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目录权限为属主有读写执行的权限,其他任何人都没有权限

1
2
4、修改/pem2目录权限为属主有读写执行的权限,其他任何人都没有权限
[root@sanchuang-linux pem]# chmod 700 /pem2

6.5 修改/pem2任何人都没有任何权限

1
2
5、修改/pem2任何人都没有任何权限
[root@sanchuang-linux pem]# chmod 000 /pem2

6.6 复制/etc/passwd和/etc/shadow文件到/pem目录下,查看复制之后的权限是否一致,如何保持权限一致

1
2
3
4
5
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 保留文件的属性(包括权限、时间、用户、组)

1
2
3
4
5
[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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
示例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

八. 文件的正常权限

1
2
3
#注:正常文件的权限是读写执行
[root@sanchuang-linux pem]# ls -ld /tmp
drwxrwxrwt. 12 root root 4096 11月 7 16:30 /tmp # 注:t 文件的特殊权限

九. 文件的特别权限

#注:set位权限设置

SET位权限

主要用途:

  • 可执行(有 x 权限的)文件设置,权限字符为“s” # 注:以前的x位变成s位

  • 其他用户执行该文件时,将拥有属主或属组用户的权限

SET位权限类型

  • SUID:表示对属主用户增加SET位权限

  • SGID:表示对属组内的用户增加SET位权限

# 注:用在可执行文件
# 注:suid sgid 对应文件而言

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
示例:/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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
示例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位

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
示例
--------------------------------------------------------------------------------------------
[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