Liunx权限(Centos7)

Liunx权限(Centos7)

一、概述

liunx是一个多用户、多任务的服务器操作系统,所以其提供了严格的权限管理机制,主要是从用户身份和文件权限两个方面对资源进行了限制。Linux基于用户身份对资源访问进行控制。

1.1 用户身份

1)用户账号的类别划分:

  • 超级用户:root,最高的权限用户
  • 普通用户:自定义用户、匿名用户类
  • 程序用户:控制程序和服务的,无法登陆

2)组账号的类别划分:

  • 基本组(私有组):伴随着用户创建而创建与用户同名,但创建一个用户的时候必有其组
  • 附加组(公有组):直接创建空组,可以添加已有的用户,给组设置权限,该组中所有用户都具备此权限

1.2 用户与组的UID与GID标识

  • UID : 用户标识号(默认情况下0标识root ; 1~999 表示系统程序用户;1000~60000表示登录的普通用户标识)
  • GID:用户组的标识
    图片: https://uploader.shimo.im/f/TgIQKbCuqHM970OE.png

二、用户身份相关liunx文件

2.1 /etc/passwd

该文件保存着用户名称、宿主的目录、登录Shell等基本信息
图片: https://uploader.shimo.im/f/F1yj79GCebAiiQY8.png
详解:

1.root——用户账号名称
2.x——使用加密算法加密的密码,这里是不会显示的
3.0——用户UID号
4.0——所属基本组账号的UID
5.root——用户全名,可以填写用户详细信息
6./root——宿主目录
7./bin/bash——指定用户的登录Shell

2.2 /etc/shadow

保存用户的密码、账号等有效信息
图片: https://uploader.shimo.im/f/Nk72AcsJnFkzGYuz.png
详解:

root——用户账号名称
*——表示加密算法加密的密码,登录输入该密码是无效的
18451——上次修改时间
0——密码的最短有效天数(0表示随时可以更改)
99999——密码的最长有效天数
7——提前7天提醒用户口令将过期
:::——表示的是密码和账号过期之后的操作处理(基本可以忽略)

三、管理用户命令

3.1 添加用户账号(useradd命令)

useradd命令参数选项

-u ——指定用户的UID号,且该UID号没有被其他用户使用
-d ——指定用户的宿主目录位置(与-M一起使用时不生效!)
-e ——账号失效时间(过期时间)
-g ——基本组
-G ——附加组
-M ——不创家目录
-s ——指定用户的登录shell

实例:useradd -d /opt/mike (-g mike) -G caiwu -s /sbin/nologin mike

[root@lsl ~]# useradd -d /opt/mike  -G caiwu -s /sbin/nolgin mike //注意需要先有caiwu组——groupadd caiwu
[root@lsl ~]# tail -2 /etc/passwd    //查看passwd文件最后两行信息
lsl:x:1000:1000:lsl:/home/lsl:/bin/bash
mike:x:1001:1001::/opt/mike:/sbin/nolgin
[root@lsl ~]# tail -2 /etc/group
caiwu:x:1002:mike
mike:x:1001:
[root@lsl ~]# tail -2 /etc/shadow
lsl:$6$aq3AU9oDZf/ERE2D$Ol.zBTLNqbsPDdsJYE0yU3Wa7EUU1SonR3rUQ616PsgA2u.DtQ99ecTUbdw2y2RhmlaL75WlcqMsfEUNretgb0:18192:0:99999:7:::
mike:!!:18200:0:99999:7:::
[root@lsl ~]# id mike    //查看mike的id信息
uid=1001(mike) gid=1001(mike) 组=1001(mike),1002(caiwu)
[root@lsl ~]# ls /home/  //因为-d 指定了用户的宿主目录,所以家目录创建在了指定的/opt/mike目录中
demo  lsl
[root@lsl ~]# ls /opt/
demo01.txt  mike  rh  test
[root@lsl ~]#

3.2 设置/更改用户密码 (passwd 命令)

passwd 选项 … 用户名

-d 清除密码
-l 锁定
-S 查看是否锁还是未锁 (大写!!!)
-u 解锁

