用户组群与文件目录权限管理

用户组群与文件目录权限管理

文章目录

一、用户账户

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  419 10:07 test01
[root@cjl ~]# chown test:root test01.txt
[root@cjl ~]# ls -l test01.txt
-rw-r--r--. 2 test root 0  41 19:46 test01.txt
[root@cjl ~]# 
(2)chown所接的新的属主和新的属组之间可以使用":“符号连接,属主和属组之一可以为空。如果属主为空,则应该是”: 属组";如果属组为空,则可以不用":"符号
[root@cjl ~]# ls -l test01.txt
-rw-r--r--. 2 test root 0  41 19:46 test01.txt
[root@cjl ~]# chown :test test01.txt
[root@cjl ~]# ls -l test01.txt
-rw-r--r--. 2 test test 0  41 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  419 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  419 10:33 test1.txt
-rw-r--r--. 1 root root 0  419 10:34 test2.txt
-rw-r--r--. 1 root root 0  419 10:35 test3.txt
[root@cjl ~]# chown -R test:test testdir
[root@cjl ~]# ls -ld testdir
drwxr-xr-x. 2 test test 57  419 10:35 testdir
[root@cjl ~]# 
6.chgrp命令------修改文件与目录所属组群
通过使用chgrp命令修改组群名称或组群识别码的方式改变文件或目录的所属组群,修改命令如下
(1)改变文件的组群属性,将test01用户的所属组群属性由root更改为bin
[root@cjl ~]# ls -l test01
-rw-r--r--. 1 root root 0  419 10:07 test01
[root@cjl ~]# chgrp -v bin test01
'test01' 的所属组已从 root 更改为 bin
[root@cjl ~]# ls -l test01
-rw-r--r--. 1 root bin 0  419 10:07 test01
[root@cjl ~]# 
(2)改变文件test01的组群属性,使得文件test01的组群属性和参考文件test01.txt的组群属性相同
[root@cjl ~]# ls -l test01*
-rw-r--r--. 1 root bin  0  419 10:07 test01
-rw-r--r--. 2 test test 0  41 19:46 test01.txt
[root@cjl ~]# chgrp --reference=test01.txt test01
[root@cjl ~]# ls -l test01*
-rw-r--r--. 1 root test 0  419 10:07 test01
-rw-r--r--. 2 test test 0  41 19:46 test01.txt
[root@cjl ~]# 
(3)改变指定目录及其子目录的所有文件的组群属性
[root@cjl ~]# ls -l testdir/
总用量 0
-rw-r--r--. 1 test test 0  419 10:33 test1.txt
-rw-r--r--. 1 test test 0  419 10:34 test2.txt
-rw-r--r--. 1 test test 0  419 10:35 test3.txt
[root@cjl ~]# chgrp -R bin testdir/
[root@cjl ~]# ls -l testdir/
总用量 0
-rw-r--r--. 1 test bin 0  419 10:33 test1.txt
-rw-r--r--. 1 test bin 0  419 10:34 test2.txt
-rw-r--r--. 1 test bin 0  419 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  419 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  315 20:01 anaconda-ks.cfg
-rw-r--r--. 1 root root                0  419 11:27 file01
......
[root@cjl ~]#

4.2详解文件和目录的属性信息

1.第一组表示文件/目录类型权限

