【Linux】——文件/目录的权限管理

1. 查询用户登录

1.1 查询用户所属组group

groups命令

● 查询用户所属的组

groups命令格式:groups [用户名]

groups [用户名]命令:查看指定用户所属组

[root@clr ~]# gpasswd -a zhangsan root  #将用户zhangsan添加到root组中
正在将用户“zhangsan”加入到“root”组中
[root@clr ~]# gpasswd -a zhangsan mygirl  #将用户zhangsan添加到mygirl组中
正在将用户“zhangsan”加入到“mygirl”组中

[root@clr ~]# groups zhangsan  #查看用户zhangsan所属的组
zhangsan : zhangsan root mygirl

1.2 查询用户身份标识id

id命令

查询用户身份标识

id命令格式:id [用户名]

id [用户名]命令:查看指定用户的身份标识

[root@clr ~]# id zhangsan  #查看用户zhangsan的身份标识
uid=2004(zhangsan) gid=2004(zhangsan)=2004(zhangsan),0(root),2345(mygirl)

1.3 查询用户账号登录属性finger

● 查询用户账号的登录属性

注意:

需要先进行安装finger软件包

finger命令格式:finger [用户名]

finger [用户名]命令:查询指定用户账户的登录属性

[root@clr /etc/yum.repos.d]# finger zhangsan  #查询用户账户zhangsan的登录属性
Login: zhangsan       			Name: 
Directory: /home/zhangsan           	Shell: /bin/bash
Never logged in.
No mail.
No Plan.

[root@clr /etc/yum.repos.d]# finger gaozhenyang #查询用户账户gaozhenyang的登录属性
Login: gaozhenyang    			Name: 
Directory: /home/gaozhenyang        	Shell: /bin/bash
Last login 日 42 20:28 (CST) on pts/1
No mail.
No Plan.

1.4 查询已登录主机用户信息w、who、user

w 、 who、users命令

● 查询已登录到主机的用户信息

w、who、users命令:查询登录到主机的用户信息

[root@clr ~]# w  #查询登录到主机的用户信息有3个
 23:35:17 up  6:27,  3 users,  load average: 0.02, 0.08, 0.07
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     :0       :0               20:47   ?xdm?   3:38   0.35s /usr/libexec/gnome-session-binary --session gn
root     pts/1    192.168.80.1     19:45    2:47m  0.43s  0.16s -bash
root     pts/2    192.168.80.1     20:47    5.00s  0.62s  0.07s w

[root@clr ~]# who  #查询登录到主机的用户信息有3个
root     :0           2023-04-02 20:47 (:0)
root     pts/1        2023-04-02 19:45 (192.168.80.1)
root     pts/2        2023-04-02 20:47 (192.168.80.1)

[root@clr ~]# users #查询登录到主机的用户名
root root root

2.文件/目录的权限和归属

访问权限

● 读取r:允许查看文件内容显示目录列表

● 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录

● 可执行x:允许运行程序、切换目录

归属(所有权)

● 属主:拥有该文件或目录的用户帐号

● 属组:拥有该文件或目录的组帐号

在这里插入图片描述

2.1 设置文件和目录的权限chmod

在这里插入图片描述

chmod [nnn] 文件或目录命令:修改指定文件或目录的权限

[root@clr ~]# touch clr.txt  #创建文件clr.txt
[root@clr ~]# ll
总用量 12
-rw-r--r--. 1 root root    0 43 00:06 clr.txt  #clr.txt默认文件权限为644
[root@clr ~]# chmod 755 clr.txt  #修改clr.txt文件权限为755
[root@clr ~]# ll
总用量 12
-rwxr-xr-x. 1 root root    0 43 00:06 clr.txt
[root@clr ~]# chmod a+r clr.txt #给所有用户赋予对文件clr.txt的可读权限
[root@clr ~]# ll
总用量 12
-rwxr-xr-x. 1 root root    0 43 00:06 clr.txt

