使用linux已经几个月了,除了最简单的操作,停下来思考突然发现自己对linux的权限竟然还不是那么理解,于是赶紧翻看了鸟哥的linux教程,在这里感谢鸟哥了.
linux是一个多用户的操作系统,所以对每一个用户都必须加上权限的限制就像现实中人类必须遵守法律规则一样.
linux的四种身份(root,所有者,群组,其他人)
root: 什么都可以干,就算是某个用户的私有文件也可以对其进行操作,系统的限制对于root用户来说是没有限制的.
user(所有者):这是该文件的所有者,即文件是谁的.
group(群组):这是文件所属的群组.群组这是用户组成的一个组织,就像学生会or青协这样的组织,一个user可以加入多个group,一个group可以有多个user.
others:对于该文档来说既不是这个user创建的,这个user也不在文件所属的group中.
权限
权限分为三种:read,write,execute.
read:可以读取文件的内容,但对文件的内容不可以操作,也就是只可以进行查询操作.
write: 可以对文件的内容进行操作,但是不可以对文件本身进行操作,例如删除文件本身.也就是说可以删除文件内容,但不可以删除文件.
execute: 可以代表拥有执行该文件的权限.一个文件是否能够被执行是看有没有这个权限,而不是看文件的扩展名.
ps. 如果要删除一个文件(不是文件夹,是一个文本文件),那么删除文件的用户要么是该文件的拥有者要么就是root;如果要删除一个文件夹(叫做parent)中的子文件(son),首先要拥有parent的w&x权限,x权限保证能够进入parent权限,w保证能对parent的内容(也就是son)进行操作(对文件的内容是可以进行删除操作的)
更改文件所有者的几种方式
- 更改文件所在的群组使用
chgrp [-R] groupname filename
命令; - 更改文件的拥有者使用
chown [-R] username filename
命令; - 可以同时更改文件拥有者和文件所在的群组可使用
chown [-R] username:groupname filename
命令.
更改文件本身权限的命令
r = 4, w = 2, x = 1;
使用数字代表不同的权限,意思就是说4代表读权限,6代表读和写的权限,7代表读&写&执行的权限.
chmod [-R] 777 filename #777代表所有用户都具有读&写&执行的权限
chmod a+w filename # 表示所有用户都有写的权限,a代表all即所有用户,对应的也有 - ,减去相应的权限