七、权限管理

一、基本权限

1、权限介绍

在Linux系统中,文件具有三种身份,即属主、属组和其他,每种身份对应可读(r)、可写(w)、可执行(x)三种权限。
用户访问文件时,首先判断用户是否为文件的属主,若是属主则安照属主权限访问,若不是属主,判断用户是否文件属组的组成员,若是组成员,则安照组权限访问,否则安照其他人权限访问文件。

权限 文件 目录
r权限 具有读取文件内容权限,只能使用查看类命令cat、head、tail、less、more 具有浏览目录和子目录权限,仅仅能浏览目录内的文件名,无其它操作权限
w权限 具有新增、修改文件内容权限,不能删除文件,需参考上级目录是否具有w权限 具有增加、删除或修改目录内文件名权限,不能进入目录、不能复制目录、不能删除目录、不能移动目录
x权限 具有执行文件权限 具有访问目录内容权限,只能进入目录,不能浏览、复制、移动、删除
rw权限 可以查看和编辑文件内容 能看,能写,但无法进入目录
rx权限 允许查看和执行文件,当不能修改文件 允许浏览目录文件及子目录,允许在目录内新建文件
rwx权限 能读,能写、能执行,当不能删除,需参考上级目录是否有w权限 能看,能写,能进入目录,能删除内容,能写入内容

对于文件来说,写的权限和执行的权限,都需要有读权限配合,如果想对文件进行操作,必须对文件赋予读的权限;

对于目录来说,写的权限和读的权限,都需要有执行权限配合,如果想对目录进行操作,必须对目录赋予执行的权限

一个普通文件默认权限: 644 保证属主用户对文件可以编辑 保证其他用户可以读取文件内容
一个目录文件默认权限: 755 保证属主用户对目录进行编辑 保证其他用户可以读取目录中的信息,可以进入到目录中

2、权限设置

// 设置所有人权限

chmod a=[MODE] filename

// 设置用户、组、其它人权限

chmod u=[MODE],g=[MODE],o=[MODE] filename

// 添加执行权限

chmod u+x filename

// 数字形式设置文件权限

chmod 644 filename

// 递归修改权限

chmod -R 755 dir/subdir

3、属主属组设置

chown [OPTION]... [OWNER][:[GROUP]] FILE...
如:
chown -R mysql:mysql /data/mysql

二、特殊权限

1、SUID权限

SUID权限让普通用户对可执行二进制文件,临时拥有二进制文件的属主权限,如果设置的二进制文件没有执行权限,则SUID 权限为S。SUID权限仅对二进制文件有效,对文件和目录无效。
添加SUID权限
chmod 4755 /usr/bin/passwd 或chmod u+s /usr/bin/passwd

2、SGID权限

将目录设置SGID权限后,在该目录下创建目录和文件,都与该目录的属组保持一致。
添加SGID权限
chmod 2755 dirname 或 chmod g+s dirname

3、SBIT权限

Sticky粘滞位仅对目录有效,让多个用户具有读写权限,且只能删除自己的文件。
添加SBIT权限
chmod 1755 /tmp 或 chmod o+t /tmp

4、权限属性chattr

chattr用来修改文件系统的权限属性
chattr [+-=] [选项] filename | dirname
a:让文件或目录仅可追加内容
i:不得更改文件或目录

5、进程掩码umask

umask设置文件和目录的默认权限,系统默认umask=022,默认目录权限777-022=755,默认文件权限666-022=644
umask属性在/etc/bashrc、/etc/profile、 ~/.bashrc、/.bash_profile

猜你喜欢

转载自blog.51cto.com/12631595/2665136