[root@clr ~]# chmod +x clr.txt   #给所有用户赋予对文件clr.txt的可执行权限
[root@clr ~]# ll
总用量 12
-rwxr-xr-x. 1 root root    0 43 00:06 clr.txt
[root@clr ~]# chmod +w clr.txt #给所有用户赋予对文件clr.txt的可写权限(写的情况比较特殊,需要指定对所有用户a+w,而读和可执行的情况,则直接+r 或者 +x 即可)
[root@clr ~]# ll
总用量 12
--w-------. 1 root root    0 43 00:06 clr.txt
[root@clr ~]# chmod go+r clr.txt  #给组和其他用户赋予对文件clr.txt的可读权限
[root@clr ~]# ll
总用量 12
----r--r--. 1 root root    0 43 00:06 clr.txt
[root@clr ~]# chmod ug+rw clr.txt  #给用户所有者和所属组赋予对文件clr.txt的可读可写权限
[root@clr ~]# ll
总用量 12
-rw-rw-r--. 1 root root    0 43 00:06 clr.txt
[root@clr ~]# chmod ugo=rw clr.txt  #给用户所有者和所属组以及其他用户赋予对文件clr.txt的可读可写和可执行权限
[root@clr ~]# ll
总用量 12
-rw-rw-rw-. 1 root root    0 43 00:06 clr.txt

chmod -R [nnn] 目录命令:递归修改指定目录下所有子目录权限

在这里插入图片描述

2.2 设置文件和目录的归属chown

在这里插入图片描述

[root@clr ~]# ll
总用量 12
-rw-rw-rw-. 1 root root    0 43 00:06 clr.txt

[root@clr ~]# chown zhangsan clr.txt #修改文件clr.txt的属主为zhangsan
[root@clr ~]# ll
总用量 12
-rw-rw-rw-. 1 zhangsan root    0 43 00:06 clr.txt
root@clr ~]# chown :admin1 clr.txt #修改文件clr.txt的属组为admin1
[root@clr ~]# ll
总用量 12
-rw-rw-rw-. 1 zhangsan admin1    0 43 00:06 clr.txt

chgrp 【属组##】文件或目录:修改文件或目录的属组为##

[root@clr ~]# touch demon  #创建demon文件
[root@clr ~]# chgrp xiaozhang demon  #修改文件demon的属组为xiaozhang
[root@clr ~]# ll
总用量 12
-rw-r--r--. 1 root     xiaozhang    0 43 14:01 demon
[root@clr ~]# chown xiaozhang.xiaowang demon #修改文件demon的属主为xiaozhang,属组为xiaowang
[root@clr ~]# ll
总用量 12
-rw-r--r--. 1 xiaozhang xiaowang    0 43 14:01 demon
[root@clr ~]# touch abc.txt #创建文件abc.txt
[root@clr ~]# chown zhangsan:  abc.txt  #修改文件abc.txt的属主和属组都为zhangsan(当属主和属组都为同一用户时,可以使用简写形式zhangsan:效果和zhangsan:zhangsan相同)
[root@clr ~]# ll
总用量 12
-rw-r--r--. 1 zhangsan  zhangsan    0 43 14:14 abc.txt

2.3 特殊权限SBIT(t)

SBIT权限只能用于对目录进行设置,使指定目录中的文件或者目录只有所有者才能删除文件或者目录

没有添加SBIT权限的情况

[root@clr /opt]# mkdir test  #root用户创建test目录
[root@clr /opt]# chmod 777 test  #修改目录test的权限为777
[root@clr /opt]# ll
总用量 2104
drwxrwxrwx. 2 root        root              6 43 16:02 test

[root@clr /opt]# su xiaocai #切换到xiaocai用户
[xiaocai@clr /opt]$ touch test/abc.txt  #xiaocai用户在test目录下创建文件abc.txt
[xiaocai@clr /opt]$ ll test
总用量 0
-rw-rw-r--. 1 xiaocai xiaocai 0 43 16:05 abc.txt  

