您的位置:首页 > 运维架构 > Linux

linux中权限的介绍,分类和实施

2015-12-27 16:26 411 查看
权限:
DAC:自主访问控制
是以rwx权限的组合方式来限制用户访问文件及对文件实施操作的管理控制机制;当以DAC的方式对权限进行管理的时候主要是以用户为主的
rwx 三个权限 : 读 写 执行
DAC: 文件 目录
r读 获得文件的内容 查看目录中的文件名
w写 对文件的内容进行操作 对文件名进行操作
x执行 将文件看做命令执行 可以进入,引用目录,查看属性信息

用ll命令查看的时候第一段有9位权限位:3个一组,彼相互独立
第一段:所有者的权限
第二段:所有组的权限
第三段:其他人的权限
DAC机制:就是哪个用户,用什么操作作用在哪个文件上
命令:
chmod---》修改权限 change mod
语法: chmod 权限位值 文件名
权限位值的表示方法:符号标识、数字标识
符号标识:
u:所有者
g:所有组
o:其他人
a:u+g+o
赋值标识:
+:在原有权限的基础上添加新的权限
-:在原有权限的基础上删除权限
=:不管原先的权限如何,直接设置新的权限
权限标识:r w x
例题:
chmod u+x FILE
chmod g-r FILE
chmod o=wr FILE
数字标识:
r--》4
w--》2
x--》1
-:代表没有
使用符号标识的时候,在设置权限的时候可以针对某个权限位单独的设置
使用数字标识的时候,在设置权限的时候必须完整的写出三个权限位的权限值
例题:
chmod 755 FILE
umask---》权限遮罩码;影响默认文件权限参数
root:022 或0022:第一个0是特殊权限的遮罩码
普通用户:002 或0002
创建新的目录,目录的默认权限:777-umask
创建新的文件,文件的默认权限:666-umask
命令:
chown--》修改文件的所有者和所有组
-R :递归的修改目录的所有权以及目录中子文件和子文件的所有权
chown USERNAME FILE 只修改文件的所有者
chown :GROUPNAME FILE 只修改文件的所有组
chown USERNAME: FILE 同时修改所有者和所属组,所属组就是用户的主要组
chown USERNAME:GROUPNAME FILE 同时修改所有者和所属组为指定的用户和组

facl: Filesystem Access Control List 访问控制列表 ---权限的扩展属性
对于权限的扩展属性设定
作用:提供一种便利,能够让一个用户将文件访问的权利分配给固定的用户或固定的组来执行,而且不会产生额外的操作权利
getfacl --》查看文件的扩展属性列表
getacl FILENAME
setfacl --》设置文件的扩展属性列表
-m:修改
setfacl -m u:UID:perm FILENAME #UID GID 可以使名字
setfacl -m g:GID:perm FILENAME
-x:撤销修改
当用命令 ll 命令查看文件的权限的时候,在-rw-r--r--. 最后的点表明没有启用扩展属性;当启用的时候.-->+

特殊权限
背景:当用setfacl给某个用户一个目录的rwx权限的时候,这个用户可以将目录下所有的文件进行删除,
这是不安全的,所以可以使用特殊权限来控制,这个用户只可以控制自己的文件。
SUID :超级用户权限 s或S 只能出现在所有者的x位置 4
SGID :超级组权限 s或S 只能出现在所属组的x位置 2
Sticky:粘滞位 t或T 只能出现在其他人的w位置 1

如果在设置特殊权限位之前,文件具有执行权限,特殊权限就是小写字母
如果在设置特殊权限位之前,文件没有执行权限,特殊权限就是大写字母

文件 目录
SUID : 在执行一个具有SUID命令的时候, 对于目录来说,SUID对于目录,没有意义
执行者会以该命令的所有者身份
来执行

SGID:在执行一个具有SGID命令的时候, 具有这样权限的目录,在其中建立的所有文件,
执行者会以该命令所属组的身份 所属组自动的继承目录的所属组
来执行(几乎不用)

Sticky: 没有意义 如果用户对于一个有Sticky权限的目录有写权限,
那么用户只能修改和删除哪些所有者为自己的文件

0022 0002 其中的第一个0就是特殊权限位,默认没有设置

4755 --- SUID
2755 --- SGID
1755 --- Sticky

MAC:强制访问控制
是以文档为主体,就是这个文档可以被用户执行某种的操作和用户没有直接的关系;对安全上下文的管理,以
文档为主体,是这个文档可以被那个用户执行什么权限
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux chmod chown