实例:

[root@lsl ~]# useradd -d /opt/lisi -s /sbin/nologin lisi
[root@lsl ~]# tail -2 /etc/passwd
lsl:x:1000:1000:lsl:/home/lsl:/bin/bash
lisi:x:1001:1001::/opt/lisi:/sbin/nologin   //这里/sbin/nologin是表示用户无法登录
[root@lsl ~]# passwd lisi
更改用户 lisi 的密码 。
新的 密码:                                           //需要你输入密码
无效的密码: 密码少于 8 个字符           //因为输入了简单密码,可以继续输入一次也行,当然复杂密码就没问题
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@lsl ~]# su - lisi
最后一次失败的登录:四 10月 31 18:49:45 CST 2019从 :1:1 上
最有一次成功登录后有 1 次失败的登录尝试。
This account is currently not available.  // 无法登录,因为登录的shell是/sbin/nologin
[root@lsl ~]# pwd
/root
[root@lsl ~]# vim /etc/passwd              //进入passwd文件中将该用户的/sbin/nologin改为/bin/bash
[root@lsl ~]# su - lisi                          //root切换用户时不需要输入密码
上一次登录:四 10月 31 18:52:42 CST 2019pts/2 上
[lisi@lsl ~]$ pwd                               //登录lisi用户
/opt/lisi
[lisi@lsl ~]$ su   //相当于su - root  下面的结果表明普通用户切换root时需要密码,输入的密码不会显示
密码:
[root@lsl lisi]# pwd
/opt/lisi
[root@lsl lisi]# cd 
[root@lsl ~]# pwd                                    //表明切换到root用户
/root
[root@lsl ~]#passwd -l lisi              //锁定lisi的密码
锁定用户 lisi 的密码 。
passwd: 操作成功
[root@lsl ~]# passwd -S lisi             //查看lisi用户的密码状态
lisi LK 2019-10-31 0 99999 7 -1 (密码已被锁定。)
[root@lsl ~]# su - lisi
上一次登录:四 10月 31 19:01:10 CST 2019pts/2 上  
[lisi@lsl ~]$ pwd         //可以看出虽然被锁定了但是root可以切换登录且无需密码
/opt/lisi
[lisi@lsl ~]$ 
[root@lsl ~]# passwd -u lisi
解锁用户 lisi 的密码。
passwd: 操作成功
[root@lsl ~]# passwd -S lisi
lisi PS 2019-10-31 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

总结:

  • 其中/sbin/nologin 用户无法直接登录和被切换登录
  • 执行passwd -l lisi后用户被锁定,在图形用户界面是无法登录的,但是可以从root用户切换登录(而且root切换时不需要密码)

3.3 修改用户相关属性 (usermod 命令)

-c<备注>  修改用户帐号的备注文字。 
-d登入目录>  修改用户登入时的目录。 
-e<有效期限>  修改帐号的有效期限。 
-f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。 
-g<群组>  修改用户所属的群组。 
-G<群组>  修改用户所属的附加群组。 
-l<帐号名称>  修改用户帐号名称。 
-L  锁定用户密码,使密码无效。----- 相当于passwd -l
-s<shell>  修改用户登入后所使用的shell。 
-u<uid>  修改用户ID。 
-U  解除密码锁定。 ----- 相当于passwd -u

其中1-4与useradd类似,演示以下-l的操作

扫描二维码关注公众号,回复: 11628231 查看本文章
[root@lsl ~]# usermod -l zhangsan lisi
usermod: user lisi is currently used by process 71736
[root@lsl ~]# ps -ef | grep lisi
root      71735  71117  0 19:01 pts/2    00:00:00 su - lisi
lisi      71736  71735  0 19:01 pts/2    00:00:00 -bash
root      72433  71829  0 19:11 pts/2    00:00:00 su - lisi
lisi      72435  72433  0 19:11 pts/2    00:00:00 -bash
root      73325  72935  0 19:24 pts/2    00:00:00 grep --color=auto lisi
[root@lsl ~]# kill 71735   //也可以重启,自动就会结束进程
[root@lsl ~]# 
Session terminated, killing shell... ...已杀死。
[root@lsl ~]# exit
[root@lsl ~]# usermod -l zhangsan lisi
[root@lsl ~]# tail -2 /etc/passwd
mike:x:1001:1001::/opt/mike:/sbin/nolgin
zhangsan:x:1002:1003::/opt/lisi:/bin/bash  //只是把lisi用户名字改了但是家目录的名字还是lisi
[root@lsl ~]#ls /opt
demo01.txt  lisi  mike  rh  test   

