用户和组二

用户和组

-rw-r--r--  1 root root  16099840 Jan  9 16:05 fabric-baseos.tar
-rwxr-xr-x  1 root root       788 Nov 21  2021 install_env_china_20111120.sh

- 文件类型为普通的文件
rw-r–r-- 权限 r 读写 w write x execute 执行

[外链图片转存中…(img-YCH1UBtk-1655620461849)]

user—》owner 拥有者 --》u
group --》g
others --》o
all --》a

执行权限 x 对文件就是具有执行文件里的命令的权限 ./a.sh
对文件夹就是进入文件夹或者搜索文件夹里的内容 cd find

[外链图片转存中…(img-9aiiP5CO-1655620461850)]

chmod

修改用户的权限

[外链图片转存中…(img-0CPxdoN1-1655620461851)]

[root@localhost shell]# mkdir  shenjiemi
[root@localhost shell]# ll
总用量 0
drwxr-xr-x. 2 root root  6 616 19:40 shenjiemi
drwxr-xrwx. 5 root root 61 616 19:37 siyuxiang
[root@localhost shell]# chmod u-wx,g+w,o-rwx shenjiemi/
[root@localhost shell]# ll
总用量 0
dr--rwx---. 2 root root  6 616 19:40 shenjiemi
drwxr-xrwx. 5 root root 61 616 19:37 siyuxiang

[root@localhost shell]# chmod u-wx,g+w,o=rwx shenjiemi/
[root@localhost shell]# ll
总用量 0
dr--rwxrwx. 2 root root  6 616 19:40 shenjiemi
drwxr-xrwx. 5 root root 61 616 19:37 siyuxiang

不指定ugoa时默认修改所有用户的权限

[root@localhost shell]# chmod +x shenjiemi/
[root@localhost shell]# ll
总用量 0
dr-xrwxrwx. 2 root root  6 616 19:40 shenjiemi
drwxr-xrwx. 5 root root 61 616 19:37 siyuxiang

[root@localhost shell]# chmod -x shenjiemi/
[root@localhost shell]# ll
总用量 0
dr--rw-rw-. 2 root root  6 616 19:40 shenjiemi
drwxr-xrwx. 5 root root 61 616 19:37 siyuxiang

-R

递归修改指定目录下的所有文件、子目录的权限

[root@localhost shell]# chmod -R u=rwx,g-rwx,o-rwx nongda
[root@localhost shell]# chmod 777 liqiang/
[root@localhost shell]# ll
总用量 0
drwxrwxrwx. 2 root root  6 616 19:46 liqiang
drwx------. 3 root root 19 616 19:42 nongda
dr--rw-rw-. 2 root root  6 616 19:40 shenjiemi
drwxr-xrwx. 5 root root 61 616 19:37 siyuxiang

[外链图片转存中…(img-AC9RQ6k8-1655620461851)]

[root@localhost shell]# chmod 700 liqiang/	# 指定文件所有者的权限为rwx,文件所属组和其他用户没有任何权限
[root@localhost shell]# ll
总用量 0
drwx------. 2 root root  6 616 19:46 liqiang
drwx------. 3 root root 19 616 19:42 nongda
dr--rw-rw-. 2 root root  6 616 19:40 shenjiemi
drwxr-xrwx. 5 root root 61 616 19:37 siyuxiang

chown

改变文件的所属主,只有root用户可以改变文件的所有者

[外链图片转存中…(img-zpJ7fPOC-1655620461852)]

chown 属主 文件 # 改变文件的属主

chown :属组 文件 # 改变文件数组

chown 属主:属组 文件 # 改变文件的属主和属组

[root@lier 616]# ll test -d
drwxr-xr-x. 2 root root 6 67 00:26 test
[root@lier 616]# chown lwq test
[root@lier 616]# ll test -d
drwxr-xr-x. 2 lwq root 6 67 00:26 test

[root@lier 616]# chown :gaibang test
[root@lier 616]# ll test -d
drwxr-xr-x. 2 lwq gaibang 6 67 00:26 test

