一、Linux的基本文件权限
1、文件的权限
当用户不拥有某位权限,则使用-占位 r-x:读和执行的权限
r--:只读权限
rw-:读写权限
使用数字来表示权限:
r:4
w:2
x:1
#=================================================================
2、权限对于文件和目录的区别
对于文件的权限: r : 查看 w : 修改 x : 运行对于目录的权限: r : 查看目录内文件列表 w : 创建和删除文件(需要x权限) x : cd进目录 #=================================================================
3.权限管理的基本命令
chmod : 修改文件权限chmod [options]... mode... file 例:chmod 777 file chmod +x file chmod -x file选项: -R :递归修改权限chown : 修改属主属组chown [options]... user:group file例:chowm root:root file1选项: -R:递归chgrp:修改组权限chgrp [options]... GROUP FILE...例:chgrp group1 file1选项: -R:递归 #=================================================================
4.umask:新建文件和目录的默认权限
umask值可以用来保留在创建文件权限新建FILE权限: 666-umask 如果所得结果某位存在执行(奇数)权限,则将其权限+1新建DIR权限: 777-umask非特权用户umask是002root的umask 是022用法: umask: 查看 umask #: 设定 umask 002 umask �CS 模式方式显示 umask �Cp 输出可被调用umask全局设置:/etc/bashrc ;用户设置:~/.bashrc#=================================================================
二、Linux系统上的特殊权限
特殊权限:SUID,SGID,STICKY
安全上下文:
前提:进程有属主和属组;文件有属主和属主
(1) 任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有执行权限
(2) 启动为进程之后,其进程的属主为发起者,进程的属组为发起者所属的组
(3) 进程访问文件时的权限,取决于进程的发起者
权限匹配模型:
(a) 进程的发起者,同文件的属主:则应用文件属主权限
(b) 进程的发起者,属于文件属组;则应用文件属组权限
(c) 应用文件“其它”权限
SUID :示例文件:/bin/passwd1.只能作用在二进制程序上。2.执行该程序的用户将会继承程序所有者的权限。3.启动成为进程后,其进程属主为原程序文件的属主。权限设定:赋权:chmod u+s file...chmod 4755 file...取消赋权:chmod u-s file...chmod 0755 file...SGID:示例目录:/tmp1.作用在二进制程序上时: (1)执行该程序的用户将会继承程序所属组的权限。 (2)启动为进程之后,其进程的属组为原程序文件的属组2.作用在目录上时: (1)普通用户在此目录下新建的文件,都将会继承目录的属组。权限设定: 赋权: chmod g+s file... chmod 2755 file... 取消赋权: chmod 0755 file... chmod g-s file...sticky:1.只能作用在目录上(作用在文件上无意义)2.具有sticky权限的目录,普通用户不能删除文件,仅文件所有者可以删除。权限设定: 赋权: chmod o+t dir... chmod 1755 dir.. 取消赋权: chmod 0755 dir... chmod o-t dir...chattr : 锁定指定的文件 + : 在原有基础上追加参数 - : 在原有基础上移除参数 = : 设定为指定参数 i : 锁定文件,不能修改或者删除。 a : 只能向文件中添加数据 A : 禁止修改atime #=================================================================
三、ACL:访问控制表
ALC:Access Control List,访问控制表
除文件的所有者,所属组和其他人,可以对更多的用户设定权限
ACL权限生效顺序:
所有者 >(自定义用户> 所属组,自定义组) > 其他人
括号外的用户不收mask影响
getfacl : 查看ACL信息setfacl : 设置ACLgetfacl:getfacl FILE... user:USERNAME:MODE group:GROUPNAME:MODEsetfacl: -m : 设置acl参数 -m u:user_name:mode file|dir -m g:group_name:mode dir -x : 取消acl参数 -x u:user_name file|dir -x g:group_name file|dir -b : 取消全部的ACL权限 -R :递归 #=================================================================
本文出自 “BigBoss” 博客,请务必保留此出处http://bigboss.blog.51cto.com/12113895/1982960