Linux文件权限管理

对文件的所有者和所属组进行操作

所有者:创建文件的用户就是所有者;例如:user1用户创建了file.txt文件,通过ll命令查看到file.txt文件的所有者是user1

所属组:创建文件的用户所属的组;例如:user1用户属于user1组,user1用户创建了file.txt文件,通过ll命令查看到file.txt文件的所有组是user1组

设置文件的所有者

chown命令可以修改文件的属主,也可以修改文件属组

chown OWNER                        只修改所有者

chown OWNER:GROUP          同时修改所有者和属组

chown :GROUP                        只修改属组,冒号也可以用“.”来代替

chown --reference=RFILE        按照指定文件的属性来修改目标文件属性

chown -R                                  递归

例子:

chown user1 file.txt                修改file.txt的所有者为user1

chown user1:root file.txt         修改file.txt的所有者为user1,所属组是root

chown :root file.txt                  修改file.txt的所属组是root

chown --reference=a.txt file.txt        修改file.txt的所有者和所属组为a.txt的所有者和所属组

chown -R user1:user1 /data        修改/data目录以及目录下的内容的所有者和所属组为user1

设置文件的属组信息

chgrp命令可以只修改文件的属组 

chgrp --referenc=RFILE        按照指定文件的属性来修改目标文件属性

chgrp -R                                递归

例子

chgrp --referenc=a.txt file.txt        修改file.txt的所属组为a.txt的所属组

chgrp -R user1 /data                    修改/data目录以及目录下的内容的所属组为user1

文件权限控制

文件权限主要针对三种用户对象进行定义

 权限对文件来说

r        读权限可以查看文件内容

w       写权限可以修改文件内容

x        执行权限可以执行文件

权限对目录来说

r         可以使用ls查看此命令中文件列表

w        可以在此目录中创建文件,也可删除此命令中的文件,而和此被删除的文件的权限无关

x        可以cd进入此目录,可以使用ls -l查看此目录中文件元数据,属于目录的可访问的最小权限

修改文件权限

chmod命令可以根据不同用户对象设置不同权限

文件属主授予权限(说明:权限信息可以随意组合 rw rwx rx wx)
添加权限信息    chmod u+[ r / w / x ] 
删除权限信息    chmod u-[ r / w / x ]
设置权限信息    chmod u=[ r / w / x ]

文件属组授予权限
添加权限信息    chmod g+[ r / w / x ]
删除权限信息    chmod g-[ r / w / x ]
设置权限信息    chmod g=[ r / w / x ]

其他用户授予权限
添加权限信息    chmod o+[ r / w / x ]
删除权限信息    chmod o-[ r / w / x ]
设置权限信息    chmod o=[ r / w / x ]

所有用户授予权限
添加权限信息    chmod a+[ r / w / x ]
删除权限信息    chmod a-[ r / w / x ]
设置权限信息    chmod a=[ r / w / x ]


数字表达式授予权限

权限位表示:r        数字表示:4
权限位表示:w        数字表示:2
权限位表示:x        数字表示:1
权限位表示:-        数字表示:0

查看系统的umask权限,即默认权限

umask                默认为022

 umask权限的计算方法

文件的默认权限最大只能是666,而umask的值是022

“-rw-rw-rw-”减去 “-----w--w-”等于“-rw-r--r—”


目录的默认权限最大可以是777,而umask的值是022

“drwxrwxrwx”减去“d----w--w-”等于“drwx-r-xr-x”

Linux文件特殊权限 

特殊权限SUID

作用范围

仅适用于可执行文件,权限符号s,出现的位置属主的x位置

功能

重要用户对设有SUID的文件有执行权限,那么当用户执行此文件时,会以文件属主的身份去执行此文件,一旦文件执行结束,身份的切换也会随之消失

语法

方法一:chmod u+s  文件
方法二:chmod 4644 文件

使用场景

用户可以通过passwd命令可以更改密码, 原因是passwd命令文件的属主权限设置了suid特殊权限

特殊权限SGID

作用范围

sgid针对的是目录

符号是s/S(取决于group是否存在x权限),符号位置在group上
Linux中的所有用户,默认创建的文件,文件夹,属主和属组都是属于创建时的那个用户
设置了sgid的目录,会保证在这个目录下创建的文件、文件夹会自动继承父目录的属组

语法

方法一: chmod g+s  目录
方法二: chmod 2644 目录
guid权限与属组执行权限位共用, 执行权限位出现小写s表示文件属组有执行权限, 大写S表示文件文件属组没有执行权限

特殊权限Sticky

具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权,在目录设置Sticky权限位,只有文件的所有者或root可以删除该文件

语法

方法一: chmod o+t  目录
方法二: chmod 1644 目录
sticky权限与其他用户执行权限位共用, 执行权限位出现小写t表示文件其他用户有执行权限,大写T表示文件其他用户没有执行权限

隐藏权限

作用

设置文件的特殊隐藏属性,可以防止用户误操作删除或修改文件目录

 语法

chattr -R    递归处理目录下的所有文件
chattr -v    设置文件或目录版本
chattr -V    显示指令执行过程
chattr +    开启文件或目录的该项属性
chattr -    关闭文件或目录的该项属性
chattr =    指定文件或目录的该项属性

chattr +i     root用户和所有用户不能删除,移动,重命名文件,修改文件内容
chatrr +a     只能追加内容, 不能删除,移动,重命名文件

lsattr查看特殊权限 

-a     列出目录中的所有文件,包括隐藏文件
-d     只显示目录名称
-R    递归地处理指定目录下的所有文件及子目录
-v     显示文件或目录版本
-D    显示属性的名称、默认值
-E    显示从用户设备数据库中获得属性的当前值

访问控制列表

ACL功能

实现灵活的权限管理 除了文件的所有者,所属组和其它人,可以对更多的用户设置权限,CentOS7 默认创建的xfs和ext4文件系统具有ACL功能,CentOS7 之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加

ACL相关操作
setfacl用于设置ACL权限

创建acl权限语法

setfacl -m u:username:[rwx] file

设定 ACL 权限。如果是给予用户 ACL 权限,参数则使用 "u:用户名:权限" 的格式,
例如 setfacl -m u:st:rx /project 表示设定 st 用户对 project 目录具有 rx 权限

setfacl -m g:groupname:[rwx] file

如果是给予组 ACL 权限,参数则使用 "g:组名:权限" 格式,
例如 setfacl -m g:tgroup:rx /project 表示设定群组 tgroup 对 project 目录具有 rx 权限。 

删除acl权限语法

setfacl -x [u/g]:[username/groupname] file

删除指定用户(参数使用 u:用户名)或群组(参数使用 g:群组名)的 ACL 权限,
例如 setfacl -x u:st /project 表示删除 st 用户对 project 目录的 ACL 权限。

 删除所有acl权限语法

setfacl -b
删除所有的 ACL 权限,例如 setfacl -b /project 表示删除有关 project 目录的所有 ACL 权限

 递归设定acl权限

setfacl -R
递归设定 ACL 权限,指设定的 ACL 权限会对目录下的所有子文件生效
命令格式为 "setfacl -m u:用户名:权限 -R 文件名"(群组使用 g:群组名:权限)
例如 setfacl -m u:st:rx -R /project 表示 st 用户对已存在于 project 目录中的子文件和子目录拥有 rx 权限。

查看ACL权限

getfacl

-a    显示文件的ACL
-d    显示默认的ACL
-c    不显示注释标题
-e    显示所有的有效权限
-E    显示没有的有效权限
-R    递归到子目录

总结

到这文件权限的基本管理就讲完了,明天讲什么敬请期待!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值