05---权限管理和FACL
2017-05-26 00:27
155 查看
==========================
权限 r,w,x
文件 r读 w写 x执行
目录 r可以对此执行ls列出内部所有文件名
w 可以在目录增删文件
x 可以使用cd切换进此目录,也可以使用ls -l查看内部详细信息
目录应该默认有x权限
小结:对于目录,不能读也可以cd进去,并且可写,执行ls只能看到文件名,无法获得其他信息。但是若不能执行,则不能写。
对于文件,不能读也能执行。需要深入思考。
文件的隐藏属性
【鸟哥书上写到支持ext2/3,经测试ext4也支持】
chattr(修改文件隐藏属性)
chattr [+-=] [ai] FILE/DIR
-a 设置为a后,文件将只能增加数据(用echo "hehe" >> file验证),不能删改其内容
也不能重命名,虽然重命名是修改目录的内容。也不能被硬链接)只有root可以设置此属性
-i 和-a差不多,但是连追加内容也不被允许
lsattr(列出文件隐藏属性)
lsattr和ls的用法差不多
-a 列出所有文件,包括隐藏的
-d 列出目录本身,而非其里面的文件
-R 递归列出目录下的所有内容
==========================
权限管理
chown(变更属主属组)只有root可以使用之
用法:chown [-R] USERNAME:GRPNAME FILE/DIR
-R Recursive,目录下内容递归修改
也可以仅变更属主或者属组:
chown dechao /etc/test.a
chown :newteam /etc/test.b
chmod(变更文件权限)
用法:chmod New_Mod FILE/DIR
-R Recursive,目录下内容递归修改
chmod 755 /home/dechao/test.a
chmod a+r /etc/abc.txt
chmod g=rwx /home/dechao/haha.txt
chgrp(变更属组)
chgrp [-R] GRPNAME FILE/DIR
较少使用,一般用chown比较多
=========================
linux上的特殊权限:
SUID SGID STICKY:
安全上下文:
1.进程以某用户的身份运行,进程是发起此进程用户的代理,因此以此用户的身份和权限完成所有操作。
2.权限匹配模型:
(1)进程的发起者是否为被访问文件的属主;如果是,则应用属主的权限,否则进入(2)
(2)进程的发起者是否属于被访问的文件的属组;如果是,则应用属组的权限,否则进入(3)
(3)应用other的权限
SUID(仅对二进制程序有效)
【要理解进程UID和进程EUID(有效UID)】
默认情况下用户发起的进程,进程的属主是其发起者,其以发起者的身份运行,与文件属主无关。
用户运行某程序时,如果此程序拥有SUID权限,则此程序的进程的属主不是进程发起者,而是文件属主。进程EUID变更为文件属主。
/etc/passwd 就有SUID权限,那么一般用户tom是否就可以更改另一个用户jack的密码?不能,因为普通用户使用该命令不能加参数。
管理文件的SUID权限:
chmod u+s FILE
chmod u-s FILE
展示位置:属主的执行权限位;如果属主原本有执行权限,显示为s。原本无执行权限,显示为S。
SGID(对二进制程序和目录有效):
当目录属组有写权限,且有SGID权限时,属于该属组的用户在里面创建文件时,该文件的属组不再为用户的基本组,而是继承目录的属组。即此目录下有效用户组变更为该目录的属组。【但是执行groups查看用户所属用户组,发现没有什么改变】
管理目录的SGID权限
chmod g+s DIR
chmod g-s DIR
展示位置:属组的执行权限位;如果属主原本有执行权限,显示为s。原本无执行权限,显示为S。
STICKY(仅对目录有效):
默认情况下对于属组可写或全局可写的目录,组内用户或者全局用户都能在该目录下增删文件。如果为该目录设置Sticky权限,则用户仅能删改自己创建的文件,其他用户只能看。
管理目录的Sticky权限
chmod o+s DIR
chmod o-s DIR
展示位置:other的执行权限位;如果属主原本有执行权限,显示为s。原本无执行权限,显示为S。
系统上的/tmp和/var/tmp目录均有Sticky权限。
管理特殊权限的另一种方式:
chmod [0-7][0-7][0-7][0-7] #第一组的[0-7]是SUID,SGID,Sticky的组合
==============================================================================
FACL: File Access Control List
目前绝大多数文件系统支持ACL,ACL属于挂载选项,通过 dumpe2fs -h /dev/sda# 查看下。
文件的额外赋权机制,即在原有的u,g,o之外另一种控制赋权给另外用户或组的赋权机制。
若要开机挂载时自动使能改选项,需要编辑/etc/fstab文件下挂载选项一列的default后加上acl(但一般default中
已经包含了acl)
getfacl (查看某文件的facl)
getfacl
FILE or DIR
setfacl(设置某文件的facl)
-R 目录递归
-m modify, 设定
u:UserName:perm
g:GrpName:perm
-x remove, 删除
u:UserName
g:GrpName
-m 设置最大权限范围mask,facl设置的user,group权限不能超出之---->很少改动
m:[rwx]
set -m u:USRNAME:MODE FILE #赋权给用户
set -m g:GRPNAME:MODE FILE #赋权给组
set -x u:USRNAME FILE #撤销赋权
set -x g:GRPNAME FILE #撤销赋权
UserName/GrpNAME省略的话,代表文件属主属组.
设置完facl后,执行ls -l发现原来的9位权限后出现了+号,代表此文件有附加权限。
先确认身份,身份确认后获得相应的权限(即使后续身份有更大权限也不再使用),身份确认流程如下:
FACL添加前:Owner-->Group-->Others
FACL添加后:Owner-->facl_of_user-->Group-->facl_of_group-->Others
即权限匹配模型:是否属主?-->FACL对用户的授权-->是否属组?-->FACL对组的授权-->others
==========================
权限 r,w,x
文件 r读 w写 x执行
目录 r可以对此执行ls列出内部所有文件名
w 可以在目录增删文件
x 可以使用cd切换进此目录,也可以使用ls -l查看内部详细信息
目录应该默认有x权限
小结:对于目录,不能读也可以cd进去,并且可写,执行ls只能看到文件名,无法获得其他信息。但是若不能执行,则不能写。
对于文件,不能读也能执行。需要深入思考。
文件的隐藏属性
【鸟哥书上写到支持ext2/3,经测试ext4也支持】
chattr(修改文件隐藏属性)
chattr [+-=] [ai] FILE/DIR
-a 设置为a后,文件将只能增加数据(用echo "hehe" >> file验证),不能删改其内容
也不能重命名,虽然重命名是修改目录的内容。也不能被硬链接)只有root可以设置此属性
-i 和-a差不多,但是连追加内容也不被允许
lsattr(列出文件隐藏属性)
lsattr和ls的用法差不多
-a 列出所有文件,包括隐藏的
-d 列出目录本身,而非其里面的文件
-R 递归列出目录下的所有内容
==========================
权限管理
chown(变更属主属组)只有root可以使用之
用法:chown [-R] USERNAME:GRPNAME FILE/DIR
-R Recursive,目录下内容递归修改
也可以仅变更属主或者属组:
chown dechao /etc/test.a
chown :newteam /etc/test.b
chmod(变更文件权限)
用法:chmod New_Mod FILE/DIR
-R Recursive,目录下内容递归修改
chmod 755 /home/dechao/test.a
chmod a+r /etc/abc.txt
chmod g=rwx /home/dechao/haha.txt
chgrp(变更属组)
chgrp [-R] GRPNAME FILE/DIR
较少使用,一般用chown比较多
=========================
linux上的特殊权限:
SUID SGID STICKY:
安全上下文:
1.进程以某用户的身份运行,进程是发起此进程用户的代理,因此以此用户的身份和权限完成所有操作。
2.权限匹配模型:
(1)进程的发起者是否为被访问文件的属主;如果是,则应用属主的权限,否则进入(2)
(2)进程的发起者是否属于被访问的文件的属组;如果是,则应用属组的权限,否则进入(3)
(3)应用other的权限
SUID(仅对二进制程序有效)
【要理解进程UID和进程EUID(有效UID)】
默认情况下用户发起的进程,进程的属主是其发起者,其以发起者的身份运行,与文件属主无关。
用户运行某程序时,如果此程序拥有SUID权限,则此程序的进程的属主不是进程发起者,而是文件属主。进程EUID变更为文件属主。
/etc/passwd 就有SUID权限,那么一般用户tom是否就可以更改另一个用户jack的密码?不能,因为普通用户使用该命令不能加参数。
管理文件的SUID权限:
chmod u+s FILE
chmod u-s FILE
展示位置:属主的执行权限位;如果属主原本有执行权限,显示为s。原本无执行权限,显示为S。
SGID(对二进制程序和目录有效):
当目录属组有写权限,且有SGID权限时,属于该属组的用户在里面创建文件时,该文件的属组不再为用户的基本组,而是继承目录的属组。即此目录下有效用户组变更为该目录的属组。【但是执行groups查看用户所属用户组,发现没有什么改变】
管理目录的SGID权限
chmod g+s DIR
chmod g-s DIR
展示位置:属组的执行权限位;如果属主原本有执行权限,显示为s。原本无执行权限,显示为S。
STICKY(仅对目录有效):
默认情况下对于属组可写或全局可写的目录,组内用户或者全局用户都能在该目录下增删文件。如果为该目录设置Sticky权限,则用户仅能删改自己创建的文件,其他用户只能看。
管理目录的Sticky权限
chmod o+s DIR
chmod o-s DIR
展示位置:other的执行权限位;如果属主原本有执行权限,显示为s。原本无执行权限,显示为S。
系统上的/tmp和/var/tmp目录均有Sticky权限。
管理特殊权限的另一种方式:
chmod [0-7][0-7][0-7][0-7] #第一组的[0-7]是SUID,SGID,Sticky的组合
==============================================================================
FACL: File Access Control List
目前绝大多数文件系统支持ACL,ACL属于挂载选项,通过 dumpe2fs -h /dev/sda# 查看下。
文件的额外赋权机制,即在原有的u,g,o之外另一种控制赋权给另外用户或组的赋权机制。
若要开机挂载时自动使能改选项,需要编辑/etc/fstab文件下挂载选项一列的default后加上acl(但一般default中
已经包含了acl)
getfacl (查看某文件的facl)
getfacl
FILE or DIR
setfacl(设置某文件的facl)
-R 目录递归
-m modify, 设定
u:UserName:perm
g:GrpName:perm
-x remove, 删除
u:UserName
g:GrpName
-m 设置最大权限范围mask,facl设置的user,group权限不能超出之---->很少改动
m:[rwx]
set -m u:USRNAME:MODE FILE #赋权给用户
set -m g:GRPNAME:MODE FILE #赋权给组
set -x u:USRNAME FILE #撤销赋权
set -x g:GRPNAME FILE #撤销赋权
UserName/GrpNAME省略的话,代表文件属主属组.
设置完facl后,执行ls -l发现原来的9位权限后出现了+号,代表此文件有附加权限。
先确认身份,身份确认后获得相应的权限(即使后续身份有更大权限也不再使用),身份确认流程如下:
FACL添加前:Owner-->Group-->Others
FACL添加后:Owner-->facl_of_user-->Group-->facl_of_group-->Others
即权限匹配模型:是否属主?-->FACL对用户的授权-->是否属组?-->FACL对组的授权-->others
相关文章推荐
- Android教程 -05 Android6.0权限的管理
- Linux中文件系统的权限管理(普通权限,特殊权限,文件的扩展属性,FACL)
- Linux中文件系统的权限管理(普通权限,特殊权限,文件的扩展属性,FACL)
- 高级文件权限管理 facl和超级权限chattr
- Android教程 -05 Android6.0权限的管理
- Android教程 -05 Android6.0权限的管理
- 权限管理、特殊权限、FACL
- 模块管理常规功能自定义系统的设计与实现(05--权限和菜单)
- Linux中文件系统的权限管理(普通权限,特殊权限,文件的扩展属性,FACL)
- Linux系统上的特殊权限SUID,SGID,STICKY以及额外权限管理工具facl命令
- Java通用权限系统管理(Spring+springMVC+ibatis+Angularjs)
- web中采用shiro实现登录认证与权限授权管理
- Linux/centos用户管理及权限管理
- 20161109L04-07老男孩linux运维实战培训-Linux系统的用户和用户组管理-05
- 用户权限管理
- C# ASP.NET 通用权限管理系统组件源码中WCF例子程序客户端运行详细配置参考
- C#.NET中的 sender Tag 功能在支持多语言的通用权限管理系统组件中的实际应用范例
- 用户和权限管理-RHCEday2
- 权限管理-简介与开启
- 与程序员朋友闲聊 通用权限管理系统有啥用?