用户组群与文件目录权限管理
文章目录
- 用户组群与文件目录权限管理
- 一、用户账户
- 二、组群管理
- 三、su命令
- 四、文件和目录权限管理
- 五、文件权限管理实例配置
- 1.需求分析及情境应用
- 2.解决方案
- (1)添加user-stu01与user-stu02用户账户及其属组,执行命令如下
- (2)建立所需要的开发项目目录,执行命令如下
- (3)修改/home/share-stu目录的属性,且其他人均不可进入此目录,该目录的组群应该为stu,权限应为770才合理,执行命令如下
- (4)先使用用户账户user-stu01建立文件test01.txt,再使用用户账户user-stu02进行处理,执行命令如下
- (5)加入SGID的权限,并进行结果测试,执行命令如下
- (6)结果测试,先使用用户账户user-stu01建立文件test02.txt,再使用用户账户user-stu02进行处理,使用用户账户user-stu02建立文件test03.txt,执行命令如下
一、用户账户
1.1用户账户分类
(1)超级用户(root)
(2)系统用户
(3)普通用户
1.2用户账户密码文件
1.用户账户管理文件------/etc/passwd
[root@cjl ~]# cat -n /etc/passwd
1 root:x:0:0:root:/root:/bin/bash
账户名称:密码:UID:GID:用户信息:主目录:命令解释器
2.用户密码文件------/etc/shadow
[root@cjl ~]# cat -n /etc/shadow
1 root:$6$ww4F9fZXhi2W9bjb$13lE1pOgLxBnTq/LfBPetFPtnc17DqToS3PjaY0vpx/FfL5N0X7LU0xRkXiZ8Fv7yRnmz681Nzr/Is8e265fr.:19797:0:99999:7:::
账户名称:密码:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志字段
1.3用户账户管理
1.useradd(adduser)命令------建立用户账户
使用useradd命令,新建用户user01,UID为2000,用户主目录为/home/user01,用户的Shell为bin/bash,用户的密码为admin@123,用户账户永部过期。执行命令以下
[root@cjl ~]# useradd -u 2000 -d /home/user01 -s /bin/bash -p admin@123 -f -1 user01
[root@cjl ~]# tail -1 /etc/passwd //查看新建用户信息
user01:x:2000:2000::/home/user01:/bin/bash
[root@cjl ~]#
如果新建用户已经存在,那么执行useradd命令时,系统会提示该用户已经存在
[root@cjl ~]# useradd user01
useradd:用户“user01”已存在
[root@cjl ~]#
2.passwd命令------设置用户账户密码
使用passwd命令,修改用户root和用户user01的密码。执行命令如下
[root@cjl ~]# passwd //用户root修改自己的密码,直接按"Enter"键即可
更改用户 root 的密码 。
新的密码:
无效的密码: 密码是一个回文
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。
[root@cjl ~]#
[root@cjl ~]# passwd user01 //修改用户user01的密码
更改用户 user01 的密码 。
新的密码:
无效的密码: 密码是一个回文
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。
[root@cjl ~]#
3.chage命令------修改用户账户口令属性
使用chage命令,设置用户user01的最短口令存活期为10天,最长口令存活期为90天,口令到期前3天提醒用户修改口令,设置完成后查看各属性值。执行命令以下
[root@cjl ~]# chage -m 10 -M 90 -W3 user01
[root@cjl ~]# chage -l user01
最近一次密码修改时间 :4月 12, 2024
密码过期时间 :7月 11, 2024
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :10
两次改变密码之间相距的最大天数 :90
在密码过期之前警告的天数 :3
[root@cjl ~]#
4.usermod命令------修改用户信息
使用usermod命令,维护用户账户、禁用和恢复用户账户。
先来看一下用户user01的默认信息
[root@cjl ~]# id user01
用户id=2000(user01) 组id=2000(user01) 组=2000(user01)
[root@cjl ~]#
将用户user01加入root用户组,这样扩展组列表中会出现root用户组的字样,而基本组不会受影响
[root@cjl ~]# usermod -G root user01
[root@cjl ~]# id user01
用户id=2000(user01) 组id=2000(user01) 组=2000(user01),0(root)
[root@cjl ~]#
可以使用-u参数修改用户user01的UID,操作命令如下
[root@cjl ~]# usermod -u 5000 user01
[root@cjl ~]# id user01
用户id=5000(user01) 组id=2000(user01) 组=2000(user01),0(root)
[root@cjl ~]#
修改用户user01的主目录为/var/user01,把启动Shell修改为/bin/tabs,完成后恢复到初始状态,操作命令如下
[root@cjl ~]# usermod -d /var/user01 -s /bin/tabs user01
[root@cjl ~]# tail -2 /etc/passwd
cjl:x:1000:1000:cjl:/home/cjl:/bin/bash
user01:x:5000:2000::/var/user01:/bin/tabs
[root@cjl ~]# usermod -d /var/user01 -s /bin/tabs user01
(1)使用passwd命令
[root@cjl ~]# passwd -l user01
锁定用户 user01 的密码 。
passwd: 操作成功
[root@cjl ~]# tail -1 /etc/shadow
user01:!!$6$jt0jBWiNom.B0Kp3$ZJmJYZHjf8eatdcTdqjqDktCcoSkvC46i0L2YcDNAb3HdjOKctNZ2lTFm26fYhuH0BOJaOJRkXX56EHmcb0FE/:19825:10:90:3:::
[root@cjl ~]# tail -1 /etc/passwd
user01:x:5000:2000::/var/user01:/bin/tabs
[root@cjl ~]# passwd -u user01 //解除用户user01的锁定
解锁用户 user01 的密码。
passwd: 操作成功
[root@cjl ~]#
(2)使用usermod命令
[root@cjl ~]# usermod -L user01
[root@cjl ~]# tail -1 /etc/shadow
user01:!$6$jt0jBWiNom.B0Kp3$ZJmJYZHjf8eatdcTdqjqDktCcoSkvC46i0L2YcDNAb3HdjOKctNZ2lTFm26fYhuH0BOJaOJRkXX56EHmcb0FE/:19825:10:90:3:::
[root@cjl ~]# tail -1 /etc/passwd
user01:x:5000:2000::/var/user01:/bin/tabs
[root@cjl ~]# usermod -U user01 //解除用户user01的锁定
[root@cjl ~]#
5.userdel命令------删除用户账户
使用userdel命令删除用户账户,先创建用户user02和user03,再查看用户目录相关信息,删除用户user03,并查看用户主目录的变化
[root@cjl ~]# useradd -p 123456 user02 //新建用户user02,密码为123456
[root@cjl ~]# useradd -p 123456 user03 //新建用户user03,密码为123456
[root@cjl ~]# ls /home //查看目录情况
cjl user01 user02 user03
[root@cjl ~]# tail -4 /etc/passwd //查看用户账户信息
cjl:x:1000:1000:cjl:/home/cjl:/bin/bash
user01:x:5000:2000::/var/user01:/bin/tabs
user02:x:5001:5001::/home/user02:/bin/bash
user03:x:5002:5002::/home/user03:/bin/bash
[root@cjl ~]# userdel -r user03 //删除用户user03
[root@cjl ~]# ls /home //查看目录情况
cjl user01 user02
[root@cjl ~]#
二、组群管理
2.1理解组群文件
1./etc/group文件
查看/etc/group文件的内容,相关命令如下
[root@cjl ~]# useradd -p 123456 user03
[root@cjl ~]# usermod -G root user01
[root@cjl ~]# usermod -G bin user02
[root@cjl ~]# usermod -G bin user03
[root@cjl ~]# cat -n /etc/group
1 root:x:0:user01
2 bin:x:1:user02,user03
3 daemon:x:2:
4 sys:x:3:
5 adm:x:4:
6 tty:x:5:
[root@cjl ~]# id user02
用户id=5001(user02) 组id=5001(user02) 组=5001(user02),1(bin)
[root@cjl ~]#
2./etc/gshadow文件
查看/etc/gshadow文件的内容,相关命令如下
[root@cjl ~]# cat -n /etc/gshadow
1 root:::user01
2 bin:::user02,user03
3 daemon:::
4 sys:::
5 adm:::
......
[root@cjl ~]#
2.2组群维护与管理
1.groupadd命令------创建组群
使用groupadd命令创建用户组,相关命令如下
[root@cjl ~]# ls /home
cjl user01 user02 user03
[root@cjl ~]# groupadd workgroup
[root@cjl ~]# tail -5 /etc/group
cjl:x:1000:
user01:x:2000:
user02:x:5001:
user03:x:5002:
workgroup:x:5003:
[root@cjl ~]# tail -5 /etc/gshadow
cjl:!::
user01:!::
user02:!::
user03:!::
workgroup:!::
2.groupdel命令------删除组群
使用groupdel命令删除组群,相关命令如下
[root@cjl ~]# groupadd workgroup-1
[root@cjl ~]# groupadd workgroup-2
[root@cjl ~]# tail -6 /etc/group
user01:x:2000:
user02:x:5001:
user03:x:5002:
workgroup:x:5003:
workgroup-1:x:5004:
workgroup-2:x:5005:
[root@cjl ~]# groupdel workgroup-2
[root@cjl ~]# tail -6 /etc/group
cjl:x:1000:
user01:x:2000:
user02:x:5001:
user03:x:5002:
workgroup:x:5003:
workgroup-1:x:5004:
3.groupmod命令-----更改组群识别码或名称
使用groupmod命令更改组群识别码或名称,将workgroup-1组群ID修改为3000,同时将组群名称修改为workgroup-student,并显示相关结果,相关命令如下
[root@cjl ~]# groupmod -g 3000 -n workgroup-student workgroup-1
[root@cjl ~]# tail -6 /etc/group
cjl:x:1000:
user01:x:2000:
user02:x:5001:
user03:x:5002:
workgroup:x:5003:
workgroup-student:x:3000:
4.gpasswd命令-----管理组群
使用gpasswd命令管理组群,相关命令如下
[root@cjl ~]# ls /home
cjl user01 user02 user03
[root@cjl ~]# tail -6 /etc/group
cjl:x:1000:
user01:x:2000:
user02:x:5001:
user03:x:5002:
workgroup:x:5003:
workgroup-student:x:3000:
[root@cjl ~]# gpasswd -a user01 workgroup-student
正在将用户“user01”加入到“workgroup-student”组中
[root@cjl ~]# gpasswd -a user02 workgroup-student
正在将用户“user02”加入到“workgroup-student”组中
[root@cjl ~]# tail -6 /etc/group
cjl:x:1000:
user01:x:2000:
user02:x:5001:
user03:x:5002:
workgroup:x:5003:
workgroup-student:x:3000:user01,user02
[root@cjl ~]# gpasswd -d user02 workgroup-student
正在将用户“user02”从“workgroup-student”组中删除
[root@cjl ~]# tail -6 /etc/group
cjl:x:1000:
user01:x:2000:
user02:x:5001:
user03:x:5002:
workgroup:x:5003:
workgroup-student:x:3000:user01
[root@cjl ~]# gpasswd -A cjl workgroup-stude
5.chown命令------修改文件的拥有者和组群
使用chown命令修改文件的拥有者和组群,相关命令如下
(1)将test01.txt文件的属主改为test用户
[root@cjl ~]# useradd -p 123456 test
[root@cjl ~]# ls -l test01
-rw-r--r--. 1 root root 0 4月 19 10:07 test01
[root@cjl ~]# chown test:root test01.txt
[root@cjl ~]# ls -l test01.txt
-rw-r--r--. 2 test root 0 4月 1 19:46 test01.txt
[root@cjl ~]#
(2)chown所接的新的属主和新的属组之间可以使用":“符号连接,属主和属组之一可以为空。如果属主为空,则应该是”: 属组";如果属组为空,则可以不用":"符号
[root@cjl ~]# ls -l test01.txt
-rw-r--r--. 2 test root 0 4月 1 19:46 test01.txt
[root@cjl ~]# chown :test test01.txt
[root@cjl ~]# ls -l test01.txt
-rw-r--r--. 2 test test 0 4月 1 19:46 test01.txt
[root@cjl ~]#
(3)chown也提供了-R参数,这个参数对目录改变属主和属组极为有用,可以通过添加-R参数来改变某个目录下的所有文件到新的属主或属组中
[root@cjl ~]# mkdir testdir
[root@cjl ~]# ls -ld testdir
drwxr-xr-x. 2 root root 6 4月 19 10:32 testdir
[root@cjl ~]# touch testdir/test1.txt
[root@cjl ~]# touch testdir/test2.txt
[root@cjl ~]# touch testdir/test3.txt
[root@cjl ~]# ls -l testdir/
总用量 0
-rw-r--r--. 1 root root 0 4月 19 10:33 test1.txt
-rw-r--r--. 1 root root 0 4月 19 10:34 test2.txt
-rw-r--r--. 1 root root 0 4月 19 10:35 test3.txt
[root@cjl ~]# chown -R test:test testdir
[root@cjl ~]# ls -ld testdir
drwxr-xr-x. 2 test test 57 4月 19 10:35 testdir
[root@cjl ~]#
6.chgrp命令------修改文件与目录所属组群
通过使用chgrp命令修改组群名称或组群识别码的方式改变文件或目录的所属组群,修改命令如下
(1)改变文件的组群属性,将test01用户的所属组群属性由root更改为bin
[root@cjl ~]# ls -l test01
-rw-r--r--. 1 root root 0 4月 19 10:07 test01
[root@cjl ~]# chgrp -v bin test01
'test01' 的所属组已从 root 更改为 bin
[root@cjl ~]# ls -l test01
-rw-r--r--. 1 root bin 0 4月 19 10:07 test01
[root@cjl ~]#
(2)改变文件test01的组群属性,使得文件test01的组群属性和参考文件test01.txt的组群属性相同
[root@cjl ~]# ls -l test01*
-rw-r--r--. 1 root bin 0 4月 19 10:07 test01
-rw-r--r--. 2 test test 0 4月 1 19:46 test01.txt
[root@cjl ~]# chgrp --reference=test01.txt test01
[root@cjl ~]# ls -l test01*
-rw-r--r--. 1 root test 0 4月 19 10:07 test01
-rw-r--r--. 2 test test 0 4月 1 19:46 test01.txt
[root@cjl ~]#
(3)改变指定目录及其子目录的所有文件的组群属性
[root@cjl ~]# ls -l testdir/
总用量 0
-rw-r--r--. 1 test test 0 4月 19 10:33 test1.txt
-rw-r--r--. 1 test test 0 4月 19 10:34 test2.txt
-rw-r--r--. 1 test test 0 4月 19 10:35 test3.txt
[root@cjl ~]# chgrp -R bin testdir/
[root@cjl ~]# ls -l testdir/
总用量 0
-rw-r--r--. 1 test bin 0 4月 19 10:33 test1.txt
-rw-r--r--. 1 test bin 0 4月 19 10:34 test2.txt
-rw-r--r--. 1 test bin 0 4月 19 10:35 test3.txt
[root@cjl ~]#
(4)通过组群识别码来改变文件组群属性
[root@cjl ~]# tail -6 /etc/group
user02:x:5001:
user03:x:5002:
workgroup:x:5003:
workgroup-student:x:3000:user01
test:x:5004:
user:x:5005:
[root@cjl ~]# chgrp -R 3000 test01
[root@cjl ~]# ls -l test01
-rw-r--r--. 1 root workgroup-student 0 4月 19 10:07 test01
[root@cjl ~]#
三、su命令
使用su命令进行用户切换,相关命令如下
[root@cjl ~]# su user02
[user02@cjl root]$ su -
密码:
[root@cjl ~]# su - user03
[user03@cjl ~]$ exit
登出
四、文件和目录权限管理
4.1理解文件和目录的权限
用户可以使用ls -l或ll命令来显示文件的详细信息,其中包括文件或目录的权限,命令显示如下
[root@cjl ~]# vim file01.txt
aaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbb
-rw-------. 1 root root 980 3月 15 20:01 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 4月 19 11:27 file01
......
[root@cjl ~]#
4.2详解文件和目录的属性信息
1.第一组表示文件/目录类型权限
[root@cjl ~]# mkdir /home/student
[root@cjl ~]# ls -l /home
总用量 4
drwx------. 14 cjl cjl 4096 4月 19 11:26 cjl
drwxr-xr-x. 2 root root 6 4月 19 11:36 student
drwx------. 3 test test 78 4月 19 10:03 test
drwx------. 3 user user 78 4月 19 10:04 user
drwx------. 3 user01 user01 78 4月 12 10:50 user01
drwx------. 4 user02 user02 113 4月 19 11:12 user02
drwx------. 4 user03 user03 113 4月 19 11:11 user03
[root@cjl ~]#
2.第二组表示连接数
3.第三组表示文件/目录拥有者
4.第四组表示文件/目录所属组群
5.第五组表示文件/目录容量
6.第六组表示文件/目录最后被修改时间
[root@cjl ~]# ls -l --full-time
总用量 16
drwxr-xr-x. 2 root root 6 2024-03-22 11:32:31.562758467 +0800 公共
drwxr-xr-x. 2 root root 6 2024-03-22 11:32:31.562758467 +0800 模板
drwxr-xr-x. 2 root root 6 2024-03-22 11:32:31.562758467 +0800 视频
drwxr-xr-x. 2 root root 6 2024-03-22 11:32:31.562758467 +0800 图片
drwxr-xr-x. 2 root root 6 2024-03-22 11:32:31.562758467 +0800 文档
drwxr-xr-x. 2 root root 6 2024-03-22 11:32:31.562758467 +0800 下载
drwxr-xr-x. 2 root root 6 2024-03-22 11:32:31.562758467 +0800 音乐
drwxr-xr-x. 2 root root 6 2024-03-22 11:32:31.562758467 +0800 桌面
......
[root@cjl ~]#
7.第七组表示文件/目录名称
[root@cjl ~]# ls
公共 图片 音乐 cjl01 history.txt test01.txt testdir
模板 文档 桌面 error.txt temp test02.txt test.txt
视频 下载 anaconda-ks.cfg file01 test01 test03.txt welcome.txt
[root@cjl ~]# ls -a
. 图片 anaconda-ks.cfg .cache file01 .ssh test02.txt welcome.txt
.. 文档 .bash_history cjl01 history.txt .tcshrc test03.txt
公共 下载 .bash_logout .config .lesshsQ temp testdir
模板 音乐 .bash_profile .cshrc .lesshst test01 test.txt
视频 桌面 .bashrc error.txt .local test01.txt .viminfo
[root@cjl ~]#
4.3数字表示法修改文件和目录的权限
使用chmod命令修改文件和目录的权限
[root@cjl ~]# touch /mnt/test01
[root@cjl ~]# ls -l /mnt
总用量 0
-rw-r--r--. 1 root root 0 6月 26 2020 a01.txt
-rw-r--r--. 1 root root 0 6月 26 2020 a02.txt
-rw-r--r--. 1 root root 0 6月 26 2020 file01.txt
-rw-r--r--. 1 root root 0 6月 26 2020 file02.txt
-rw-r--r--. 1 root root 0 6月 26 2020 file03.txt
drwxr-xr-x. 2 root root 6 4月 19 11:43 test01
drwxr-xr-x. 2 root root 6 6月 26 2020 test02
[root@cjl ~]# chmod 664 /mnt/test01
[root@cjl ~]# ls -l /mnt
总用量 0
-rw-r--r--. 1 root root 0 6月 26 2020 a01.txt
-rw-r--r--. 1 root root 0 6月 26 2020 a02.txt
-rw-r--r--. 1 root root 0 6月 26 2020 file01.txt
-rw-r--r--. 1 root root 0 6月 26 2020 file02.txt
-rw-r--r--. 1 root root 0 6月 26 2020 file03.txt
drw-rw-r--. 2 root root 6 4月 19 11:43 test01
drwxr-xr-x. 2 root root 6 6月 26 2020 test02
[root@cjl ~]#
[root@cjl ~]# ls -al .tcshrc
-rw-r--r--. 1 root root 129 8月 11 2021 .tcshrc
[root@cjl ~]# chmod 777 .tcshrc
[root@cjl ~]# ls -al .tcshrc
-rwxrwxrwx. 1 root root 129 8月 11 2021 .tcshrc
[root@cjl ~]#
4.4文字表示法修改文件和目录的权限
1.文字表示法
以文字表示法修改文件权限时,使用chmod命令后,设置权限的命令如下
[root@cjl ~]# cat /root/test03.txt
aaaaaaaaaa
bbbbbbbbbb
cccccccccc
[root@cjl ~]# ls -l /root/test03.txt
lrwxrwxrwx. 1 root root 10 4月 1 19:53 /root/test03.txt -> test01.txt
[root@cjl ~]# chmod u=rwx,g=rw,o=rx /root/test03.txt
[root@cjl ~]# ls -l /root/test03.txt
lrwxrwxrwx. 1 root root 10 4月 1 19:53 /root/test03.txt -> test01.txt
[root@cjl ~]#
修改/mnt/test的权限时,要同时将/mnt/test目录下的所有文件权限都设置为所有人可以读取及写入,在/mnt/test目录下新建文件test01.txt、test02.txt、test3.txt,设置相关权限操作,执行相关命令如下
[root@cjl ~]# touch /root/aa /root/bb /root/cc
[root@cjl ~]# ls -l /root
总用量 24
-rw-r--r--. 1 root root 0 4月 28 19:59 aa
-rw-r--r--. 1 root root 0 4月 28 19:59 bb
-rw-r--r--. 1 root root 0 4月 28 19:59 cc
[root@cjl ~]# chmod a=rw /root/*
[root@cjl ~]# ls -l /root
总用量 24
-rw-rw-rw-. 1 root root 0 4月 28 19:59 aa
-rw-rw-rw-. 1 root root 0 4月 28 19:59 bb
-rw-rw-rw-. 1 root root 0 4月 28 19:59 cc
[root@cjl ~]#
如果目录中包含其他子目录,则必须使用-R参数来同时设置所有文件及子目录的权限,在/mnt/test目录下/aaa和/bbb,同时在子目录/aaa中新建文件user01.txt,在子目录/bbb中新建文件user02.txt,设置/mnt/test子目录及文件的权限为只读,设置相关权限操作,执行相关命令如下
[root@cjl ~]# mkdir /root/aaa
[root@cjl ~]# mkdir /root/bbb
[root@cjl ~]# touch /root/aaa/user01.txt
[root@cjl ~]# touch /root/bbb/user02.txt
[root@cjl ~]# ls -l /root
总用量 24
drwxr-xr-x. 2 root root 24 4月 28 20:06 aaa
drwxr-xr-x. 2 root root 24 4月 28 20:06 bbb
-rw-rw-rw-. 2 test test 34 4月 28 19:50 test01.txt
-rw-rw-rw-. 2 test test 34 4月 28 19:50 test02.txt
-rw-rw-rw-. 1 root root 0 4月 1 20:49 test.txt
[root@cjl ~]# chmod -R a=r /root
[root@cjl ~]# ls -l /root
总用量 24
dr--r--r--. 2 root root 24 4月 28 20:06 aaa
dr--r--r--. 2 root root 24 4月 28 20:06 bbb
-r--r--r--. 1 root root 0 4月 19 11:55 test02
-r-r--r--r--. 1 root root 0 4月 1 20:49 test.txt
-r--r--r--. 1 root root 0 4月 1 20:49 test.txt
[root@cjl ~]#
使用文字表示法的相关操作,当要设定一个文件的权限为-rwxrw-rw-时,其所表述的含义如下
执行命令如下
[root@cjl ~]# ls -l aa
-r--r--r--. 1 root root 0 4月 28 19:59 aa
[root@cjl ~]# chmod u=rwx,go=rw aa
[root@cjl ~]# ls -l aa
-rwxrw-rw-. 1 root root 0 4月 28 19:59 aa
[root@cjl ~]#
设定/mnt/bbb.txt文件,执行相关命令如下
[root@cjl ~]# ls -l /root
总用量 24
dr--r--r--. 2 root root 24 4月 28 20:06 aaa
dr--r--r--. 2 root root 24 4月 28 20:06 bbb
-r--r--r--. 1 root root 0 4月 1 20:49 test.txt
-r--r--r--. 1 root root 0 4月 19 11:55 test02
[root@cjl ~]# chmod a+w /root/bbb
[root@cjl ~]# ls -l /root
总用量 24
dr--r--r--. 2 root root 24 4月 28 20:06 aaa
dr--r--r--. 2 root root 24 4月 28 20:06 bbb
-r--r--r--. 1 root root 0 4月 1 20:49 test.txt
-r--r--r--. 1 root root 0 4月 19 11:55 test02
[root@cjl ~]#
要想去掉所有人的可执行权限,则可以执行如下命令
[root@cjl ~]# ls -al .bashrc
-r--r--r--. 1 root root 429 8月 11 2021 .bashrc
[root@cjl ~]# chmod a-x .bashrc
[root@cjl ~]# ls -al .bashrc
-r--r--r--. 1 root root 429 8月 11 2021 .bashrc
[root@cjl ~]#
4.5修改文件和目录的默认权限与隐藏权限
1.文件预设权限umask
[root@cjl ~]# umask
0022
[root@cjl ~]# umask -S
u=rwx,g=rx,o=rx
[root@cjl ~]#
[root@cjl ~]# umask
0022
[root@cjl ~]# touch user01-text.txt
[root@cjl ~]# mkdir user01-dir
[root@cjl ~]# ll -ld user01*
drwxr-xr-x. 2 root root 6 4月 25 20:33 user01-dir
-rw-r--r--. 1 root root 0 4月 25 20:33 user01-text.txt
[root@cjl ~]#
2.使用umask
root@cjl ~]# umask 002
[root@cjl ~]# umask
0002
[root@cjl ~]# mkdir /home/team01
root@cjl ~]# touch /home/team01/user01-test1.txt
[root@cjl ~]# ls -ld /home/team01
drwxrwxr-x. 2 root root 30 4月 25 20:45 /home/team01
[root@cjl ~]# ls -l /home/team1/user01-test1.txt
-rw-rw-r--. 1 root root 0 4月 26 11:02 /home/team01/user01-test1.txt
[root@cjl ~]#
3.设置文件隐藏属性
(1)chattr命令------修改文件属性
在/home/test01目录下,新建文件test01.txt,使用chattr命令进行相关操作,执行命令如下
[root@cjl ~]# mkdir /home/test01
[root@cjl ~]# touch /home/test01/test01.txt
[root@cjl ~]# ls -l /home/test01/test01.txt
-rw-rw-r--. 1 root root 0 4月 26 11:07 /home/test01/test01.txt
[root@cjl ~]# chattr +i /home/test01/test01.txt
[root@cjl ~]# ls -l /home/test01
总用量 0
-rw-rw-r--. 1 root root 0 4月 26 11:07 test01.txt
[root@cjl ~]# rm /home/test01/test01.txt
rm:是否删除普通空文件 '/home/test01/test01.txt'?
[root@cjl ~]#
从以上操作可以看出,即使是root用户也没有删除此新建文件的权限,将该文件的i属性取消后即可进行删除操作
,执行命令如下
[root@cjl ~]# chattr -i /home/test01/test01.txt
[root@cjl ~]# rm /home/test01/test01.txt
rm:是否删除普通空文件 '/home/test01/test01.txt'?
[root@cjl ~]# ls -l /home/test01/
总用量 0
-rw-rw-r--. 1 root root 0 4月 26 11:07 test01.txt
[root@cjl ~]#
(2)lsattr命令------显示文件隐藏属性
在/home/test01目录下,新建文件test01.txt,使用lsattr命令进行相关操作,执行命令如下
root@cjl ~]# touch /home/test01/test01.txt
[root@cjl ~]# chattr +aiS /home/test01/test01.txt
[root@cjl ~]# lsattr -a /home/test01/test01.txt
--S-ia---------------- /home/test01/test01.txt
[root@cjl ~]#
4.6文件访问控制列表
1.setfacl命令------设置ACL权限
使用setfacl命令管理ACL权限,执行命令如下
[root@cjl ~]# mkdir /home/share01
[root@cjl ~]# ls -ld /home/share01
drwxrwxr-x. 2 root root 6 4月 26 11:23 /home/share01
[root@cjl ~]#
[root@cjl ~]# setfacl -Rm u:user04:rwx /home/share01
查看
[root@cjl ~]# ls -ld /home/share01
drwxrwxr-x. 2 root root 6 4月 26 11:23 /home/share01
2.getfacl命令-----显示ACL权限
使用getfacl命令显示ACL权限,执行命令如下
[root@cjl ~]# getfacl /home/share01/
getfacl: Removing leading '/' from absolute path names
# file: home/share01/
# owner: root
# group: root
user::rwx
group::rwx
other::r-x
[root@cjl ~]# setfacl -x u:user04 /home/share01
[root@cjl ~]# getfacl -c /home/share01/
getfacl: Removing leading '/' from absolute path names
user::rwx
group::rwx
other::r-x
[root@cjl ~]#
五、文件权限管理实例配置
1.需求分析及情境应用
2.解决方案
(1)添加user-stu01与user-stu02用户账户及其属组,执行命令如下
[root@cjl ~]# groupadd stu
[root@cjl ~]# useradd -p 123456 -G stu user-stu01
[root@cjl ~]# useradd -p 123456 -G stu user-stu02
[root@cjl ~]# tail -3 /etc/group
stu:x:5006:user-stu01,user-stu02
user-stu01:x:5007:
user-stu02:x:5008:
[root@cjl ~]# tail -3 /etc/passwd
user:x:5004:5005::/home/user:/bin/bash
user-stu01:x:5005:5007::/home/user-stu01:/bin/bash
user-stu02:x:5006:5008::/home/user-stu02:/bin/bash
[root@cjl ~]# id user-stu01
用户id=5005(user-stu01) 组id=5007(user-stu01) 组=5007(user-stu01),5006(stu)
[root@cjl ~]# id user-stu02
用户id=5006(user-stu02) 组id=5008(user-stu02) 组=5008(user-stu02),5006(stu)
[root@cjl ~]#
(2)建立所需要的开发项目目录,执行命令如下
[root@cjl ~]# mkdir /home/share-stu
[root@cjl ~]# ls -ld /home/share-stu
drwxrwxr-x. 2 root root 6 4月 26 11:35 /home/share-stu
[root@cjl ~]#
(3)修改/home/share-stu目录的属性,且其他人均不可进入此目录,该目录的组群应该为stu,权限应为770才合理,执行命令如下
[root@cjl ~]# ls -ld /home/share-stu
drwxrwxr-x. 2 root root 6 4月 26 11:35 /home/share-stu
[root@cjl ~]# chgrp stu /home/share-stu
[root@cjl ~]# chmod 770 /home/share-stu
[root@cjl ~]# ls -ld /home/share-stu
drwxrwx---. 2 root stu 6 4月 26 11:35 /home/share-stu
[root@cjl ~]#
(4)先使用用户账户user-stu01建立文件test01.txt,再使用用户账户user-stu02进行处理,执行命令如下
[root@cjl ~]# umask
0002
[root@cjl ~]# su - user-stu01
[user-stu01@cjl ~]$ cd /home/share-stu
[user-stu01@cjl share-stu]$ touch test01.txt
[user-stu01@cjl share-stu]$ exit
注销
[root@cjl ~]# su - user-stu02
[user-stu02@cjl ~]$ cd /home//share-stu
[user-stu02@cjl share-stu]$ ls -l
总用量 0
-rw-r--r--. 1 user-stu01 user-stu01 0 4月 26 11:43 test01.txt
[user-stu02@cjl share-stu]$ echo "welcome" > test01.txt
-bash: test01.txt: 权限不够
[user-stu02@cjl share-stu]$ exit
注销
[root@cjl ~]#
(5)加入SGID的权限,并进行结果测试,执行命令如下
[root@cjl ~]# chmod 2770 /home/share-stu
[root@cjl ~]# ls -ld /home/share-stu
drwxrws---. 2 root stu 24 4月 26 11:43 /home/share-stu
[root@cjl ~]#
(6)结果测试,先使用用户账户user-stu01建立文件test02.txt,再使用用户账户user-stu02进行处理,使用用户账户user-stu02建立文件test03.txt,执行命令如下
[root@cjl ~]# su - user-stu01
[user-stu01@cjl ~]$ cd /home/share-stu
[user-stu01@cjl share-stu]$ touch test02.txt
[user-stu01@cjl share-stu]$ ls -l
总用量 0
-rw-r--r--. 1 user-stu01 user-stu01 0 4月 26 11:43 test01.txt
-rw-r--r--. 1 user-stu01 stu 0 4月 26 11:50 test02.txt
[user-stu01@cjl share-stu]$ exit
注销
[root@cjl ~]# su - user-stu02
[user-stu02@cjl ~]$ cd /home/share-stu
[user-stu02@cjl share-stu]$ echo "welcome" > test01.txt
-bash: test01.txt: 权限不够
[user-stu02@cjl share-stu]$ echo "welcome" > test02.txt
-bash: test02.txt: 权限不够
[user-stu02@cjl share-stu]$ cat test02.txt
[user-stu02@cjl share-stu]$ touch test03.txt
[user-stu02@cjl share-stu]$ ls -l
总用量 0
-rw-r--r--. 1 user-stu01 user-stu01 0 4月 26 11:43 test01.txt
-rw-r--r--. 1 user-stu01 stu 0 4月 26 11:50 test02.txt
-rw-r--r--. 1 user-stu02 stu 0 4月 26 11:53 test03.txt
[user-stu02@cjl share-stu]$ exit
注销
[root@cjl ~]# ls -ld /home/share-stu
drwxrws---. 2 root stu 60 4月 26 11:53 /home/share-stu
[root@cjl ~]#
share-stu]$ ls -l
总用量 0
-rw-r–r–. 1 user-stu01 user-stu01 0 4月 26 11:43 test01.txt
-rw-r–r–. 1 user-stu01 stu 0 4月 26 11:50 test02.txt
[user-stu01@cjl share-stu]$ exit
注销
[root@cjl ~]# su - user-stu02
[user-stu02@cjl ~]$ cd /home/share-stu
[user-stu02@cjl share-stu]$ echo “welcome” > test01.txt
-bash: test01.txt: 权限不够
[user-stu02@cjl share-stu]$ echo “welcome” > test02.txt
-bash: test02.txt: 权限不够
[user-stu02@cjl share-stu]$ cat test02.txt
[user-stu02@cjl share-stu]$ touch test03.txt
[user-stu02@cjl share-stu]$ ls -l
总用量 0
-rw-r–r–. 1 user-stu01 user-stu01 0 4月 26 11:43 test01.txt
-rw-r–r–. 1 user-stu01 stu 0 4月 26 11:50 test02.txt
-rw-r–r–. 1 user-stu02 stu 0 4月 26 11:53 test03.txt
[user-stu02@cjl share-stu]$ exit
注销
[root@cjl ~]# ls -ld /home/share-stu
drwxrws—. 2 root stu 60 4月 26 11:53 /home/share-stu
[root@cjl ~]#