3.4 删除用户账号 (userdel 命令)

-r 宿主目录一起删除

[root@lsl ~]# tail -2 /etc/passwd         //显示两个用户
mike:x:1001:1001::/opt/mike:/sbin/nolgin
zhangsan:x:1002:1003::/opt/lisi:/bin/bash
[root@lsl ~]# userdel -r mike             //删除mike用户并且“抄家”
[root@lsl ~]# tail -3 /etc/passwd  
tcpdump:x:72:72::/:/sbin/nologin
lsl:x:1000:1000:lsl:/home/lsl:/bin/bash
zhangsan:x:1002:1003::/opt/lisi:/bin/bash
[root@lsl ~]# ls -l /opt/mike             //表明-r的作用将指定的家目录删除
ls: 无法访问/opt/mike: 没有那个文件或目录
[root@lsl ~]# ls /opt                    //当前在/opt下有lisi家目录(名字在上面改成了zhangsan)
demo01.txt  lisi  rh  test
[root@lsl ~]# userdel -r zhangsan        //删除zhangsan用户,同时也会将lisi目录删除
[root@lsl ~]# tail -3 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
lsl:x:1000:1000:lsl:/home/lsl:/bin/bash
[root@lsl ~]# ls -l /opt                  //因删除了zhangsan用户且-r删除家目录,不加-r则不会删除
总用量 0
-rw-r--r--. 1 root root  0 10月 31 16:19 demo01.txt
drwxr-xr-x. 2 root root  6 3月  26 2015 rh
drwx-wx-wx. 2 root root 32 10月 31 18:33 test
[root@lsl ~]# useradd wang               //创建一个新的用户
[root@lsl ~]# usermod -l sung wang        //改用户名
[root@lsl ~]# tail -2 /etc/passwd         //查看passwd信息
lsl:x:1000:1000:lsl:/home/lsl:/bin/bash
sung:x:1001:1003::/home/wang:/bin/bash
[root@lsl ~]# userdel sung               //删除sung用户但是不会删除wang
[root@lsl ~]# ls /home/
demo  lsl  wang

3.5 用户初始配置文件

文件来源:新建用户账号是从/etc/skel目录中复制过来 (cd到家目录中用ls -a)

~/.bash_profile 表示进入bash后被加载
~/.bashrc 用户登录时被加载
~/.bash_logout 注销的时候执行

四、管理组命令

4.1 相关组账号文件(与用户账号文件类似)

/etc/group : 保存组账号基本信息
/etc/shadow: 保存组账号的密码信息(一般不会设置)

4.2 添加组账号(groupadd 命令)

groupadd 选项 组名
-g ——指定GID

[root@lsl ~]# groupadd lisi                   //添加lisi组
[root@lsl ~]# tail /etc/group                 //查看group信息
postdrop:x:90:
postfix:x:89:
stapusr:x:156:
stapsys:x:157:
stapdev:x:158:
tcpdump:x:72:
lsl:x:1000:
printadmin:x:985:
caiwu:x:1002:
lisi:x:1003:
[root@lsl ~]# groupadd -g 1005 wangwu       //添加wangwu组且给其配置GID为1005
[root@lsl ~]# tail -2 /etc/group
lisi:x:1003:
wangwu:x:1005:

4.3 添加组成员(gpasswd 命令)

-a 向组中添加一个用户 a不会覆盖
-d 从组中删除一个用户
-M 逗号分隔设置组的成员列表,会覆盖组成员,将原有的给踢出

实例:

