文章目录
Linux—CentOS的组和权限
在 Linux 中,每个用户必须属于一个组,不能独立于组外;每个文件有所有者、所在组、其他组的概念。
1 文件/目录 所有者
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
1.1 查看文件的所有者
指令:ls -ahl
1.2 修改文件所有者
指令:chown 用户名 文件名
案例: 用户 fei 创建了一个文件 apple.txt,该文件的所有者为 fei,当用户 fei 尝试修改 apple.txt 文件的所有者时,会显示权限不够,需要切换到 root 用户进行修改。
1.3 组的创建
指令:groupadd 组名
案例:
-
创建一个组
monster
:groupadd monster
-
创建一个用户
fox
,并放入monster
组中:useradd -g monster fox
useradd -g 组名 用户名
:表示创建一个用户,并指定该用户的组。
2 文件/目录 所在组
指令:ls -ahl
案例: 使用 fox 用户创建一个文件,查看该文件属于哪个组
可以看到,fox 用户创建的 bal.txt 文件的所在组为 monster。
2.1 修改文件/目录所在的组
指令:chgrp 组名 文件名
案例: 使用 root 用户创建文件 orange.txt
,查看这个文件属于哪个组,然后将这个文件的所在组,修改到 fruit
组。
- 创建
fruit
组:groupadd fruit
- 创建
orange.txt
文件:touch orange.txt
- 查看这个文件属于哪个组:
ls -hl
- 修改组:
chgrp fruit orange.txt
3 其它组
除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组。
4 改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组,同样的使用 root
的管理权限可以改变某个用户所在的组。
指令:useradd -g 组名 用户名
4.1 改变用户所在组
指令:
-
usermod -g 新组名 用户名
-
usermod -d 目录名 用户名
改变该用户登录的初始目录,特别说明:用户需要有进入到新目录的权限
案例: 将 fox
用户从原来所在组,修改到 fruit
组
usermod -g fruit fox
5 权限的介绍
当我们使用 ls -l
查看文件时,显示如下内容:
-rw-r--r-- 1 root fruit 0 3月 6 16:45 orange.txt
对显示的内容进行介绍:位数从0开始计算
0-9位:-rw-r--r--
第 0 位: 确定文件类型(d, -, l, c, b)
l
是链接,相当于 windows 的快捷方式d
是目录,相当于 windows 的文件夹c
是字符设备,鼠标、键盘等b
是块设备,比如硬盘-
表示普通文件
第 1-3 位: 确定所有者(该文件的所有者)拥有该文件的权限 —User
第 4-6 位: 确定所属组(同用户组的)拥有该文件的权限 — Group
第 7-9 位: 确定其他用户拥有该文件的权限 —Other
5.1 rwx 权限详解
5.1.1 rwx 作用到文件
r
:代表可读(read
):可以读取,查看w
:代表可写(write
):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是,对该文件所在目录有写权限,才能删除该文件x
:代表可执行(execute
):可以被执行
5.1.2 rwx 作用到目录
r
:代表可读(read
):可以读取,可以使用 ls 查看目录内容w
:代表可写(write
):可以修改,可以在目录内创建文件,删除文件,还可以重命名目录x
:代表可执行(execute
):可以进入该目录
5.1.3 案例
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
前10个字符确定不同用户能对文件干什么
-
第一个字符代表文件类型:
- l d c b
-
其余字符每3个一组(rwx) 读® 写(w) 执行(x) :
-
第一组
rwx
: 文件拥有者的权限是读、写和执行 -
第二组
rw-
: 与文件拥有者同一组的用户的权限是读、写但不能执行 -
第三组
r--
: 不与文件拥有者同组的其他用户的权限是读,不能写和执行
-
可以用数字表示为:r = 4,w = 2,x = 1
,因此 rwx = 4+2+1=7
,数字可以进行组合
其他部分说明:
1
:文件:硬连接数;目录:子目录数
root
:用户
root
:组
1213
:文件大小(字节),如果是文件夹,显示 4060 字节
Feb 2 09:39
:最后修改日期
abc
:文件名
5.2 修改权限:chmod
通过 chmod
指令,可以修改文件或者目录的权限,主要有2种使用方式。
5.2.1 第一种方式:使用 +、-、= 变更权限
u
:所有者
g
:所有组
o
:其他人
a
:所有人(u、g、o
的总和)
-
chmod u=rwx,g=rx,o=x 文件/目录名
给
u -> rwx
的权限,g -> rx
的权限,o -> x
的权限 -
chmod o+w 文件/目录名
给 o 增加 w 权限
-
chmod a-x 文件/目录名
给 a 去掉 x 权限
5.2.2 第二种方式:通过数字变更权限
可以用数字表示为:r = 4,w = 2,x = 1
,因此 rwx = 4+2+1=7
,数字可以进行组合
chmod u=rwx,g=rx,o=x 文件/目录名
相当于 chmod 751 文件/目录名
6 修改文件所有者:chown
指令:
-
chown newowner 文件/目录
改变所有者
-
chown newowner:newgroup 文件/目录
改变所有者和所在组
-
chown -R newowner 目录
如果是目录,则使其下所有子文件或目录递归生效
案例:
-
将
/home/abc.txt
文件的所有者修改成tom
chown tom /home/abc.txt
-
将
/home/test
目录下所有的文件和目录的所有者都修改成tom
chown -R tom /home/test
7 修改文件/目录所在组:chgrp
指令:
-
chgrp newgroup 文件/目录
改变所在组
案例:
-
将
/home/abc.txt
文件的所在组修改成shaolin
groupadd shaolin
chgrp shaolin /home/abc.txt
-
将
/home/test
目录下所有的文件和目录所在的组都修改成shaolin
chgrp -R shaolin /home/test