1、权限存在的意义
为了文件或目录的安全。
2、权限的识别
ls -l file :识别文件权限。
ls -ld dir :识别目录权限。
3、权限的查看与理解
3.1文件权限的查看与理解
以file1的权限为例:
- rw-r--r--. 1 root root 0 Aug 16 03:10 file1
上述权限每个部分意义如下:
(1)-
文件类型。文件类型如下:
- :普通文件
d :目录
l :软链接(快捷方式)
s :socket(套接字)
c :字符设备(显示字符的设备)
(2)rw-r--r--.
文件权限。文件权限如下:
r :读权限
w :写权限
x :执行权限
上述文件权限分为三部分权限:
rw-部分 :表示user(即本人)对该文件的操作权限。
第一个r--部分 :表示group(即组成员)对该文件的操作权限。
第二个r--部分 :表示other(即其他人)对该文件的操作权限。
(3)1
文件硬链接个数,文件被系统记录次数。
(4)第一个root
表示文件拥有者
(5)第二个root
表示文件拥有组
(6)0
表示文件大小
(7)Aug 16 03:10
表示文件最后一次被修改的时间。
(8)file1
文件名称。
3.2目录权限的查看与理解
以westos的权限为例:
d rwxr-xr-x. 2 root root 48 Aug 16 03:11 westos
(1)-d
目录类型。
(2)rwxr-xr-x.
目录权限。文件权限如下:
r :读权限
w :写权限
x :执行权限
上述目录权限分为三部分权限:
rwx部分 :表示user(即本人)对该目录的操作权限。
第一个r-x部分 :表示group(即组成员)对该目录的操作权限。
第二个r-x部分 :表示other(即其他人)对该目录的操作权限。
(3)2
表示目录中子目录的个数。
(4)第一个root
表示目录拥有者
(5)第二个root
表示目录拥有组
(6)48
子文件或子目录元数据大小
(7)Aug 16 03:11
表示目录最后一次被修改的时间。
(8)westos
目录名称。
4、修改用户和用户组
此命令必须用root用户执行。
4.1chown username file|dir
更改file|dir的所有人。如图,将file的所有人由root更改为bighead:
4.2chown -R username dir
更改目录及目录下的所有文件和目录的所有者。如图,将所有者由root改为bighead。
4.3chown username:group file|dir
更改文件或目录的所有者以及所有组。如图,将文件file1的所有者改为root,所有组改为root:
4.4chgrp group file|dir
更改文件或目录的所有组。如图,将文件file1的所有组由root改为bighead:
4.5chgrp -R group dir
更改目录及目录下的所有文件和目录的所有组。如图,将所有组由root改为bighead。
5、文件权限
5.1权限作用
(1)r(读)
对文件:是否可以查看文件中的字符。
对目录:是否可以查看目录中有什么文件。
(2)w(写)
对文件:是否可以改变文件中记录的字符。
对目录:是否可以在目录中管理文件,是否可以更改目录中的元数据。
(3)x(执行)
对文件:是否可以通过名称调用文件中记录的程序。
对目录:是否可以进入此目录。
5.2权限管理
(1)字符形式(不常用)
chmod file|dir
例如,将文件file1的user权限设置为rwx,group权限设置为rw,other权限设置为r:
(2)数字形式(常用)
权限对应的数字如下:
r :4
w :2
x :1
rwx :7(4+2+1)
rw- :6(4+2)
r-x :5(4+1)
r-- :4(4)
-wx :3(2+1)
-w- :2(2)
--x :1(1)
例如,将文件file2的user权限设置为可读可写可执行,group权限设置为可读可执行,other权限设置为可读:
6、权限列表
如果在文件权限后有“+”(例如:rw-r--r--+),表示权限列表开启。
6.1查看文件权限
命令: getfacl 文件名|目录名
例如查看文件file1的权限:
其中:
#file: file2 :文件名称
#owner: root :文件所有人
#group: root :文件所有组
user::rwx :用户权限
group::r-x :组权限
other::r-- :其他人权限
user:bighead:rwx :特殊指定用户权限
mask::rwx :权限最大值
6.2设置文件权限
(1)setfacl -m u:uername:rwx file
设定列表中的用户权限。如图,设置权限列表中用户bighead对file2的权限为rwx:
(2)setfacl -x u:uername file
删除列表中的指定用户。如图:删除权限列表中bighead用户:
(3)setfacl -b file
关闭权限列表。