参考资料打伞的鱼,Linux的文件权限让很多新手望而却步,甚至不少用过Linux一段时间的同学对权限这一块都比较模糊,在这里总结一下权限相关的知识,点到为止,只够使用,更多复杂(例如十二权限之类的)如果同学有兴趣可以自己深入研究
用户与用户组
在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。
查看文件/文件夹的权限
例子
chancel@chancel-cp:/mnt/d/temp$ ll -l
drwxrwxrwx 1 chancel chancel 4096 Nov 6 14:16 code/
-rwxrwxrwx 1 chancel chancel 1117450 Oct 23 13:41 my_log.txt*
-rwxrwxrwx的含义
- 第一个字符“-”
- rwxrwxrwx的含义
- 第一组rwx代表文件所有者的权限(chancel用户的权限)
- 第二组rwx代表文件所有者同一组的用户的权限(属于chancel组下面的用户对文件的权限)
- 第三组rwx代表与文件创建组不同组的其他用户的权限(可以简单理解为其他用户的权限)
rwx的含义
- r:代表读取(read)的意思,指读取文件的权限
- w:代表写入(write)的意思,指修改文件的权限
- x:代表执行(execute)的意思,指执行文件的权限(如果文件是可执行文件,例如.sh脚本,执行它的用户需要x权限,否则会执行失败)
更改文件/文件夹的权限
改变权限的例子
chmod 755 my_log.txt
chmod u=rwx,g=rx,o=rx my_log.txt
chmod u-x,g+w my_log.txt
chmod a+r my_log.txt
chmod -R 755 code/
数字的含义
- r=4,w=2,x=1,755即意味着rwxr-xr-x的权限,数字7=r+w+x,而数字5=r+x没有w
- 可用数字7、5、4、3、2、1、0
- 组合列表一览
- 600:只有拥有者有读写权限(-rw------- )
- 644:只有拥有者有读写权限;而属组用户和其他用户只有读权限(-rw-r--r-- )
- 666:所有用户都有文件读、写权限(-rw-rw-rw-)
- 700:只有拥有者有读、写、执行权限(-rwx------)
- 711:拥有者有读、写、执行权限;而属组用户和其他用户只有执行权(-rwx--x--x)
- 755:拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限(-rwxr-xr-x)
- 777:所有用户都有读、写、执行权限(-rwxrwxrwx)
u、g、o的含义
- u:代表用户(user)的意思
- g:代表用户组(group)的意思
- o:代表组织(organization)的意思,即其他用户
u-x,g+w的含义
- u-x:u代表用户(user)的意思,-代表取消的意思,x代表执行的意思,所以u-x即是取消用户执行的权限
- g+w:g代表用户组(group)的意思,+代表增加的意思,w代表写入的意思,所以g+w即是增加用户组写入的权限
a+r的含义
- a+r:a代表全部(all)的意思,r代表读取的意思,所以a+r即是给所有用户增加读取的权限
-R 755的含义
- R:表示循环设置文件夹下所有子文件、文件夹的权限(大部分命令如需循环设置都可以添加-R属性)
- 755:rwxr-xr-x的权限
更改文件/文件夹的所有者和用户组的命令
例子
chown otheruser my_log.txt
chgrp othergroup my_log.txt
chown的含义
chgrp
改变用户所在组
例子
usermod -g othergroup chancel
这个应该没什么好解释的