Linux笔记三 组管理、权限管理

本文详细介绍了Linux系统中的组管理和权限管理。包括如何使用groupadd、groupmod、gpasswd、groupdel命令进行组的创建、修改、删除,以及通过/etc/group和/etc/gshadow文件管理组信息。同时,讲解了用户权限的含义,chmod命令的用法,umask命令在设定文件默认权限中的作用。最后,提到了用户权限与文件、目录操作的关系。
摘要由CSDN通过智能技术生成


组管理及权限管理

  • 在Linux中每个文件都有一个自己的基本组,也可以同时拥有多个附加组
[root@jiangjiang ~]# id xiaohu
uid=1000(xiaohu) gid=1002(xiaohu) 组=1002(xiaohu),1656(xiaohei)
uid=用户id   gid=基本组id  组后面的xiaohei就是这个用户所在的组和附加组
  • 在Linux中文件都存在一种归属关系
    u 所有者:文件或目录的创建者,通常权限最大
    g 所属组:文件所属的组,一般来说权限仅次于所属者
    o 其他人:一般情况下权限最小

一、组管理

1.groupadd新建组

  • groupadd用于新建一个工作组,新建的工作组信息会被存储在/etc/group文件中
  • 命令格式:groupadd [-选项] 组名
  • 常用选项:-g 指定工作组的GID
创建一个工作组
[root@jiangjiang ~]# groupadd test
[root@jiangjiang ~]# cat /etc/group
...
test:x:1659:

新建一个gid为1213的工作组
[root@jiangjiang ~]# groupadd -g 1213 test1
[root@jiangjiang ~]# cat /etc/group 
...
test1:x:1213:

2./etc/group组信息文件

Linux系统中所有的组信息都存储在/etc/group文件中

当我们查看/etc/group文件可以看到
[root@jiangjiang ~]# cat /etc/group
test:x:1659:
test1:x:1213:
每个字段对应的有各自的含义(以冒号为间隔):
组名:组密码占位符:组id(gid):组内成员

3./etc/gshadoow组密码信息文件

类似用户的用户密码文件,组也有自己的组密码文件,而/etc/gshadow就是用来存放组密码的文件,同样的它也是任何人都没有任何权限(除root用户外)

当我们查看/etc/gshadow可以看到
[root@jiangjiang ~]# cat /etc/gshadow
test:!::
test1:!::
它每个字段也有不同的含义:
组名:组密码(当组密码为空或者!时 表示组没有密码):组内管理员(如果同时有多个管理员时会用,隔开):组内附加用户(有多个用户时也是用,隔开)

3.groupmod修改组属性

groupmod用于修改指定工作组的属性

  • 命令格式:groupmod [-选项] 组名
  • 常用选项:
    -g 修改组的gid
    -n 修改组名
修改gid
[root@jiangjiang ~]# groupmod -g 1111 test
[root@jiangjiang ~]# cat /etc/group
test:x:1111:
test1:x:1213:

修改组名
[root@jiangjiang ~]# groupmod -n dahei test
[root@jiangjiang ~]# cat /etc/group
test1:x:1213:
dahei:x:1111:

4.gpasswd组管理命令

gpasswd命令是/etc/group和/etc/gshadow文件的管理工具,用于将用户添加到指定组或者移出指定组
命令格式:gpasswd [-选项] 用户名 组名
常用选项:
-a 添加用户到指定组
-d 将指定用户移除指定组

创建多个用户
[root@jiangjiang ~]# useradd yh1
[root@jiangjiang ~]# useradd yh2
[root@jiangjiang ~]# useradd yh3
将用户添加到组内
[root@jiangjiang ~]# gpasswd -a yh1 test
正在将用户“yh1”加入到“test”组中
[root@jiangjiang ~]# gpasswd -a yh2 test
正在将用户“yh2”加入到“test”组中
[root@jiangjiang ~]# gpasswd -a yh3 test
正在将用户“yh3”加入到“test”组中
查看组文件信息
[root@jiangjaing ~]# cat /etc/group
...
test:x:1111:yh1,yh2,yh3

将用户从组删除
[root@jiangjiang ~]# gpasswd -d yh1 test
正在将用户“yh1”从“test”组中删除
[root@jiangjiang ~]# gpasswd -d yh2 test
正在将用户“yh2”从“test”组中删除
[root@jiangjiang ~]# gpasswd -d yh3 test
正在将用户“yh3”从“test”组中删除
查看组文件信息
[root@jiangjiang ~]# cat /etc/group
...
test:x:1111:

5.groupdel删除组命令

groupdel命令用于删除指定的工作组
命令格式:groupdel 组名

[root@jiangjiang ~]# groupdel test

二、用户权限管理

当我们查看一个文件的详细属性的时候可以看到

[root@jiangjiang /]# ll jinx.txt 
-rw-rw-r--. 1 root xiaohei 24 4月  30 03:46 jinx.txt

一个文件的详细属性他每个字段都有各自的含义,可以去查看我的第一篇笔记,里面具体有讲。

1.什么是权限

用户对于一个文件的权限取决了它能否去查看阅读编写以及执行这个文件
从上面查看文件的详细属性我们可以看到用户的权限
权限类别
r表示是否有读取该文件或目录的权限、w表示编写修改文件内容的权限、x表示执行文件的权限、’ - '表示没有权限。
权限顺序
它的排序为:rwxrwxrwx(所有人都拥有所有权限的情况下)
按照所有者,所属组,其他人的顺序排列

