一个Linux目录或者文件都会有一个所有者和所属组。所有者是指文件的拥有者,所属组是指这个文件属于哪一个用户组我们可以用ls -l命令来查看这些属性:
其中第3列和第4列中的root就是所有者和所属组
rwxr-xr-x:表示权限位的值。
root root 分别代表文件的所有者,和所属组。那么他们的权限分别是多少呢?只需要把rwxr-xr-x每三个字母切割开来就是了:
root:rwx root用户的权限是可读可写可执行。
root:r-x root组织有读和执行的权限。
other:r-x 其他用户只有读和执行的权限。
r 可读
w 可写
x 可执行
- 不可以
上面这个目录1的权限用数字表示是:755。
一、chmod
chmod用来修改文件的权限位。
使用数字的方法修改权限(建议使用):
chmod还支持使用u、g、o和a来增加或者减少它们的某个权限(读、写或者执行)
另外权限可以这样用数字来表示:
r=4
w=2
x=1
二、chown
可以修改文件的所属者或者所属组。
其格式为:chown [-R]账户名,文件名或者chown [-R]账户名:组名 文件名。这里的-R选项只适用于目录,不仅更改当前目录,连目录里的目录或者文件也全部更改
修改文件的所有者:
修改文件的所属组:
同时修改所有者和所属组:
三、umask
umask决定了我们默认建立一个文件或者目录的默认权限。可以改变文件的默认权限格式为:umask xxx(x代表数字)要查看umask的值,只要umask就可看到如下:
查看当前umask:
我们在当前0022的umask下新建目录或者文件的权限是多少?:
可见,文件是644,目录是755。那么,这两组权限是怎么算出来的呢?
正确的算法:
目录:rwxrwxrwx 减去 ----w--w- = rwxr-xr-x。
文件没有执行权限,为rw-r--r--所以就是644了。
四、lsattr,chattr
lsattr用于读取文件或者目录的特殊权限。
chattr格式:chattr [+-=][Asaci][文件或者目录名]其中+,-和=分别表示增加,减少,设定。
那么隐藏权限可以用来干嘛呢?比方说,你有一个文件谁都不让动,连root用户都不让动,也就是不让修改,删除等任何操作。这个时候就可以用到隐藏权限。常用的隐藏权限有i和a。
i属性的特征是不让修改,删除,也不能touch。a属性的特征是可以追加和touch,别的操作不允许。
添加i属性:
-a:类似于ls的-a选项,连同隐藏文件一同列出
-R:连同子目录的数据一同列出
来源:oschina
链接:https://my.oschina.net/u/3711354/blog/1556619