[root@lier 616]# chown fuxintao:feng test
[root@lier 616]# ll test -d
drwxr-xr-x. 2 fuxintao feng 6 67 00:26 test

umask

权限掩码

作用:可以用来设置新建的文件或者文件夹的默认权限

[外链图片转存中…(img-00UShRGn-1655620461853)]

[root@lier ~]# umask	#查看系统默认权限掩码
0022

[root@lier ~]# umask -S	#查看新创建的文件夹的默认权限
u=rwx,g=rx,o=rx

临时更改umask的值

[root@lier ~]# umask 0077
[root@lier ~]# umask
0077

[root@lier ~]# umask 0022
[root@lier ~]# umask
0022

新建一个文件夹,查看文件夹的权限

[root@lier 616]# mkdir test
[root@lier 616]# ll test -d
drwxr-xr-x. 2 root root 6 67 00:26 test

文件夹的初始权限是777,权限掩码是022,所以新建一个文件夹的默认权限就是777-022=755

新建一个文件,查看文件的权限

[root@lier 616]# touch test.txt
[root@lier 616]# ll test.txt
-rw-r--r--. 1 root root 0 67 00:45 test.txt

文件夹的初始权限是666,权限掩码是022,所以新建一个文件夹的默认权限就是666-022=644

永久修改umask的值

在**/etc/profile**文件中可以永久修改umask的值

[root@localhost shell]#  vim /etc/profile
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
    umask 002
else
    umask 022
fi

# 当用户的UID大于199且/usr/bin/id 的组名等于用户名时,umask设为002,否则设为022

示例:

[root@lier 616]# id lwq
uid=1002(lwq) gid=1002(lwq)=1002(lwq)
[root@lier 616]# su - lwq
上一次登录:日 65 02:08:00 CST 2022
[lwq@lier ~]$ umask
0002

[root@lier 616]# id qiaofeng
uid=10002(qiaofeng) gid=600(gaibang)=600(gaibang),0(root)
[root@lier 616]# su qiaofeng
sh-4.2$ umask
0022

启动bash时初始化文件的执行顺序:

1./etc/profile
2.~/.bash_profile
3.~/.bashrc
4./etc/bashrc

[外链图片转存中…(img-Fy6PoHJ7-1655620461855)]

chattr

[外链图片转存中…(img-ga4hylNz-1655620461856)]

chattr设置文件的隐藏属性

可以控制root用户的权限

append only (a),immutable(i)

a

chattr +a 文件或目录 :可以在文件中增加内容、在目录中新增文件或目录,但是不能修改和删除

# 给文件设置隐藏属性
[root@lier wudang]# chattr +a wd.txt 
[root@lier wudang]# lsattr
---------------- ./zhangsanfeng
-----a---------- ./wd.txt
# 可以向文件中写入内容
[root@lier wudang]# echo 1234 >>wd.txt
[root@lier wudang]# cat wd.txt
1234
# 不能删除或修改文件中的内容
[root@lier wudang]# >wd.txt
-bash: wd.txt: 不允许的操作

# 取消文件的隐藏属性
[root@lier wudang]# chattr -a wd.txt
[root@lier wudang]# lsattr |grep wd.txt
---------------- ./wd.txt
# 给目录设置隐藏属性
[root@lier 616]# chattr +a wudang
[root@lier 616]# lsattr |grep wudang
-----a---------- ./wudang
[root@lier 616]# cd wudang
[root@lier wudang]# ls
4913  wd.tx~  wd.txt  wd_txt.swp  zhangsanfeng
# 可以在目录中新建文件
[root@lier wudang]# mkdir test
[root@lier wudang]# ls
4913  test  wd.tx~  wd.txt  wd_txt.swp  zhangsanfeng
# 不能删除文件
[root@lier wudang]# rm -rf test
rm: 无法删除"test": 不允许的操作

# 取消目录的隐藏属性
[root@lier 616]# chattr -a wudang
[root@lier 616]# lsattr |grep wudang
---------------- ./wudang

i

chattr +i 文件或目录 :锁定文件或目录