注:root用户可以修改系统内任何用户的文件权限,文件的所有者可以修改自己创建文件的权限

2.chmod修改用户权限命令

chmod(change mode)命令用于设置用户对指定文件的权限
命令格式:chmod [-选项] 归属关系+ - = 权限类别 文件…
常用选项:-R 递归修改目录下所有的子文件和子目录的权限与父目录相同
操作:+表示添加权限 -表示减去权限 =表示重新定义权限
在chmod命令中除了传统的增删重新定义权限,也可以用数字授权法

rwx-
4210

没有权限则为0
所有者:rwx 4+2+1=7
所属组:rw- 4+2+0=6
其他人:r-- 4+0+0=4
任何人都没有任何权限是就是000

新建一个文件并查看详细属性
[root@jiangjiang /]# touch 1.txt
[root@jiangjiang /]# ll 1.txt 
-rw-r--r--. 1 root root 0 5月  18 03:14 1.txt

给所有者添加执行权限并查看文件详细属性
[root@jiangjiang /]# chmod u+x 1.txt 
[root@jiangjiang /]# ll 1.txt 
-rwxr--r--. 1 root root 0 5月  18 03:14 1.txt

给所属组减去读取权限并查看文件详细属性
[root@jiangjiang /]# chmod g-r 1.txt 
[root@jiangjiang /]# ll 1.txt 
-rwx---r--. 1 root root 0 5月  18 03:14 1.txt

重新定义其他人权限为拥有所有权限并查看详细属性
[root@jiangjiang /]# chmod o=rwx 1.txt 
[root@jiangjiang /]# ll 1.txt 
-rwx---rwx. 1 root root 0 5月  18 03:14 1.txt

用数字授权法将文件的属性修改为所有人都没有任何权限并查看详细属性
[root@jiangjiang /]# chmod 000 1.txt 
[root@jiangjiang /]# ll 1.txt 
----------. 1 root root 0 5月  18 03:14 1.txt

创建一个目录并在目录中创建一个文件并查看它们的详细属性
[root@jiangjiang /]# mkdir heihei
[root@jiangjiang /]# touch /heihei/dahei.txt
[root@jiangjiang /]# ll -d heihei/
drwxr-xr-x. 2 root root 23 5月  18 03:24 heihei/.
[root@jiangjiang /]# ll /heihei/dahei.txt 
-rw-r--r--. 1 root root 0 5月  18 03:24 /heihei/dahei.txt

修改目录及子文件权限拥有所有权限
[root@jiangjiang /]# chmod -R 777 /heihei/ 
[root@jiangjiang /]# ll -d /heihei/
drwxrwxrwx. 2 root root 23 5月  18 03:24 /heihei/

注意:当一个普通用户拥有一个文件的rwx权限的时候,它可以删除任何人创建的文件(包括root用户创建的文件)。

同时用户对文件的权限与用户对目录的权限有着一些差别
用户对文件拥有rwx权限:
r:表示用户可以读取该文件
w:表示用户可以编写该文件并对里面的内容进行修改、删除,但是并不能删除文件本身。删除文件是本身是取决于用户对该文件的父目录有没有rwx权限
x:执行文件

用户对目录拥有rwx权限:
r:表示用户能够查看该目录下的内容
w:表示用户拥有在该目录下创建文件,修改文件,删除任何文件(包括root的)的权限
x:表示用户是否能够切换到该目录

3.umask权限预设命令

当我们创建一个文件或者目录的时候,系统会根据以及预设默认掩码来给文件或目录授予权限,umask就是用于显示或者设置创建文件的默认掩码。
命令格式:umask [-选项] mode
常用选项:
-S 用归属关系来表示默认掩码
-p用数字方式表示默认掩码

当我们用umask命令查看默认权限
[root@jiangjiang ~]# umask
0022

这个时候我们可以看到umask值是0022,第一个0我们先不去追究这是一个特殊权限;第二个0则是代表着所有者u的权限;第三个2代表的是所属组g的权限;第四个2则表示其他人o的权限,为什么会是这样一串数字呢,因为这个umask值它用的是权限数字去除法:

上面说过用数字授权法的话一个归属关系拥有rwx权限的话就是数字7,但是同chmod命令中不同的是,umask值用的是减法,即0022表示的就是:

特殊权限所有者所属组其他人
0022
\7-07-27-2

所有者拥有完整的rwx权限;所属组拥有rx权限减去了w权限;其他人拥有的也是减去了w的rx权限。

查看默认掩码,以数字方式表示
[root@jiangjiang ~]# umask -p
umask 0022

查看默认掩码,以归属关系表示
[root@jiangjiang ~]# umask -S
u=rwx,g=rx,o=rx

为所属组添加写权限
[root@jiangjiang ~]# umask g+w
[root@jiangjiang ~]# mkdir xiaoheizi
[root@jiangjiang ~]# ll -d xiaoheizi/
drwxrwxr-x. 2 root root 6 5月  18 04:17 xiaoheizi/

去除所属组写权限
[root@jiangjiang ~]# umask g-w
[root@jiangjiang ~]# mkdir kaituan
[root@jiangjiang ~]# ll -d kaituan/
drwxr-xr-x. 2 root root 6 5月  18 04:18 kaituan/

总结

今天就到这里,下一部分会写归属关系的管理及特殊权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值