组
在Linux中的每个用户必须属于一个组,不能独立于组外。在Linux中每个文件有所有者、所在组、其他组的概念。
- 用户: 用户与账户是同一概念,用于登录系统与区分资源权限,用户让系统变的更安全,同时也保护了用户的个人数字资产。
- 用户组: 用户组就是将用户分组,隶属用户自动拥有组权限,一个用户可隶属于多个组,用户可任意切换当前组,让用户权限管理变更轻松。
文件/目录 所有者
一般为文件的创建者,谁创建该文件,就默认为该文件的所有者。
查看文件的所有者:
ls -ahl
修改文件的所有者:
chown 用户名 文件名
文件/目录 所在组
当某个用户创建了一个文件后,这个文件的所在组就是该用户的所在组。
查看文件/目录所在组
ls -ahl
修改文件/目录的所在组:
chgrp 组名 文件名
[root@CentOS ~]# chgrp code Hello.java
[root@CentOS ~]# ls -ahl
-rw-r--r--. 1 tom code 118 11月 20 17:06 Hello.java
其他组
除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组。
改变用户所在组
在添加用户时,可以指定用户的组。
改变用户所在组:
usermod -g 新组名 用户名
# 改变该用户登录的初始目录(该用户要有该目录的权限)
usermod -d 目录名 用户名
权限
权限说明
0-9位说明
- 第0位: 确定文件类型,【
d
,-
,l
,c
,b
】-
:普通文件l
:链接,相当于Windows的快捷方式d
:目录,相当于Windows的文件夹c
:字符设备文件,鼠标、键盘b
:设备,比如硬盘
- 第1-3位: 所有者(该文件的所有者)拥有该文件的权限。—User
- 第4-6位: 所属组(同用户组)拥有该文件的权限。—Group
- 第7-9位: 其他用户拥有该文件的权限。—Other
Linux三种文件类型
- 普通文件: 包括文本文件、数据文件、可执行的二进制程序文件等。
- 目录文件: Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。
- 设备文件: Linux系统把每一个设备都看成是一个文件
rxw作用到文件
r
:可读(read),可以读取、查看w
:可写(write),可以修改,但不能删除,删除需要当前目录的可写权限x
:可执行(execute),可以被执行
rxw作用到目录
r
:可读(read),可以读取,通过ls查看目录内容w
:可写(write),可以修改,在目录内 创建(目录或文件)、删除、重命名目录x
:可执行(execute),可以进入该目录
修改权限
通过 chmod 命令,修改文件或目录的权限
u:所有者;g:所有组;o:其他人;a:所有人(u、g、o的总和)
使用 +
、-
、=
变更权限
chmod u=rwx,g=rx,o=x 文件/目录名
chmod o+w 文件/目录名
chmod a-x 文件/目录名
使用数字变更权限
- r = 4
- w = 2
- x = 1
- r + w = 6
- r + x = 5
- w + x = 3
- r + w + x = 7
chmod u=rwx,g=rx,o=x 文件/目录名
# ↑↑↑
# 相当于
# ↓↓↓
chmod 751 文件/目录名
修改文件所有者
# 改变所有者
chown newowner 文件/目录
# 改变所有者和所在组
chown newowner:newgroup 文件/目录
-R
:如果是目录,使其下所有子文件和目录递归生效
例如:
chown tom /home/abc.txt
chown -R tom /home/test
修改文件所在组
chgrp newgroup 文件/目录
-R
:如果是目录,使其下所有子文件和目录递归生效
例如:
chgrp testgroup /home/abc.txt
chgrp -R testgroup /home/test