4.2文件的权限管理

文件的权限管理

1.权限管理:

1.1文件权限

  1. 文件属性:

    权限 引用计数(连接数) 所用者 所属组 大小 创建时间 文件名

  2. 文件属性操作:
    chown 设置文件的所有者
    chgrp 设置文件的属组信息

1.2 修改文件的属主和属组

  1. 修改文件的属主:chown
    chown [OPTION]… [OWNER][:[GROUP]] FILE…
    用法说明:
    OWNER
    OWNER:GROUP
    :GROUP,冒号也可用 . 替换
    -R: 递归
    chown [OPTION]… --reference=RFILE FILE…
  2. 修改文件的属组:chgrp
    chgrp [OPTION]… GROUP FILE…
    chgrp [OPTION]… --reference=RFILE FILE…
    -R 递归

1.3 文件的权限主要针对三类对象进行定义:

owner: 属主, u
group: 属组, g
other: 其他, o

1.4 每个文件针对每类访问者都定义了三种权限:

r: Readable 	4
w: Writable 	2
x: eXcutable	1
	
文件:
	r: 可使用文件查看类工具获取其内容;
	w: 可修改其内容;
	x: 可以把此文件提请内核启动为一个进程;

目录:
	r: 可以使用ls查看此目录中文件列表;
	w: 可在此目录中创建文件,也可删除此目录中的文件;
	x: 可以使用ls -l查看此目录中文件列表,可以cd进入此目录;

--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
	
例如:
	640: rw-r-----
	rwxr-xr-x: 755

1.5 修改文件权限:chmod

  1. chmod [option] …octal-mode file…
    -R: 递归修改权限
  2. chmod [option]…mode[,mode]…file…
    mode:
    修改一类用户的所有权限:
    u= g= o= ug= a= u= ,g=
    修改一类用户某位或某些位权限
    u+ u- g- g+ o+ o- a+ a- ±
  3. chmod [option]…–reference=refile file…
    参考refile文件的权限,将file的修改为同refile
方法一:mode法
chmod who opt per file
who: u g o 
opt: + - =
per:r w x X 
chmod u +x,g-w,o= file 
chmod o= f1