[root@lsl ~]# tail -2 /etc/group                          //查看组信息
lisi:x:1003:
wangwu:x:1005:
[root@lsl ~]# tail -2 /etc/passwd                    //查看用户信息
tcpdump:x:72:72::/:/sbin/nologin
lsl:x:1000:1000:lsl:/home/lsl:/bin/bash
[root@lsl ~]# useradd lisi                                   //添加lisi用户会失败,因为上面显示lisi组已经存在
useradd:lisi 组已经存在 - 如果您想将此用户加入到该组,请使用 -g 参数。
[root@lsl ~]# useradd -g lisi lisi                         //将lisi用户添加到lisi组中
[root@lsl ~]# useradd zhangsan                        //再添加一个zhangsan用户
[root@lsl ~]# tail -2 /etc/passwd                      //查看用户信息
lisi:x:1001:1003::/home/lisi:/bin/bash
zhangsan:x:1002:1006::/home/zhangsan:/bin/bash
[root@lsl ~]# gpasswd -a lisi wangwu          //添加lisi到wangwu组中(先得有wangwu组)
正在将用户“lisi”加入到“wangwu”组中
[root@lsl ~]# id lisi                                        //查看lisi的UID
uid=1001(lisi) gid=1003(lisi) 组=1003(lisi),1005(wangwu)
[root@lsl ~]# gpasswd -d lisi wangwu          //从wangwu组中删除lisi
正在将用户“lisi”从“wangwu”组中删除
[root@lsl ~]# id lisi                         //查看lisi的UID,已经不属于wnagwu组了
uid=1001(lisi) gid=1003(lisi) 组=1003(lisi)

[root@lsl ~]# tail -5 /etc/passwd              //显示用户信息
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
lsl:x:1000:1000:lsl:/home/lsl:/bin/bash
lisi:x:1001:1003::/home/lisi:/bin/bash
zhangsan:x:1002:1006::/home/zhangsan:/bin/bash
[root@lsl ~]# tail -5 /etc/group                 //显示组信息
printadmin:x:985:
caiwu:x:1002:
lisi:x:1003:
wangwu:x:1005:
zhangsan:x:1006:
[root@lsl ~]# gpasswd -M lisi,zhangsan wangwu   //将两个用户批量添加到wangwu组中
[root@lsl ~]# tail -5 /etc/group
printadmin:x:985:
caiwu:x:1002:
lisi:x:1003:
wangwu:x:1005:lisi,zhangsan                         //查看到信息
zhangsan:x:1006:
[root@lsl ~]# useradd hh                         //添加两个新的用户,为了验证-M的覆盖功能
[root@lsl ~]# useradd ww
[root@lsl ~]# gpasswd -M hh,ww wangwu
[root@lsl ~]# tail -5 /etc/group
lisi:x:1003:
wangwu:x:1005:hh,ww                                //原本的lisi和zhangsan都被踢出去了
zhangsan:x:1006:
hh:x:1007:
ww:x:1004:

4.4 删除组成员 (groupdel 命令)

注意!!!不能使用 groupdel 命令随意删除组。此命令仅适用于删除那些 “不是任何用户初始组(主组 )” 的组,换句话说,如果有组还是某用户的初始组(主组),则无法使用 groupdel 命令成功删除
举例:

[root@lsl ~]# tail  -10 /etc/group                
stapdev:x:158:
tcpdump:x:72:
lsl:x:1000:
printadmin:x:985:
caiwu:x:1002:
lisi:x:1003:
wangwu:x:1005:hh,ww
zhangsan:x:1006:
hh:x:1007:
ww:x:1004:
[root@lsl ~]# groupdel caiwu 
[root@lsl ~]# groupdel lisi
groupdel:不能移除用户“lisi”的主组
[root@lsl ~]# groupdel wangwu 
[root@lsl ~]# groupdel zhangsan 
groupdel:不能移除用户“zhangsan”的主组
[root@lsl ~]# groupdel hh
groupdel:不能移除用户“hh”的主组
[root@lsl ~]# groupdel ww
groupdel:不能移除用户“ww”的主组
[root@lsl ~]# 