# 锁定文件
[root@lier wudang]# chattr +i wd.txt 
[root@lier wudang]# lsattr | grep wd.txt 
----i----------- 
[root@lier wudang]# echo 2324 >>wd.txt 
-bash: wd.txt: 权限不够
./wd.txt
[root@lier wudang]# echo 2324 >>wd.txt 
-bash: wd.txt: 权限不够

[root@lb1 wangdan]# chattr +i /etc/passwd
[root@lb1 wangdan]# useradd xiaomi
useradd:无法打开 /etc/passwd
[root@lb1 wangdan]# echo 123456 >>/etc/passwd
-bash: /etc/passwd: 权限不够

# 锁定目录
[root@lier 616]# chattr +i wudang
[root@lier 616]# lsattr |grep wudang
----i----------- ./wudang
[root@lier 616]# cd wudang
[root@lier wudang]# ls
test  wd.tx~  wd.txt  wd.tz~  zhangsanfeng
[root@lier wudang]# mkdir ad
mkdir: 无法创建目录"ad": 权限不够
[root@lier wudang]# rm -rf zhangsanfeng/
rm: 无法删除"zhangsanfeng/": 权限不够

lsattr

查看文件的隐藏属性

[root@lier 616]# lsattr |grep wudang
----i----------- ./wudang
[root@lier wudang]# lsattr
---------------- ./zhangsanfeng
-----a---------- ./wd.txt

suid

[外链图片转存中…(img-5O4ovmht-1655620461857)]

给文件设置suid权限后,每个用户使用该文件时都是以root用户的权限去使用的

suid特别权限: 某个命令 ,例如:mkdir 普通用户在执行mkdir的时候,会以命令的属主(user)的身份去执行,一般情况下所有的命令,归root所有。普通用户在执行具有suid权限位的命令的时候,以root身份去执行

当文件所有者有执行权限时,给文件设置suid权限后,执行权限x会变为s;如果没有执行权限,则为S。文件所属组和其他用户的特别权限同上。

# 当mkdir命令没有suid权限时,普通用户不能在root用户所属的目录下创建文件
[root@lier wudang]# ll -d /bin/mkdir
-rwxr-xr-x. 1 root root 79768 1117 2020 /bin/mkdir
[root@lier wudang]# su - wangdan
上一次登录:五 617 22:39:51 CST 2022pts/0 上
[wangdan@lier ~]$ cd /
[wangdan@lier /]$ mkdir wuda
mkdir: 无法创建目录"wuda": 权限不够

# 给mkdir设置suid权限,使得普通用户可以在root用户的目录下创建文件
[root@lier wudang]# which mkdir
/usr/bin/mkdir
[root@lier wudang]# chmod u+s /bin/mkdir
[root@lier wudang]# ll -d /bin/mkdir
-rwsr-xr-x. 1 root root 79768 1117 2020 /bin/mkdir
[root@lier wudang]# su - wangdan
上一次登录:五 617 19:14:27 CST 2022pts/0 上
[wangdan@lier ~]$ cd /
[wangdan@lier /]$ mkdir wangdan

不建议给很多命令设置suid权限,防止任何人都可以以root用户的的身份去执行了

[root@lb1 wangdan]# chmod  +s /bin/mkdir
[root@lb1 wangdan]# ll /bin/mkdir
-rwsr-sr-x. 1 root root 79768 820 2019 /bin/mkdir
[root@lb1 wangdan]# chmod  -s /bin/mkdir
[root@lb1 wangdan]# ll /bin/mkdir
-rwxr-xr-x. 1 root root 79768 820 2019 /bin/mkdir
[root@lb1 wangdan]# chmod 4755 /bin/mkdir
[root@lb1 wangdan]# ll /bin/mkdir
-rwsr-xr-x. 1 root root 79768 820 2019 /bin/mkdir
[root@lb1 wangdan]# chmod 0755 /bin/mkdir
[root@lb1 wangdan]# ll /bin/mkdir
-rwxr-xr-x. 1 root root 79768 820 2019 /bin/mkdir
[root@lb1 wangdan]# 

粘滞位

当一个目录的权限为rwxrwxrwx时,任何用户都能在该目录下创建、修改、删除文件等操作。