[xiaocai@clr /opt]$ su gaozhenyang #切换到gaozhenyang用户
密码:
[gaozhenyang@clr /opt]$ rm -f test/abc.txt  #在该用户下删除test目录下的abc.txt
[gaozhenyang@clr /opt]$ ll test #查看结果,删除成功
总用量 0

添加SBIT权限的情况

[root@clr /opt]# chmod 1777 test  #1777中的1代表添加SBIT权限,并修改test目录的权限为777
[root@clr /opt]# ll
总用量 2104
drwxrwxrwt. 2 root        root              6 43 16:06 test

[root@clr /opt]# su xiaocai #切换到用户xiaocai
[xiaocai@clr /opt]$ touch test/abc.txt  #用户xiaocai在test目录下创建文件abc.txt
[xiaocai@clr /opt]$ ll
总用量 2104
drwxrwxrwt. 2 root        root             21 43 16:17 test  #第一个字段中最后一个t代表添加了添加SBIT权限

[xiaocai@clr /opt]$ su gaozhenyang #切换到gaozhenyang用户
密码:
[gaozhenyang@clr /opt]$ rm -f test/abc.txt  #其他用户不允许执行删除操作
rm: 无法删除"test/abc.txt": 不允许的操作

[gaozhenyang@clr /opt]$ su xiaocai  #再次切换到xiaocai用户
密码:
[xiaocai@clr /opt]$ rm -f test/abc.txt  #xiaocai用户可以执行删除操作
[xiaocai@clr /opt]$ ll test
总用量 0

2.4 设置目录和文件的默认权限umask

umask作用

控制新建的文件或者目录的权限

新建的文件或者目录的权限为默认最大权限减去umask

普通文件的最大默认权限为6(rw),目录的最大默认权限为7(rwx)

umask的默认权限002

umask设置: umask 022

umask查看: umask

[xiaocai@clr /opt]$ cd test  #切换到test目录
[xiaocai@clr /opt/test]$ ll
总用量 0
[xiaocai@clr /opt/test]$ touch 1.txt #在test目录中创建文件1.txt
[xiaocai@clr /opt/test]$ mkdir abc  #在test目录中创建目录abc
[xiaocai@clr /opt/test]$ ll
总用量 0
-rw-rw-r--. 1 xiaocai xiaocai 0 43 16:36 1.txt #文件1.txt的权限为664(由来:文件默认权限666-002=664)
drwxrwxr-x. 2 xiaocai xiaocai 6 43 16:36 abc  #目录abc的权限为775(由来:目录默认权限777-002=775)
[xiaocai@clr /opt/test]$ umask  
0002   #文件和目录的umask权限为002

修改umask 000

[xiaocai@clr /opt/test]$ rm -rf * #删除test目录下的所有文件和目录
[xiaocai@clr /opt/test]$ ll
总用量 0
[xiaocai@clr /opt/test]$ umask 000 #修改umask的权限为000
[xiaocai@clr /opt/test]$ touch 1.txt
[xiaocai@clr /opt/test]$ mkdir abc
[xiaocai@clr /opt/test]$ ll
总用量 0
-rw-rw-rw-. 1 xiaocai xiaocai 0 43 16:46 1.txt #新创建的1.txt文件权限为666
drwxrwxrwx. 2 xiaocai xiaocai 6 43 16:46 abc   #新创建的abc目录权限为777

查询系统中是否存在某个用户(grep、id)

[xiaocai@clr /opt/test]$ grep zhangsan /etc/passwd #若能过滤中相关信息,则证明该用户存在,否则则表示系统中不存在该用户
zhangsan:x:2004:2004::/home/zhangsan:/bin/bash

[xiaocai@clr /opt/test]$ id zhangsan #查询系统中zhangsan的id号信息
uid=2004(zhangsan) gid=2004(zhangsan)=2004(zhangsan),0(root),2345(mygirl)

猜你喜欢

转载自blog.csdn.net/cailirong123/article/details/129936831