chmod
rw- r-- r-- 前三:拥有者的权限 uid; 中三:所属组的权限gid; 后三:其他人权限; r读w写x执行
chmod [模式] [文件或目录] chmod u=rwx /java/task.sh chmod u=rw,g=rw,o= /java/task.sh chmod u=rw,g=rw,o= /java/task.sh
a 同时更改三项权限
u 拥有者
g 所属组
o 其他
u=rwx 拥有者有全部权限
u+r 拥有者加读权限
u-r 拥有者去掉读权限
-R 对目录的子目录递归赋权限
八进制法
rwx r:4 w:2 x:1
chmod 777 /java/task.sh
chmod 744 /java/task.sh
权限管理命令
cat more tail less head 需要 r
目录下 mkdir touch rm 需要目录 wx
查看目录下 ls 需要目录 rx
vim vi 需要 rw
进入目录 x
执行命令 x
默认权限修改
umask
-s 033 修改默认权限掩码
八进制法
默认权限掩码 系统用户 022 普通用户 002
默认目录权限 777-022 =755 (rwx r-x-r -x)
默认文件权限 666-022 =755 (rw- r-- r--)
ACL,指定用户或组额外获取权限
查看linux是否支持ACL
cat /boot/config-3.10.0-327.36.3.el7.x86_64 | grep -i XFs
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
文件使用
getfacl [文件] 获取文件的访问信息
setfacl -m u:zhangsan:rwx /java/task.sh 设置指定用户rwx权限
setfacl -m g:zhangsan:rwx /java/task.sh 设置指定组rwx权限
目录使用
setfacl -d -R -m u:zhangsan:rwx /java/task.sh 设置指定用户rwx权限递归目录
-R 此前子目录已有的文件不受影响, 此前已有目录、新文件、新目录受影响,但文件有没x权限 。
执行ACL权限,文件所属组位置上的权限被mask权限代替,group和mask值不同时,取最小权限
setfacl -m mask::r /java/task.sh 设置mask权限
删除acl权限
setfacl -x u:zhangsan:rwx /java/task.sh 取消用户指定rwx权限
setfacl -x g:zhangsan:rwx /java/task.sh 取消 组 指定rwx权限
setfacl -x mask:: /java/task.sh 取消mask权限
setfacl -R -b /java/ 取消目录及子目录所有mask权限
setfacl -R -k /java 递归取消目录mask权限,新目录不受影响
ACL相关命令
cp -p 复制文件的ACL属性
mv 默认移动文件的ACL属性
改变拥有者和所属组
chown zhangsan: /java/task.sh 同时更改
chown zhangsan /java/task.sh 只改变拥有者
chown :zhangsan /java/task.sh 只改变所属组
-R 递归子目录
强制位与粘贴位
chmod u+s /java/task.sh 任何用户可以执行,以夺取创建者的身份 (针对文件)
chmod g+s /java/task.sh 任何用户在此目录下创建文件或目录 ,继承当前目录的所属组 (针对目录)
chmod o+t /java/task.sh 保证自己的文件或目录不被删除
八进制法
chmod 4777 /java/task.sh 任何用户可以执行,以夺取创建者的身份 (针对文件)
chmod 2777 /java/task.sh 任何用户在此目录下创建文件或目录 ,继承当前目录的所属组 (针对目录)
chmod 1777 /java/task.sh 保证自己的文件或目录不被删除
chmod 7777 /java/task.sh
chmod 7000 /java/task.sh
文件扩展属性
查询文件扩展属性
lsattr /java/task.sh
-a 隐藏文件
设置文件扩展属性
chattr +a /java/task.sh 1.文件只能>>(追加) 无法vim包括root ; 2.目录下资源无法删除包括root
chattr +i /java/task.sh 1.文件无法修改包括root ; 2.目录下资源无法删除,和建立文件的目录包括root
-R 递归子目录及文件