设置粘滞位:chmod o+t 具有777权限的文件名

像/tmp目录的权限是应该设置成"rwxrwxrwx"的,那么对于tmp目录,任意用户都可以删除系统服务运行中的临时文件(别的用户的),所以此时我们就可以给这种文件的其他用户设置粘滞位,使得每个用户在777权限的目录下只能修改删除自己创建的文件,而不能修改、删除其他用户创建的文件。

对具有777权限的目录设置了粘滞位之后,正好可以保持⼀种动态的平衡:允许各⽤户在⽬录中任意写⼊、删除数据,但是禁⽌随意删除其他⽤户的数据。

粘滞位权限:可以给一个公共的目录设置,所有的用户都可以去这个目录下新建文件,保存文件,但是不能删除其他用户的文件,只能删除自己的文件。

[root@lb1 wangdan]# mkdir  /test
[root@lb1 wangdan]# ll -d /test
drwxr-xr-x 2 root root 6 619 10:27 /test
[root@lb1 wangdan]# chmod 777 /test
[root@lb1 wangdan]# ll /test -d
drwxrwxrwx 2 root root 6 619 10:27 /test
[root@lb1 wangdan]# chmod o+t /test
[root@lb1 wangdan]# ll /test -d
drwxrwxrwt 2 root root 6 619 10:27 /test
[root@lb1 wangdan]# su wangdan
[wangdan@lb1 wangdan]$ cd /test/
[wangdan@lb1 test]$ mkdir wang
[wangdan@lb1 test]$ ls
wang
[wangdan@lb1 test]$ exit
exit
[root@lb1 wangdan]# su - mi
上一次登录:日 619 10:26:34 CST 2022pts/0 上
[mi@lb1 ~]$ cd /test/
[mi@lb1 test]$ ls
wang
[mi@lb1 test]$ rm -rf wang
rm: 无法删除"wang": 不允许的操作
[mi@lb1 test]$ mkdir mi
[mi@lb1 test]$ ls
mi  wang
[mi@lb1 test]$ rm -rf mi
[mi@lb1 test]$ ls
wang
[mi@lb1 test]$ 

ACL

ACL(Access Control List)
一个文件/目录的访问控制列表,可以针对任意指定的用户/组使用权限字符分配rwx权限
设置ACL:setfacl指令
格式: setfacl 选项 规则 文件
常用选项
-m:新增或修改ACL中的规则
-b: 删除所有ACL规则
-x: 删除指定的ACL规则
查看ACL:getfacl指令
格式: getfacl 文件

setfacl 可以单独对用户和组设置权限
-m u:wuji:rwx u:qingshu:— g:wudang:rwx
-b
getfacl 查看权限

[root@lb1 lianxi]# groupadd wudang
[root@lb1 lianxi]# useradd -g wudang wuji
[root@lb1 lianxi]# useradd -g wudang qingshu
[root@lb1 lianxi]# setfacl -m u:wuji:rwx changsha
[root@lb1 lianxi]# getfacl changsha/
# file: changsha/
# owner: root
# group: root
user::rwx
user:wuji:rwx
group::r-x
mask::rwx
other::r-x
[root@lb1 lianxi]# setfacl -m m::r--  changsha/
[root@lb1 lianxi]# getfacl changsha/
# file: changsha/
# owner: root
# group: root
user::rwx
user:wuji:rwx			#effective:r--
group::r-x			#effective:r--
group:wudang:rwx		#effective:r--
mask::r--
other::r-x

删除权限

[root@lb1 lianxi]# setfac -b changsha 删除权限

不授予任何权限

[root@lb1 lianxi]# setfacl -m u:qingshu:--- changsha  不授予qingshu任何的权限
[root@lb1 lianxi]# getfacl changsha/
# file: changsha/
# owner: root
# group: root
user::rwx
user:qingshu:---
group::r--
group:wudang:rwx
mask::rwx
other::r-x

一个用户属于某个组会继承这个组的权限。
1.主要组
2.次要组
用户的主要组(有效组)属于某个组,会继承这个组的权限,如果是附属组属于某个组,也会继承。
拒绝权限高于一切 —》针对用户