真要删除,可以将创建该组的初始组成员删除后再删除

[root@lsl note]# tail -1 /etc/passwd
ww:x:10000:10000::/home/ww:/bin/bash
[root@lsl note]# groupdel ww
groupdel:不能移除用户“ww”的主组
[root@lsl note]# userdel ww
[root@lsl note]# tail -1 /etc/group
zhangsan:x:1006:

查看最近的登录信息

[root@lsl ~]# lastb
lisi     :1           :1               Thu Oct 31 18:49 - 18:49  (00:00)    
root     pts/1                         Thu Oct 31 17:07 - 17:07  (00:00)    
root     :0           :0               Thu Oct 24 14:43 - 14:43  (00:00)    
root     :0           :0               Thu Oct 24 14:43 - 14:43  (00:00)    
root     :0           :0               Thu Oct 24 14:43 - 14:43  (00:00)    
btmp begins Thu Oct 24 14:43:01 2019

五、文件/目录的权限归属

5.1 访问权限

  • r(读取):允许查看文件内容、显示目录列表
  • w(写入):允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
  • x(可执行):允许运行程序、切换目录

5.2 归宿(所有权)

  • 属主:用于该文件或者目录的用户账号
  • 属组:用于该文件或目录的组账号

5.3 实例的介绍权限

[root@lsl ~]# ls -l
总用量 8
-rw-------. 1 root root 1785 10月 23 12:21 anaconda-ks.cfg
-rw-r--r--. 1 root root 1833 10月 23 12:24 initial-setup-ks.cfg
drwxr-xr-x. 4 root root   73 10月 30 22:03 note  //以此为例介绍

下面对drwxr-xr-x. 4 root root 73 10月 30 22:03 note 进行解释

d ——文件类型(d表示目录、l表示链接文件、c表示字符设备(输入输出)文件、b块设备(存储)文件 - 普通文件)
rwx 、 r-x、r-x分别代表是属主权限(这里表示可读可写可执行)、属组权限(这里表示可读可执行)、other权限(这里表示可读可执行)
4 ——子目录的数量
第一个root—— 属主
5.第二个 root ——属组
73——大小
10月 30 22:03 ——创建时间
note ——目录名(文件)

5.4 设置文件和目录的权限(chmod 命令 -R递归)

chmod 【ugoa】【+-=】【rwx】
chmod nnn 文件或目录(优先选择)

实例:

//下面是对文件的权限操作
[root@lsl note]# touch 2.sh    
[root@lsl note]# ls -l 2.sh                  //2.sh权限是644
-rw-r--r--. 1 root root 0 10月 31 21:41 2.sh 
[root@lsl note]# chmod u+x 2.sh 
[root@lsl note]# ls -l 2.sh 
-rwxr--r--. 1 root root 0 10月 31 21:41 2.sh
[root@lsl note]# chmod ugo+w 2.sh 
[root@lsl note]# ls -l 2.sh 
-rwxrw-rw-. 1 root root 0 10月 31 21:41 2.sh
[root@lsl note]# chmod 655 2.sh 
[root@lsl note]# ls -l 2.sh 
-rw-r-xr-x. 1 root root 0 10月 31 21:41 2.sh

//下面是对目录的权限操作
[root@lsl note]# ll                        //ll是ls -l --color 的别名
总用量 8
-rwxrwxrwx. 1 root root   0 10月 31 21:40 1.txt
-rw-r-xr-x. 1 root root   0 10月 31 21:41 2.sh
-rwxrwxrwx. 1 root root 286 10月 30 22:03 ifcfg-ens33
drwxrwxrwx. 2 root root  26 10月 23 13:20 linux-cmd
-rwxr-xr-x. 1 root root  30 10月 30 22:02 readme.txt
drwxrwxrwx. 2 root root 173 10月 30 21:56 shell
drwxr-xr-x. 2 root root   6 10月 31 21:38 test
[root@lsl note]# which ll         
alias ll='ls -l --color=auto'
    /usr/bin/ls