[root@cjl ~]# mkdir /home/student
[root@cjl ~]# ls -l /home
总用量 4
drwx------. 14 cjl    cjl    4096  419 11:26 cjl
drwxr-xr-x.  2 root   root      6  419 11:36 student
drwx------.  3 test   test     78  419 10:03 test
drwx------.  3 user   user     78  419 10:04 user
drwx------.  3 user01 user01   78  412 10:50 user01
drwx------.  4 user02 user02  113  419 11:12 user02
drwx------.  4 user03 user03  113  419 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  626  2020 a01.txt
-rw-r--r--. 1 root root 0  626  2020 a02.txt
-rw-r--r--. 1 root root 0  626  2020 file01.txt
-rw-r--r--. 1 root root 0  626  2020 file02.txt
-rw-r--r--. 1 root root 0  626  2020 file03.txt
drwxr-xr-x. 2 root root 6  419 11:43 test01
drwxr-xr-x. 2 root root 6  626  2020 test02
[root@cjl ~]# chmod 664 /mnt/test01
[root@cjl ~]# ls -l /mnt
总用量 0
-rw-r--r--. 1 root root 0  626  2020 a01.txt
-rw-r--r--. 1 root root 0  626  2020 a02.txt
-rw-r--r--. 1 root root 0  626  2020 file01.txt
-rw-r--r--. 1 root root 0  626  2020 file02.txt
-rw-r--r--. 1 root root 0  626  2020 file03.txt
drw-rw-r--. 2 root root 6  419 11:43 test01
drwxr-xr-x. 2 root root 6  626  2020 test02
[root@cjl ~]# 
[root@cjl ~]# ls -al .tcshrc
-rw-r--r--. 1 root root 129  811  2021 .tcshrc
[root@cjl ~]# chmod 777 .tcshrc
[root@cjl ~]# ls -al .tcshrc
-rwxrwxrwx. 1 root root 129  811  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  41 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  41 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  428 19:59 aa
-rw-r--r--. 1 root root                0  428 19:59 bb
-rw-r--r--. 1 root root                0  428 19:59 cc
[root@cjl ~]# chmod a=rw /root/*
[root@cjl ~]# ls -l /root
总用量 24
-rw-rw-rw-. 1 root root                0  428 19:59 aa
-rw-rw-rw-. 1 root root                0  428 19:59 bb
-rw-rw-rw-. 1 root root                0  428 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  428 20:06 aaa
drwxr-xr-x. 2 root root               24  428 20:06 bbb
-rw-rw-rw-. 2 test test               34  428 19:50 test01.txt
-rw-rw-rw-. 2 test test               34  428 19:50 test02.txt
-rw-rw-rw-. 1 root root                0  41 20:49 test.txt
[root@cjl ~]# chmod -R a=r /root
[root@cjl ~]# ls -l /root
总用量 24
dr--r--r--. 2 root root               24  428 20:06 aaa
dr--r--r--. 2 root root               24  428 20:06 bbb
-r--r--r--. 1 root root                0  419 11:55 test02
-r-r--r--r--. 1 root root                0  41 20:49 test.txt
-r--r--r--. 1 root root                0  41 20:49 test.txt
[root@cjl ~]#

使用文字表示法的相关操作,当要设定一个文件的权限为-rwxrw-rw-时,其所表述的含义如下

执行命令如下

[root@cjl ~]# ls -l aa
-r--r--r--. 1 root root 0  428 19:59 aa
[root@cjl ~]# chmod u=rwx,go=rw aa
[root@cjl ~]# ls -l aa
-rwxrw-rw-. 1 root root 0  428 19:59 aa
[root@cjl ~]# 

设定/mnt/bbb.txt文件,执行相关命令如下

[root@cjl ~]# ls -l /root
总用量 24
dr--r--r--. 2 root root               24  428 20:06 aaa
dr--r--r--. 2 root root               24  428 20:06 bbb
-r--r--r--. 1 root root                0  41 20:49 test.txt
-r--r--r--. 1 root root                0  419 11:55 test02
[root@cjl ~]# chmod a+w /root/bbb
[root@cjl ~]# ls -l /root
总用量 24
dr--r--r--. 2 root root               24  428 20:06 aaa
dr--r--r--. 2 root root               24  428 20:06 bbb
-r--r--r--. 1 root root                0  41 20:49 test.txt
-r--r--r--. 1 root root                0  419 11:55 test02
[root@cjl ~]#

要想去掉所有人的可执行权限,则可以执行如下命令

[root@cjl ~]# ls -al .bashrc
-r--r--r--. 1 root root 429  811  2021 .bashrc
[root@cjl ~]# chmod a-x .bashrc
[root@cjl ~]# ls -al .bashrc
-r--r--r--. 1 root root 429  811  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  425 20:33 user01-dir
-rw-r--r--. 1 root root 0  425 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  425 20:45 /home/team01
[root@cjl ~]# ls -l /home/team1/user01-test1.txt
-rw-rw-r--. 1 root root 0  426 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  426 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  426 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  426 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  426 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  426 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  426 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  426 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  426 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  426 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  426 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  426 11:43 test01.txt
-rw-r--r--. 1 user-stu01 stu        0  426 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  426 11:43 test01.txt
-rw-r--r--. 1 user-stu01 stu        0  426 11:50 test02.txt
-rw-r--r--. 1 user-stu02 stu        0  426 11:53 test03.txt
[user-stu02@cjl share-stu]$ exit
注销
[root@cjl ~]# ls -ld /home/share-stu
drwxrws---. 2 root stu 60  426 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 ~]#


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值