【腾讯云的1001种玩法】Centos系统文件权限的系统阐述与演示

在linux服务器日常管理中,我们会经常管理查看文件或者文件夹的权限内容以保证服务的正常运行。 今天就和大家聊聊文件权限的那些事。

查看文件的权限情况可以用 ll 命令 例:

ll -d /kid                #查看此文件(夹)的详细信息
ll /kid                     #查看此文件夹中文件(夹)的详细信息

可以看到如: drwx-r–r– (一共10个参数) 表示文件所属组和用户的对应权限。 第一个参数d属于特殊权限,与chmod无关,我们下次再说。其中 第2-4个参数:属于user (所有者) 第5-7个参数:属于group (所属组) 第8-10个参数:属于others (其他)

接下来就简单了:r==>可读; w==>可写; x==>可执行 r=4 w=2 x=1

所以755代表 rwxr-xr-x 所有者具有读写执行权限,所属组具有读和执行权限,其他人只有执行权限。

所以用chmod命令改变文件权限时

chmod 777 /文件名/ #代表 rwxr-rwx-rwx 所有用户都可读可写可执行。 当然chmod还有其他用法,如:

chmod u+x  /文件名/                   #给u(user)加上x(执行)权限
chmod -R  777 /文件夹/              #给此文件夹下所属文件夹和文件都赋予777权限 R代表递归

这时候你可能要问了,如何判断一个文件的user和group呢?

其实很简单,以下面代码为例

drwxrwsrwx 4 root root 4096 Jan 17 22:07 /kid/ 标粗部分,第一个root代表user (所有者),第二个root代表group (所属组)

如果你想更改一个文件的group (所属组)也很简单,使用chown命令即可

chown root:kid /文件名/ #将此文件的所有者改为root,所属组改为kid组

上面我们讲了linux中文件权限的基础内容。下面我们深入的了解一下文件权限的内容:ACL

第一个问题:ACL是什么?

用通俗的话来说就是:本来对于一个文件/目录来说,只有三种人,user、group、other,现在来了第四个人,但是我要给他的权限与前三个不一样,所以,这时候我就要用到ACL,额外给他一个不一样的权限。

第二个问题:如何使用ACL?

在使用ACL之前,我们需要查看文件所在的分区是否支持ACL权限。因为ACL权限的使用需要分区的支持。

如何查看分区是否支持ACL权限?

dumpe2fs -h /dev/vda1 -h 仅显示超级块中的信息,而不显示磁盘块组的详细信息。

看到红框内的内容,就代表此分区支持acl权限,一般来说也是默认支持的。 这里再告诉大家一个查看系统分区的命令

df -h #查看系统分区 那么如果万一分区不支持ACL怎么办?

有两种方法

第一种:临时开启ACL

mount -o remount,acl / 重新挂载根分区,并加入acl权限 第二种:永久开启ACL

vim /etc/fstab /dev/vda1 / ext3 defaults,acl 1 1 #在ext3(文件系统)后一列加上,acl即可永久开启ACL mount -o remount / # 重新挂载或重启使其生效 终于到设定ACL权限的环节了! 如何设定ACL权限?

acl操作基本命令:

setfacl 选项 文件名 -m 设定acl权限 -x 删除指定acl权限 -b 删除所有acl权限 -d 设定默认acl权限 -k 删除默认acl权限 -R 递归设定acl权限 具体操作示例:

setfacl   -m     u:用户名:rwx       文件名         #给某个用户设定rwx权限
setfacl   -m     g:组名:rwx          文件名          #给某个组设定rwx权限

使用getfacl命令查看acl权限

红框内可以看到kxkid用户已经获取到了读和执行权限

在上图,我们可以user下有一个mask设定,那么 在acl中mask是什么?

最大有效权限mask:mask是用来指定最大有效权限的。如果我给用户赋予了acl权限,是需要和mask权限“相与”才能得到用户的真正权限。

以上图为例,mask权限为r-x,那么,即使acl权限为rwx,与mask相与后,仍然只有r-x权限。

如何设定msak最大有效值?

setfacl -m m:rwx 文件名 #设定mask为rwx 其他setfacl命令示例:

setfacl    -x       u:用户名            文件名 
setfacl    -b       文件名 
setfacl    -m      u:用户名:权限     -R(只能加这)  文件名      #递归创建,作用于父目录与所有子目录设置acl,即已经存在的文件设置,若是新建目录/文件,则没有acl 
setfacl    -m      d:u:用户名:权限   文件名                        #设定默认,若以后在此目录里创建新文件/目录都默认有acl权限

提醒:若是在递归创建之后,在设定默认创建之前创建的新文件,则不受这两个的影响,需要单独设定

以上就是关于linux 文件权限和acl权限的所有内容,要想熟练使用,还需要自己多加练习! 下次有时间和大家聊一聊文件特殊权限的内容,希望大家喜欢

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏跟着阿笨一起玩NET

c#实现打印功能

3702
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

5228
来自专栏张善友的专栏

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name “LINQ via C...

3005
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

8668
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2997
来自专栏java 成神之路

使用 NIO 实现 echo 服务器

5567
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2782
来自专栏张善友的专栏

Silverlight + Model-View-ViewModel (MVVM)

     早在2005年,John Gossman写了一篇关于Model-View-ViewModel模式的博文,这种模式被他所在的微软的项目组用来创建Expr...

3278
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2936
来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.4K7

扫码关注云+社区