[root@lsl note]# chmod  777 test/      更改权限为777
[root@lsl note]# ll
总用量 8
-rwxrwxrwx. 1 root root   0 10月 31 21:40 1.txt
-rw-r-xr-x. 1 root root   0 10月 31 21:41 2.sh
-rwxrwxrwx. 1 root root 286 10月 30 22:03 ifcfg-ens33
drwxrwxrwx. 2 root root  26 10月 23 13:20 linux-cmd
-rwxr-xr-x. 1 root root  30 10月 30 22:02 readme.txt
drwxrwxrwx. 2 root root 173 10月 30 21:56 shell
drwxrwxrwx. 2 root root   6 10月 31 21:38 test
[root@lsl note]# touch test/1.sh
[root@lsl note]# ls -l test/1.sh 
-rw-r--r--. 1 root root 0 10月 31 21:50 test/1.sh   //目录的权限与其子目录与文件权限无关除非递归—R
[root@lsl note]# chmod 777 -R test/     //递归更改权限 即test和其子目录的所有文件权限都是777
[root@lsl note]# ls -l test/1.sh 
-rwxrwxrwx. 1 root root 0 10月 31 21:50 test/1.sh

如果给予属组和其他用户只有写权限(622),可以强制写入,但会覆盖原本的内容!

[root@lsl test]# pwd                             //当前所在目录的绝对路径
/opt/test
[root@lsl test]# ll                              //显示详细信息
总用量 8
-rw-r--r--. 1 root root 13 10月 31 16:33 1.txt        //除了root的其余用户权限为只读
-rw--w--w-. 1 root root 18 10月 31 18:33 2.txt         //除了root的其余用户权限为只写
[root@lsl test]# cat 1.txt 
tehsda
hello
[root@lsl test]# cat 2.txt                          //这边原本的2.txt的内容如下
231354
2222244878
[root@lsl lisi]# su - lisi                          //切换到lisi用户
上一次登录:四 10月 31 22:36:45 CST 2019pts/1 上
[lisi@lsl ~]$ cd /opt/test/
[lisi@lsl test]$ ll                                  //没有ls的权限
ls: 无法打开目录.: 权限不够
[lisi@lsl test]$ cat 1.txt                           //表示可以查看1.txt内容
tehsda
hello
[lisi@lsl test]$ vim 1.txt                          //尝试写入数据
[lisi@lsl test]$ cat 1.txt                           //可以wq!强制保存退出,结果是可以写入数据的
tehsda
hello
dada
asdaadas
[lisi@lsl test]$ cat 2.txt
cat: 2.txt: 权限不够
[lisi@lsl test]$ vim 2.txt
[lisi@lsl test]$ cat 2.txt                             //似乎强制写入数据之后就可以查看,因为属主是lisi,但如果                                                                           //属主是root用户在lisi用户登录时就无法查看
ssdad                                                           
dsawdad
[lisi@lsl test]$ ls -l 2.txt
-rw--w--w-. 1 lisi lisi 14 10月 31 22:45 2.txt
//使用echo命令重定向和追加形式写入数据到文本中
[lisi@lsl test]$ echo "123123" > 2.txt    
[lisi@lsl test]$ cat 2.txt
123123
[lisi@lsl test]$ echo "123456" >> 2.txt
[lisi@lsl test]$ cat 2.txt
123123
123456  
[lisi@lsl test]$ su 
密码:
[root@lsl test]# ls -l
总用量 8
-rw-r--r--. 1 lisi lisi 27 10月 31 22:43 1.txt
-rw--w--w-. 1 lisi lisi 14 10月 31 22:47 2.txt
[root@lsl test]# cat 2.txt 
123123
123456

5.5 设置文件和目录的归属 (chown 命令)

chown 属主
chown :属组
chown 属主:属组

实例

