Linux系统中的文件权限列中三位为一组,分别代表相关的用户、组、其它用户的权限。
权限列中三位为一组,分别代表相关的用户、组、其它用户的权限。
所以修改权限可以分别修改或一同修改,系统中权限分为数字权限与字符权限。
数字权限:r=4,w=2,x=1
字符权限:+ 增加 -去除 a取消所有加上给定的。
chown命令
chown命令用来变更文件或目录的拥有者或所属群组,通过chown改变文件的拥有者和群组。用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的文件列表,文件名也支持通配符。
命令格式
chmod 权限 文件名或目录名 修改权限格式
chmod -R 权限 目录名 递归将目录及其下面所有内容权限全部修改
chown 改变文件或目录的属主(所有者)
chown 用户名 文件名或目录名
chown 用户名.组名 文件名或目录名
Linux/Unix 文件目录所属分为三级 : 拥有者、群组、其他。
1)root:系统特权用户类,既 UID = 0的用户
2)owner:所有者
3)group:所属组
4)other:其它人,不属于上面3类的所有其他用户
选项说明
-c或--changes #效果类似“-v”参数,但仅回报更改的部分;
-f或--quite或—-silent #不显示错误信息;
-h或--no-dereference #只对符号连接的文件作修改,而不更改其他任何相关文件;
-R或--recursive #递归处理,将指定目录下的所有文件及子目录一并处理;
-v或--version #显示指令执行过程;
--dereference #效果和“-h”参数相同;
--help #在线帮助
--reference=<参考文件或目录> #把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同;
--version #显示版本信息。
应用实例
# 将目录/usr/app及其下面的所有文件、子目录的文件主改成mingongge
chown -R mingongge /usr/app
# 使用mingongge用户可以有权限访问文件test.txt
chown mingongge test.txt
chgrp命令
修改所属组也可用chgrp 命令来完成
当你用ls -l 查看到文件的属主、属组为数字时,就表明该文件的创建用户已被删除。
chattr命令
这个命令是change attribute的缩写,是用来改变文件扩展属性的命令。
chattr +i(-i) 文件名 锁定文件(取消锁定)不可删除与清空
chattr +a(-a) 文件名 添加内容(只可添加内容)
使用lsattr 文件名 查看文件的特殊权限
选项说明
-R #递归处理,将目录下的所有文件及子目录都加上此扩展属性
-v<版本编号> #设置文件或目录版本号
-V #显示指令执行过程;
+ <属性> #添加文件或目录的某个扩展属性
- <属性> #解除文件或目录的某个扩展属性
= <属性> #指定某个扩展性至指定的文件或目录
应用举例
#防止误删除的作用
[root@centos7 testdir]# chattr +a test2.txt
[root@centos7 testdir]# lsattr test2.txt
-----a---------- test2.txt
#不允许直接替换,只允许追加内容
[root@centos7 testdir]# echo "12345">test2.txt
-bash: test2.txt: Operation not permitted
lsattr命令
lsattr用来查看文件扩展属性,或者叫特殊属性。
特殊属性类型
文件的特殊属性有下面8种模式:
a #限定文件具有某种功能。这个对于日志文件非常有作用,比如,不允许删除,只允许向里面追加内容。
b #不更新或修改文件或目录的最后存储时间
c #将文件或目录压缩后存储
d #将文件或目录排除在倾倒操作之外
i #锁定文件或目录,不被更改
s #秘密删除文件或目录
S #动态实时更新文件或目录
u #防止文件或目录被意外删除
选项说明
-E #显示属性的当前值
-D #显示扩展属性的名称
-R #递归
-V #显示版本信息
-a #列出目录下所有文件,包括隐藏文件
#注意-E -D -R三个选项是不可以一起使用的,它们是相互排斥的。
应用举例
#查看文件或目录有没有扩展属性
[root@centos7 testdir]# echo "12345">>test2.txt
[root@centos7 testdir]# lsattr
---------------- ./dir
---------------- ./test2.txt~
-----a---------- ./test2.txt
lsattr: Operation not supported While reading flags on ./cp
[root@centos7 testdir]# echo "12345">>test2.txt
-bash: test2.txt: Permission denied
比如上述情况,如果此文件是一个要实时存储数据的文件,被锁定了,那么就可能会引发应用运行故障,所以,这时就可以通过lsattr命令来查看与排查。
默认权限
由此可以看出
root用户默认创建的目录权限是755,文件权限是644
普通用户默认创建的目录权限是775,文件权限是664
这也是系统默认的比较安全的权限分配,其实这些默认权限全部都是由umask值来决定的
系统规定了
文件的权限值是从666开始计算(默认权限=权限值-umask值)
目录的权限值是从777开始计算(默认权限=权限值-umask值)
文件1的权限=444 (666-232=434——43(3+1)4)