一.文件权限
文件属性操作:
修改文件权限:
1,模式法
chmod who opt per file //修改文件权限
who : u 所有者 g所属组 o其他 a 所有
opt: +添加 -删除 =覆盖
per: r读 w 写 x执行
特殊X权限: 只给目录x权限,不给文件;
但是如果文件的所有者有执行权限,也会加执行权限
chmod -R a+x dir1 //对dir1下的所有文件加执行权限
chown //修改文件所有者
-R 递归
chown wang.g1 dir1或 chown wang:g1 dir1 //修改所属主和组
chgrp //设置文件的属组信息 -R 递归
chmod –reference=f1 f2 f3 //参考文件1的权限,给文件2和3设置权限
- 数字法:r —-4;w—–2;x—-1
Chmod 764 file
文件权限: (r 读; w 更改; x 运行)
目录权限:(r 列出目录文件列表; w 可以在目录中建立或者删除文件; x 不能cd,不能查看目录文件内容;不能查看目录中文件的详细属性)
- 普通用户不能修改文件的所有者
- 普通用户可修改主组,但是要求该文件必须在该组中
- 删除文件得权限是由目录决定的
- 如若root用户没有执行权限,也不允许执行该文件
- 对于读写权限,rooot用户是不受控的,有没有都可以进行读或追加操作;普通用户对于权限是严格受控的
- 二进制的文件的读写权限不是必须的,但如果没有读权限,不能判断该文件的类型
- 如果目录没有x执行权限:不能cd;不能查看目录文件内容;不能查看目录中文件的详细属性
- 用户获取文件权限的顺序:先看所有者,再看所属组,最后看其他,一旦匹配既不在获取
- Linux文件的权限,所有者所属组等这些特性,是由文件系统决定的
- 如若想目录下的文件能够运行,目录至少要有执行权限
二.umask默认权限
umask 间接影响创建文件目录的默认权限(内部命令)
umask 功能:取消对应的权限
umask+default=777(目录)
umask+default=666(文件)
666-umask
观察结果:1. 有偶数:最终结果为default
- 有奇数:最终结果加1就是default
umask //显示当前目录umask的值;也可用来修改umask值
-p //输出可被调用 umask -p >>.bashrc //将默认umask写入文件
-s //得到默认权限
.bashrc 中保存umask值
管理员用户的umask和普通用户的不同,在/etc/bashrc中定义了
三.特殊权限
文件系统上的特殊权限:
- suid 只适合作用在二进制可执行程序上,不能作用在script脚本上
执行 suid权限程序时,此用户将继承此程序的所有者权限
chmod u+s /bin/user/nano (chmod 4755 /bin/user/nano) //给nano加上suid权限
chmod u-s 或 chmod 755 //即可实现取消suid权限
- sgid 执行 sgid权限程序时,此用户将继承此程序的所有组权限
如果做用在目录上,此目录创建新的文件,将自动继承目录的所属组
chmod g+s /bin/cat( chmod 2755 /bin/cat)
chmod g+s dir1 //实现此后创建的新文件都自动继承目录的所属组
3, sticky 粘滞位 (只能作用在目录;相对于普通用户来说:具有sticky权限的目录,只能自己删除自己的文件)此目录文件只能被所有者删除
chmod o+t /app(chmod 1777 /app)
4, chattr 可实现对重要文件的保护
chattr +i f2 //不允许删除该文件 ,不能更改内容,不能改名
chattr -i f1 //撤销
chattr +a //只允许追加内容,不允许删除文件,不允许改名
chattr -a //撤销锁定
chattr +A //锁定读时间
lsattr //用来查看文件特定属性
四.acl访问控制列表
acl 访问控制列表:实现灵活的权限管理
setfacl -m u:wang:rw f1 //对wang账户添加rw权限
setfacl -m g:opts:rw f1 //对组opts添加rw权限
getfacl f1 //可查看f1的acl权限
setfacl -x g:g2 f1 //删除组的acl权限
setfacl –b f1 //清空acl的全部内容
setfacl -m d:u:wang:rx directory //默认之后创建的文件具有王的权限
setfacl -M 文件名 f1 //批量设置acl权限
setfacl -X 文件名 f1 //批量撤销acl
setfacl -k directory //清空默认acl权限
getfacl f1 |setfacl –set-file=- f2 //复制f1 的权限给f2
setfacl –set //重设权限,覆盖原权限
setfacl –restore 文件名 //还原acl
mask:定义了除所有者和other的最高权限
setfacl -m mask::r f1 //可限制除所有者和other的最高权限,最终有效权限为r
acl的优先级:先匹配所有者,在看([自定义的用户权限,再匹配自定义组权限 ] 受mask影响)及其他
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/94910