[root@lsl opt]# ls -l 
总用量 0
-rw-r--r--. 1 root root  0 10月 31 16:19 demo01.txt
drwxr-xr-x. 2 root root  6 3月  26 2015 rh
drwx-wx-wx. 2 root root 32 10月 31 22:45 test
[root@lsl opt]# chown lisi test    
[root@lsl opt]# ls -l                           
总用量 0
-rw-r--r--. 1 root root  0 10月 31 16:19 demo01.txt
drwxr-xr-x. 2 root root  6 3月  26 2015 rh
drwx-wx-wx. 2 lisi root 32 10月 31 22:45 test        //test目录自身属主变成lisi而属组未发生改变

[root@lsl opt]# chown root:lisi test
[root@lsl opt]# ls -l 
总用量 0
-rw-r--r--. 1 root root  0 10月 31 16:19 demo01.txt
drwxr-xr-x. 2 root root  6 3月  26 2015 rh
drwx-wx-wx. 2 root lisi 32 10月 31 22:45 test        //test目录自身属主变成root而属组变为lisi

[root@lsl opt]# chown :root test
[root@lsl opt]# ls -l 
总用量 0
-rw-r--r--. 1 root root  0 10月 31 16:19 demo01.txt
drwxr-xr-x. 2 root root  6 3月  26 2015 rh
drwx-wx-wx. 2 root root 32 10月 31 22:45 test        //test目录自身属组变为root

5.6 权限掩码umask

作用:控制新建的文件或者目录的权限——注意只是对新建的有效
默认权限去除umask的权限为

[root@lsl opt]# mkdir umasktest
[root@lsl opt]# umask 000 umasktest/
[root@lsl opt]# ll
总用量 0
-rw-r--r--. 1 root root  0 10月 31 16:19 demo01.txt
drwxr-xr-x. 2 root root  6 3月  26 2015 rh
drwx-wx-wx. 2 root lisi 32 10月 31 22:45 test
drwxrwxrwx. 2 root root  6 10月 31 23:26 umasktest
[root@lsl opt]# cd umasktest/
[root@lsl umasktest]# mkdir 2019
[root@lsl umasktest]# touch 1.txt
[root@lsl umasktest]# ll
总用量 0
-rw-rw-rw-. 1 root root 0 10月 31 23:26 1.txt             //文件权限为666
drwxrwxrwx. 2 root root 6 10月 31 23:26 2019              //目录权限为777

[root@lsl umasktest]# cd ..
[root@lsl opt]# umask  111 umasktest/                     //原本的1.txt和2019权限没有发生变化!
[root@lsl opt]# cd umasktest/
[root@lsl umasktest]# mkdir 2018
[root@lsl umasktest]# touch 2.txt
[root@lsl umasktest]# ll
总用量 0
-rw-rw-rw-. 1 root root 0 10月 31 23:26 1.txt
drw-rw-rw-. 2 root root 6 10月 31 23:28 2018            //目录权限为666
drwxrwxrwx. 2 root root 6 10月 31 23:26 2019
-rw-rw-rw-. 1 root root 0 10月 31 23:28 2.txt           // 2.txt权限为666

[root@lsl umasktest]# cd ..
[root@lsl opt]# umask  666 umasktest/
[root@lsl opt]# cd umasktest/
[root@lsl umasktest]# mkdir 2017
[root@lsl umasktest]# touch 3.txt
[root@lsl umasktest]# ll
总用量 0
-rw-rw-rw-. 1 root root 0 10月 31 23:26 1.txt
d--x--x--x. 2 root root 6 10月 31 23:29 2017              //目录权限为111
drw-rw-rw-. 2 root root 6 10月 31 23:28 2018
drwxrwxrwx. 2 root root 6 10月 31 23:26 2019
-rw-rw-rw-. 1 root root 0 10月 31 23:28 2.txt
----------. 1 root root 0 10月 31 23:29 3.txt            //文件3.txt权限全为0  
[root@lsl umasktest]# umask                          //查看umask值
0666

六、其他

6.1 查看linux下用户列表

# 查看用户
cat /etc/passwd

# 查看用户组
cat /etc/group

# 查看当前活跃的用户列表
w

# 命令优化
cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" '{ print $1"|"$3"|"$4 }'|more

猜你喜欢

转载自blog.csdn.net/qq_39657909/article/details/108398528