我们都知道在Linux中一切皆文件,因此一些有关文件属性和权限的知识点就很重要,也是学习Linux最基本的。这里仅就记录一下自己的一些学习笔记以及一些个人理解,如错误之处,敬请指出。
学习Linux文件的权限时,文件的权限往往是针对用户,用户组以及其他人三个概念来讲的,因此在学习文件权限相关问题时有必要先了解下这三个的基本概念。
在linux输入ls -al或者ls -ls,ls -l均可以查看文件的基本属性。不过ls -al会把所有的文件都列出来,包括隐藏的文件,如下
图中用红框圈起来的一共有8个,下面从左到右依次来说一下其代表的意思
1. 文件的权限
文件的权限是针对文件拥有者,用户组和其他用户来说的,每个对象都有对应的权限,如下
其中,权限对于文件而言,rwx的意义如下:
而权限对于目录来说,意义如下:
2. 修改文件属性
2.1 修改文件所属者和所在用户组
2.1.1修改文件所在用户组:chgrp(change group),格式如下:
chgrp [-R] groupname 文件名或者目录名
R:进行递归修改,连同该目录下的所有文件,目录一起修改
前提:新的组名要在/etc/group中存在
如下,将在test组中的test_py.py文件更换到anxiaochong组中
2.1.2 修改文件拥有者:chown(change owner),格式如下
chown [-R] 账号名称 文件或目录 或者 chown [-R] 账号名称:用户组名称 文件或者目录
R:进行递归修改,连同该目录下的所有文件,目录一起修改
前提:新的账号名称要在/etc/passwd中存在
如下,修改文件test_py.py的拥有者未root
3.修改文件目录的权限
3.1修改文件目录权限命令:chmod,格式如下
r:4 w:2 x:1
如在上面的图中,test.py文件对应文件拥有者,用户组和其他用户的权限如下
文件拥有者(user):rw-=4+2+0=6 用户组(group:rw-=4+2+0=6 其他用户(others):r--=4+0+0=4
现在修改test.py文件的权限为文件拥有者rwx,用户组rwx,其他用户为rx
值的注意的是,每个对象对应的文件权限位置不会变,没有权限时用‘-’代替
3.2 符号类型修改文件权限
Linux中修改文件目录权限的有两种方法,上面的是数字类型修改权限,还有一种就是下面要讲的符号类型修改文件目录权限。
符号类型修改文件权限格式如下
chmod [ugoa][+-=][rwx] 文件名或者目录 #这里的[]不是代表可选可不选,这里三个都必须选择,这里加[]只是为了区分不同字符类别
例1 如修改文件test.py的权限为rwxr–r--
例2 给文件test.py的用户组,其他用户加上x权限
例3 把文件test.py文件的文件拥有者,用户组和其他用户的x(可执行)权限移除掉
注意:以上有关文件目录属性修改,权限修改均需要root权限,如果不是root用户,则可使用sudo