如果一个用户属于两个组,但是一个组允许,一个组拒绝 —》允许访问

[root@lier lianxi]# useradd cs -g wudang -G gaibang 
[root@lier lianxi]# ll changsha
总用量 0
drwxr-xr-x. 2 wuji wudang 6 617 19:24 wuji
[root@lier lianxi]# cd 616
[root@lier 616]# ls
liqiang    siyuxiang  wangdan     xu.txt
nongda     test       xiaoxu      xuyunhe
shenjiemi  test.txt   xiaoxu.txt
[root@lier 616]# ll -d nongda
drwx------. 3 root root 18 66 19:53 nongda
[root@lier 616]# getfacl nongda
# file: nongda
# owner: root
# group: root
user::rwx
group::---
other::---

练习:

练习3:
1.新建目录taohuadao,要求taohuadao目录不能被删除,只能往目录里新建文件或者目录

[root@lier 616]# useradd taohuadao
[root@lier home]# chattr +a taohuadao
[root@lier home]# lsattr|grep taohuadao
-----a---------- ./taohuadao

​ 2.新建一个空文件honghuamiji ,要求只能往honghuamiji里追加内容不能删除里面的内容

[root@lier 616]# mkdir honghuamiji
[root@lier 616]# chattr +a honghuamiji
[root@lier 616]# lsattr
-----a---------- ./honghuamiji

​ 3.新建目录wudang,组wudang目录下新建空文件zhangsanfeng,要求不能删除wudang目录下所有的文件

[root@lier 616]# mkdir wudang
[root@lier 616]# chattr +a wudang
[root@lier 616]# cd wudang/
[root@lier wudang]# mkdir zhangsanfeng
[root@lier wudang]# ls
zhangsanfeng
[root@lier wudang]# rm -rf zhangsanfeng/
rm: 无法删除"zhangsanfeng/": 不允许的操作

​ 4.复制/etc/passwd到当前目录下,设置passwd文件不能被修改

[root@lier 616]# chattr +i passwd 
[root@lier 616]# lsattr
----i----------- ./passwd

​ 5.去掉honghuamiji文件的特殊属性,要求能删除里面的内容

[root@lier 616]# chattr -a honghuamiji/
[root@lier 616]# lsattr
---------------- ./honghuamiji

练习4:
1.新建3个组,wudang、shaolin、huashan

[root@lier 616]# groupadd wudang
[root@lier 616]# groupadd shaolin
[root@lier 616]# groupadd huashan

​ 2.新建用户qingshu 加入到wudang组

[root@lier 616]# useradd qingshu -g wudang

​ 3.新建用户xiaozhao 加入到shaolin组

[root@lier 616]# useradd xiaozhao -g shaolin

​ 4.新建用户linghu,liuyang加入到huashan组

[root@lier 616]# useradd linghu -g huashan
[root@lier 616]# useradd liuyang -g huashan

​ 5.新建一个目录wulin要求qingshu有读写执行的权限,xiaozhao有读执行的权限,linghu没有任何权限,如何实现?

[root@lier 616]# mkdir wulin
[root@lier 616]# getfacl wulin
# file: wulin
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

[root@lier 616]# setfacl -m u:qingshu:rwx wulin
[root@lier 616]# setfacl -m u:xiaozhao:r-x wulin
[root@lier 616]# setfacl -m u:linghu:--- wulin
[root@lier 616]# getfacl wulin
# file: wulin
# owner: root
# group: root
user::rwx
user:qingshu:rwx
user:xiaozhao:r-x
user:linghu:---
group::r-x
mask::rwx
other::r-x

​ 6.新建一个目录hunantv要求qingshu有读写执行的权限,xiaozhao有读执行的权限,liuyang有读执行的权限,linghu没有任何权限,如何实现?—》考虑使用ACL

[root@lier 616]# mkdir hunantv
[root@lier 616]# getfacl hunantv
# file: hunantv
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

