7、权限管理

1、基本权限

一、权限介绍

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

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

对于文件来讲,写的权限和执行的权限,都须要有读权限配合,若是想对文件进行操做,必须对文件赋予读的权限;sql

对于目录来讲,写的权限和读的权限,都须要有执行权限配合,若是想对目录进行操做,必须对目录赋予执行的权限bash

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

二、权限设置

// 设置全部人权限ide

chmod a=[MODE] filename递归

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

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

// 添加执行权限table

chmod u+x filenameclass

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

chmod 644 filename

// 递归修改权限

chmod -R 755 dir/subdir

三、属主属组设置

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

2、特殊权限

一、SUID权限

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

二、SGID权限

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

三、SBIT权限

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

四、权限属性chattr

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

五、进程掩码umask

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

相关文章
相关标签/搜索