Linux中的每个用户必须属于一个组,不能独立于组外,在Linux中的每个文件有所有者、所在组、其他组的概念。
一、所有者、所在组和其他组
文件由哪个用户创建,该文件的所有者就是该用户,该文件的所在组就是所有者的组,该组内的其他用户对该文件有一定的权限。其他组内的用户对于该文件称为其他组。
如图,张三创建了 hello.txt ,hello.txt 的所有者就是张三,组一为hello.txt 的所在组,组二和组三为 hello.txt 的其他组。
1、文件/目录所有者
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者
相关操作:
查看文件的所有者:ls -ahl
示例:第一列代表该文件/目录的所有者
修改文件的所有者:chown 用户名 文件名
示例:使用root 创建一个cat.txt 文件,然后将其所有者修改成 goose
2、组的创建
基本指令:groupadd 组名
示例:
创建一个组 monster
创建一个用户 fox,并放入到组 monster 中
3、文件/目录所在组
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。
查看文件/目录所在组:ls -ahl
示例:
使用fox 创建文件fox.txt ,查看fox.txt属于哪个组
使用fox创建,fox属于monster组,所以fox.txt 所在组为 monster
修改文件所在组:chgrp 组名 文件名
示例:
使用root用户创建文件 orange.txt ,查看该文件属于哪个组,修改该文件所在组到 fruit
4、其他组
除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
5、改变用户所在组
添加用户时,可以指定将该用户添加到哪个组中,同样的用root 的管理权限可以改变某个用户所在的组。
改变用户所在组:
usermod -g 新组名 用户名
usermod -g 目录名 用户名:改变该用户登录的初始目录
注意:该用户要有进入到该目录的权限
示例:
将 lisi 这个用户从原来的组改到 wangwu所在的组
二、权限的基本介绍
1、权限位说明
以 drwxr-xr-x. 2 root root 4096 2月 25 16:17 aaa 为例
1.d rwx r-x r-x
第0位确定文件类型(d,-,l,c,b)
l:是链接,相当于Windows的快捷方式
d:是目录,相当于Windows的文件夹
c:是字符设备文件,鼠标键盘等
b:是块设备,如硬盘
-:是普通文件
第1-3位确定所有者(文件的所有者)拥有该文件的权限——User
第4-6位确定所属组(同用户组)拥有该文件的权限——Group
第7-9位确定其他用户拥有该文件的权限——Other
rwx作用到文件
r:表示可读,查看
w:表示可修改,即可写,但不代表可以删除该文件,删除一个文件的前提是对该文件所在的目录有写权限,才能删除该文件
x:表示可执行
rwx作用到目录
r:表示可读,ls查看内容
w:表示可修改,对目录内创建、删除、重命名目录
x:表示可进入该目录
2.2
drwxr-xr-x. 2 root root 4096 2月 25 16:17 aaa中的 2
对于文件表示硬连接数
对于目录表示子目录数和文件数的总和
3.两个root
第一个root表示创建该文件的用户即所有者
第二个root表示该文件所在组
4.文件大小
4096:该位置表示文件大小,以字节为单位
如果是目录则显示 4096,此处aaa就是一个目录
5.日期
2月 25 16:17表示文件或目录的最后修改日期
6.文件名
aaa表示文件名或目录名
2、修改权限
通过chmod命令,可以修改文件或目录的权限
1.第一种方式:+、-、=变更权限
u:所有者
g:所有组
o:其他人
a:所有人(u、g、o的总和)
- chmod u=rwx,g=rx,o=x 文件/目录名:为对应的内容赋予对应的权限
- chmod o+w 文件/目录名:为o增加w权限
- chmod a-x 文件/目录名:为a剥去x权限
示例:
给hello.txt文件 的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限。
给hello.txt文件的所有者除去执行的权限,增加组写的权限
给hello.txt文件的所有用户添加读的权限
2.第二种方式:通过数字变更权限
r=4,w=2,x=1,rwx = 4+2+1=7
chmod u=rwx,g=rx,o=x 文件/目录名 相当于 chmod 751 文件/目录名
示例:
将 /home/hello.txt 文件的权限修改成 -rwxr-xr-x,使用给数字的方式实现
3、修改文件/目录所有者
chown newowner 文件/目录 : 改变所有者
chown newowner:newgroup 文件/目录 :改变所有者和所在组
-R:如果是目录,则使其下所有子文件或目录递归生效
示例:
将 /home/hello.txt 文件的所有者改成wangwu
将 /home/aaa 目录下所有的文件和目录的所有者都修改成 lisi
4、修改文件/目录所在组
chgrp newgroup 文件/目录: 改变所在组
示例:
将 /home/hello.txt 文件的所在组修改成 lisi
将 /home/aaa 目录下的所有文件和目录的所在组都修改成 lisi