[root@lier 616]# setfacl -m u:qingshu:rwx hunantv/
[root@lier 616]# setfacl -m u:xiaozhao:r-x hunantv/
[root@lier 616]# setfacl -m u:liuyang:r-x hunantv/
[root@lier 616]# setfacl -m u:linghu:--- hunantv/
[root@lier 616]# getfacl hunantv/
# file: hunantv/
# owner: root
# group: root
user::rwx
user:qingshu:rwx
user:xiaozhao:r-x
user:linghu:---
user:liuyang:r-x
group::r-x
mask::rwx
other::r-x

练习5:
1.新建3个组,shuiguo,mifen ,shaokao

[root@lier 616]# groupadd shuiguo
[root@lier 616]# groupadd mifen
[root@lier 616]# groupadd shaokao

​ 2.新建3个用户,pingguo属于shuiguo组,jingshi属于mifen组,yueyang属于shaokao组

[root@lier 616]# useradd pingguo -g shuiguo
[root@lier 616]# useradd jingshi -g mifen
[root@lier 616]# useradd yueyang -g shaokao

​ 3.在根目录下新建目录food,再将/etc/passwd文件复制到food目录下

[root@lier 616]# mkdir /food
[root@lier 616]# cd /food
[root@lier food]# cp /etc/passwd .
[root@lier food]# ls
passwd

​ 4.设置权限,passwd文件能被shuiguo组读写,jingshi这个用户能读写执行,yueyang这个用户不能进行任何操作

[root@lier food]# ls
passwd
[root@lier food]# getfacl passwd 
# file: passwd
# owner: root
# group: root
user::rw-
group::r--
other::r--

[root@lier food]# setfacl -m g:shuiguo:rw- passwd
[root@lier food]# setfacl -m u:jingshi:rwx passwd
[root@lier food]# setfacl -m u:yueyang:--- passwd
[root@lier food]# getfacl passwd 
# file: passwd
# owner: root
# group: root
user::rw-
user:jingshi:rwx
user:yueyang:---
group::r--
group:shuiguo:rw-
mask::rwx
other::r--

​ 5.然后去验证

[root@lier food]# su - jingshi
[jingshi@lier ~]$ cd /food
[jingshi@lier food]$ ls
passwd
[jingshi@lier food]$ tail -5 passwd 
linghu:x:10041:10039::/home/linghu:/bin/bash
liuyang:x:10042:10039::/home/liuyang:/bin/bash
pingguo:x:10043:10040::/home/pingguo:/bin/bash
jingshi:x:10044:10041::/home/jingshi:/bin/bash
yueyang:x:10045:10042::/home/yueyang:/bin/bash
[jingshi@lier food]$ vim passwd 	# 进入文件删除了后两行
[jingshi@lier food]$ tail -5 passwd 
qingshu:x:10039:1044::/home/qingshu:/bin/bash
xiaozhao:x:10040:7796::/home/xiaozhao:/bin/bash
linghu:x:10041:10039::/home/linghu:/bin/bash
liuyang:x:10042:10039::/home/liuyang:/bin/bash
pingguo:x:10043:10040::/home/pingguo:/bin/bash

[root@lier food]# su - yueyang
[yueyang@lier ~]$ cd /food
[yueyang@lier food]$ cat passwd 
cat: passwd: 权限不够
[yueyang@lier food]$ vim passwd 	# 权限不够

[root@lier food]# su - pingguo
[pingguo@lier ~]$ cd /food
[pingguo@lier food]$ ls
passwd
[pingguo@lier food]$ tail -3 passwd 
linghu:x:10041:10039::/home/linghu:/bin/bash
liuyang:x:10042:10039::/home/liuyang:/bin/bash
pingguo:x:10043:10040::/home/pingguo:/bin/bash
[pingguo@lier food]$ vim passwd 	# 删除最后一行
[pingguo@lier food]$ tail -3 passwd 
xiaozhao:x:10040:7796::/home/xiaozhao:/bin/bash
linghu:x:10041:10039::/home/linghu:/bin/bash
liuyang:x:10042:10039::/home/liuyang:/bin/bash

[pingguo@lier food]$ mv passwd .. 
mv: 无法将"passwd" 移动至"../passwd": 权限不够
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值