Linux学习之路_10.用户组和权限管理
目录
1.Linux组基本介绍
在Linux中每个用户必须属于一个组,不能独立于组外,文件/目录的所有者,所在组,其他组概念。
2.文件/目录的所有者
1)一般为文件的创建者,谁创建了文件,谁就是该文件的所有者
2)查看文件的所有者:ls -ahl
3)修改文件/目录的所有者:chown [-R] 用户名 文件名,其中-R表示修改的是目录,则目录及其子目录/文件递归生效。
示例1:myfolder目录的所有者修改成tengpengfei,但是该目录下的文件所有者不变
示例2:目录myfolder及其子目录/文件的所有者被修改为tengpengfei
chown -R tegnpegnfei myfolder/
3.文件/目录所在组
1)当某个用户创建了一个文件,默认该用户所在的组就是该文件的所在组
2)查看文件的所在组:ls -ahl
3)修改文件的所在组chgrp [-R] 组名 文件名,其中-R表示修改的是目录,则目录及其子目录/文件递归生效。
示例1:修改myfolder目录的所在组为tengpengfei,但是其下子目录/文件所在组不变
示例2:修改myfolder目录及其下子目录/文件所在组为tengpengfei
4.文件/目录其他组
除所有者和所在组的用户外,系统的其他用户都是文件的其他组。
5.文件/目录权限的基本介绍
以上图为例,字符从左向右依次表示什么意思。
1)文件类型
第0位表示文件类型(d,-,l,c,b)
d表示目录
-表示普通文件
l表示软连接
c表示字符设备,比如:键盘,鼠标
b表示块文件,硬盘
b.txt是一个文本文件,所以显示-
2)文件权限:r表示可读,w表示可写,x表示可执行,-表示无权限
第1位到第3位表示文件所有者的权限
a.txt的所有者拥有可读可写不可执行权限
第4位到第6位表示文件所在组的用户的权限,
a.txt的所在组的用户拥有可读不可写不可执行权限
第7位到第9位表示文件其他组的用户的权限,
a.txt的其他组用户拥有可读不可写不可执行权限
也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7
3)点后面的1表示:如果是文件表示硬链接的数,如果是目录则表示目录中子目录的个数
4)第一个root 文件的所有者
5)第二个root 文件所在组
6)0表示文件的大小,如果是目录则显示4096
7)文件的最后修改时间
8)文件的名称
6.rwx详解
1)作用到文件
【r】表示可读(read),可以读取,查看
【w】表示可写(write),可以修改,但不代表可以删除文件,删除文件需要对该文件所在目录有写权限
【x】表示可执行(execute),可以被执行
2)作用到目录
【r】表示可读(read),可以读取,ls查看目录内容
【w】表示可写(write),可以修改,目录内创建,删除,重命名目录
【x】表示可执行(execute),可以进入该目录
7.修改权限chmod
1)第一种方式:“+”“-”“=”变更权限
u:所有者,g:所在组,o:其他组,a:所有人(u,g,o总和)
示例1:变更a.txt文件权限:所有者读写执行,所在组:读执行,其他组:读执行
示例2:变更a.txt文件权限:所有者去掉执行权限,所在组增加写权限
2)第二种方式:通过数字变更权限
规则:r=4,w=2,x=1,拥有什么权限加上对应的数字
例如:chmod u=rwx,g=rx,o=r a.txt等于chmod 754 a.txt
示例1:权限变更:所有者:读写执行,所在组:读写,其他组:读
8.实践
创建以下用户和用户组
所有者 |
Jack,Tom |
A,B |
所在组 |
police(警察) |
bandit(土匪) |
1.Jack创建一个文件,权限:所有者读写,所在组读,其他组没有权限
2.Jack修改权限,所在组读写,其他组读
3.A修改所在组到police组,是否可以读写?
答案:是
注意:
[1]Jack需要修改自己家目录的权限让A可以进入,因为A需要读写Jack创建的文件,所以这里设置rx
[2]文件所在组跟用户所在组不要搞混了,修改了用户所在组,但是用户对应的家目录所在组不变,使用ll查看文件时可以看到文件所在组,查看用户所在组使用id 用户名