方法二:数字法
rwx rw- r--
111 110 100
chmod 764 file
chmod -R a+x  f1   赋予f1下所有的文件
chmod -R +X dir2
chown -R wamg /*

1.6 修改文件的属主和属组:

仅root可用;

修改文件的属主:chown
	chown [OPTION]... [OWNER][:[GROUP]] FILE...

		用法:
			OWNER
			OWNER:GROUP
			:GROUP

			Note: 命令中的冒号可用.替换;

		-R: 递归

	chown [OPTION]... --reference=RFILE FILE...

修改文件的属组:chgrp
		chgrp [OPTION]... GROUP FILE...
     		chgrp [OPTION]... --reference=RFILE FILE...

 				-R

1.7 新建文件和目录的默认权限

  1. umask值,可以用来保留在创建文件权限

  2. 新建file权限:666-umask
    对于结果,奇数+1,偶数不变

  3. 建dir权限:777-umask

  4. 非特权用户umask是002

  5. root的umask是022

  6. umask:查看

  7. umask #:设定

    ​ umask 022

  8. umask -S 模式方式显示

  9. umask -P 输出可被调用

  10. 全局设置:/etc/bashrc 用户设置: ~/.bashrc

      总结:
      对于目录
      default5=777-umask-
      对于文件
      default权限=666=umask;对于结果,奇数+1,偶数不变
      umask 026  临时生效
      cat  .bashrc  永久生效写文件中
      umask u=rwx, g=r, o=
      

2.特殊权限

2.1Linux文件系统上的特殊权限

  1. SUID,SGID,Sticky
    suid:继承二进制程序所有者的权限
    sgid:继承二进制程序所有组的权限
    作用在目录,此目录新建的目录继承目录的所属组
    sticky:作用于目录,此目录的文件只能被所有者删除

  2. 三种常用权限:r,w,x user,group,other

  3. 安全上下文

  4. 前提:进程有属主和属组;文件有属主和属组
    (1)任何一个可执行程序能不能启动为进程,取决于发起者对程序文件是否拥有执行权限
    (2)启动为进程之后,其进程的属主为发起者,进程的属组为发起者所属的组
    (3)进程访问文件时的权限,取决于进程的发起者
    进程的发起者,同文件的属性:则应用文件属性权限
    进程的发起者,属于文件的属主;则应用文件属组权限
    应用文件“其他”权限

      eg:
      chmod u+s dir1
      chmod g+s dir1
      chmod o+t  file

2.1 可执行文件上suid权限

  1. 任何一个可执行程序能不能启动为进程,取决于发起者对程序文件是否拥有执行权限
  2. 启动为进程之后,其进程的属性为原程序文件的属主
  3. suid只对二进制可执行程序有效
  4. suid设置在目录上无意义
  5. 权限设定:
    chmod u+s file…
    chmod u-s file…

2.2 可执行文件上sgid权限

  1. 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限
  2. 启动为进程之后,其进程的属组为原程序文件的属组
  3. 权限设定
    chmod g+s file…
    chmod g-s file…

2.3 目录上的sgid权限

  1. 默认情况下,用户创建文件时,其属组为此用户所属的主组
  2. 一旦某目录被设定了sgid,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组
  3. 通常用于创建一个协作目录
  4. 权限设定“
    chmod g+s dir…
    chmod g-s dir…

2.4 Sticky位 粘滞位

  1. 具有写权限的目录通常用户可以删除改目录中哪个的任何文件,无论该文件的权限或拥有者
  2. 在目录设置sticky位,只用文件的所有者或root可以删除该文件
  3. sticky设置在文件上无意义
  4. 权限设定:
    chmod o+t dir…
    chmod o-t dir…

2.5 权限位映射

  1. SUID: user,占据属主的执行权限位
    s:属主拥有x权限
    S:属主没有x权限
  2. SGID:group,占据属组的执行权限位
    s:group拥有x权限
    S:group没有x权限
  3. Sticky:other,占据other的执行权限位
    t:other拥有x权限
    T:other没有x权限

2.6设定文件特定属性

  1. chattr +i 不能删除,改名,更改
  2. chattr +a 只能追加内容
  3. lsattr 显示特定属性

2.7ACL访问控制列表

  1. ACL: access control list ,实现灵活的权限管理
  2. 除了文件的所有者,所属组和其他人,可以对更多的用户设置权限
  3. centos7默认创建的xfs和ext4文件系统具有ACL功能
  4. centos7之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加
    tune2fs -o acl /dev/sdb1
    mount -o acl /dev/sdb1 /mnt/test
  5. ACL生效顺序:所有者,自定义用户,自定义组,其他人
  6. 为多用户或者组的文件和目录赋予访问权限rwx
    mount -o acl /directory
    gentfacl file | directory
    setfacl -m u:wang:rwx file | directory
    setfacl -Rm g:sales:rwX directory
    setfacl -M fie.acl file | directory
    setfacl -m g:salesgroup:rw file | direcotry
    setfacl -m d:u:wang:rx directory
    setfacl -x u:wang file | directory
    setfacl -x file.acl directory
  7. ACL文件上的group权限是mask值(自定义用户,主定义组,拥有组的最大权限),而非传统的组权限
  8. getfacl 可看到特殊权限:flags
  9. 9)通过ACL赋予目录默认x权限,目录内文件也不会继承x权限
  10. base ACL 不能删除
  11. setfacl -k dir 删除默认ACL权限
  12. setfacl -b file1 清除所有ACL权限
  13. getfacl file1 |setfacl --set-file= - file2 复制file1的ACL权限给file2
  14. mask只影响除所有者和other的之外的人和组的最大权限
    mask需要与用户的权限进行逻辑与运算后,才能变成有限的权限(effective permission)
    用户或组的设置必须存在于mask权限设定范围内才会生效 setfacl -m mask::rx file
  15. –set选项会把原有的ACL项都删除,用新的替代,需要注意的是一定要包含ugo的设置,
    不能像-m一样只是添加ACL就可以
  16. 示例: setfacl --set u::rw,u:wang:rw,g::r,o::- file1
  17. 备份和恢复acl
  18. 主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p参数。但是tar
    等常见的备份工具是不会保留目录和文件的ACL信息
    getfacl -R /tmp/dir1 > acl.txt
    setfacl -R -b /tmp/dir1
    setfacl -R --set-file=acl.txt /tmp/dir1
    setfacl -R -b /tmp/dir1
    setfacl --restore acl.txt
    getfacl -R /tmp/dir1

setfacl -m u:wang:0 file
setfacl -m u:mage:rw file
getfacl f1
用acl group=mask
setfacl -x g:g2 file 删除

setfacl -m mask::r f1 限高
setfacl -b f1 清空所用acl权限

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值