二十、Linux组管理和权限管理

在Linux 中每个用户必须属于一个组,不能独立于组外。在Linux中每个文件有所有者、所在组、其他组的概念。在 Linux 系统中,组(Group) 是用户管理的重要部分,主要用于 权限控制,方便多个用户共享或限制对文件、目录的访问。

1. 文件/目录 所有者

一般为文件的创建者,谁创建了该文件/目录,谁就是其所有者。

查看文件的所有者ls -ahl

1
ls -ahl
  • 示例
1
2
3
4
5
6
7
[ryan@ryan home]$ ls -ahl
total 16K
drwxr-xr-x. 4 root root 4.0K Jan 24 06:03 .
dr-xr-xr-x. 18 root root 4.0K Jan 20 22:20 ..
drwx------. 15 ryan ryan 4.0K Feb 3 02:08 ryan
drwx------. 15 ryantwo ryantwo 4.0K Jan 18 23:29 ryantwo
[ryan@ryan home]$

ls -ahl 输出中,root root 其实是两个不同的字段,它们分别表示:

1
-rw-r--r--.  1 root root    0 Jan 24 05:58 new.pdf
字段 含义
root(第一个) 文件所有者(Owner),即哪个用户创建或拥有这个文件
root(第二个) 文件所在组(Group),即该文件归属于哪个用户组

修改文件所有者chown

1
chown 用户名 文件名
  • 示例
1
2
3
4
5
6
7
8
[root@ryan Documents]# ls -ahl
total 16K
-rw-r--r--. 1 root root 0 Jan 24 05:58 new.pdf
[root@ryan Documents]# chown ryan new.pdf
[root@ryan Documents]# ls -ahl
total 16K
-rw-r--r--. 1 ryan root 0 Jan 24 05:58 new.pdf
[root@ryan Documents]#

注意:修改文件所有者需要使用管理员权限。

2. 组的创建groupadd

基本指令

1
groupadd 组名

示例

(1)创建一个组为monster

1
[root@ryan ~]# groupadd monster

(2)创建一个用户jack,并放入到monster组中

1
2
3
4
[root@ryan ~]# useradd -g monster jack
[root@ryan ~]# id jack
uid=1002(jack) gid=1004(monster) groups=1004(monster)
[root@ryan ~]#

3. 文件/目录 所在组

当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组

查看文件/目录所在组

1
ls -ahl

示例

1
2
3
[root@ryan Documents]# ls -ahl
-rw-r--r--. 1 ryan root 0 Jan 24 05:58 new.pdf
[root@ryan Documents]#

显示的信息中的root列即为所在组。所以该文件所在组为root

修改文件/目录所在组chgrp

1
chgrp 组名 文件名

示例

1
2
3
4
[root@ryan Documents]# chgrp ryan new.pdf 
[root@ryan Documents]# ls -ahl
-rw-r--r--. 1 ryan ryan 0 Jan 24 05:58 new.pdf
[root@ryan Documents]#

4. 其它组

除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组

改变用户所在组usermod

在添加用户时,可以指定将该用户添加到哪个组中,同样的root的管理权限可以改变某个用户所在的组。

改变用户所在组

1
usermod -g 组名 用户名

改变该用户登录的初始目录

1
usermod -d 目录名 用户名   #

示例

1
2
3
4
[root@ryan ~]# usermod -g root ryan
[root@ryan ~]# id ryan
uid=1001(ryan) gid=0(root) groups=0(root)
[root@ryan ~]#

权限的基本介绍

ls -l指令显示的内容中:

1
-rwxrw-r--. 1 ryan root 152 Jan 24 06:13 filename

1. 详解

  1. -rwxrw-r--为 0~9位

(1)第0位(-)确定文件类型d, -, l, c, b

l:是链接文件,相当于widows的快捷方式

d:是目录

c:是字符设备文件,如:鼠标,键盘

b:是块设备,如硬盘

-:普通文件

(2)第1-3位(rwx)确定文件所有者(该文件的所有者)拥有该文件的权限。 –User

(3)第4-6位(rw-)确定所属组(同用户组的)拥有该文件的权限。 –Group

(4)第7-9位(r–)确定其它用户拥有该文件的权限。 –Other

(5)1:是文件时:表示硬连接数量; 是目录时:表示该目录的子目录数+文件数

(6)其它说明:

1)第一个ryan:表示用户(文件所有者)

2)第二个root:表示文件所在组

3)152:表示文件大小(以字节为单位),如果是文件夹,则显示4096

4)Jan 24 06:13:最后一次的修改日期

5)filename:表示文件名

2. rwx权限详解

rwx作用到文件

(1)r:代表可读(read),可以读取查看

(2)w:代表可写(write),可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件的所在目录有可写权限,才能删除该文件。

(3)x:代表可执行(execute),可以被执行的文件

rwx作用到目录

(1)r:代表可读(read),可以读取,ls查看目录内容

(2)w:代表可写(write),可以修改,对目录内创建+删除+重命名目录

(3)x:代表可执行(execute),可以进入该目录

修改权限 - chmod

基本说明

通过chmod指令,可以修改文件或者目录的权限。

第一种方式: +、 -、 = 变更权限

u:所有者

g:所在组

o:其他人

a:所有人(u、g、o的总和)

(1)chmod u=rwx, g=rx, o=x 文件/目录名

(2)chmod o+w 文件/目录名

(3)chmod a-x 文件/目录名 (解释:把所有人的x权限都去掉)