【腾讯云的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 条评论
登录 后参与评论

相关文章

来自专栏vue学习

npm

本来打算暑假将自己每天学到的东西写下来,每天做成一篇文章的,结果现在每周能产出一篇文章就不错了。。。【掩面】。。今天学了点npm命令行操作,就写一下

911
来自专栏我的博客

Ubuntu安装Samba

场景: a用户可以共享/data/share/a和/data/share/a/c; b用户可以共享/data/share/b; c用户可以共享/data/...

4654
来自专栏云计算教程系列

如何在CentOS 7上使用Etckeeper进行版本控制管理/ etc

在Linux生态系统中,必须定期安装,维护和升级软件。但是,仍然需要跟踪对本地配置文件所做的更改。与在进行更改之前制作配置文件副本的旧备用数据库相反,etcke...

1331
来自专栏电光石火

python3和python2共存

特别说明,本文是在Windows64位系统下进行的,32位系统请下载相应版本的安装包,安装方法类似。

2276
来自专栏云计算教程系列

如何在Ubuntu 16.04上设置Node.js生产应用程序

Node.js是一个开源JavaScript运行时环境,用于轻松构建服务器端和网络应用程序。该平台可在Linux,OS X,FreeBSD和Windows上运行...

400
来自专栏架构技术

使用docker+consul+nginx集成分布式的服务发现与注册架构

consul-Server 是运行在docker里的consul实例的server模式,可以通过DNS或者HTTP接口使服务注册并对容器进行健康状态检查,con...

843
来自专栏运维小白

4.2 du命令

du命令 du命令,查看文件的大小 du命令用法 du -sh 目录/文件命令用法 du -sh 目录/文件 查看目录或文件的大小 [root@localh...

2109
来自专栏散尽浮华

linux下的缓存机制及清理buffer/cache/swap的方法梳理

1)缓存机制介绍 在Linux系统中,为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件,当内核收到读写的请求时,内核先去缓存...

3748
来自专栏Pythonista

Linux之文档与目录结构

Linux目录结构的组织形式和Windows有很大的不同。首先Linux没有“盘(C盘、D盘、E盘)”的概念。已经建立文件系统的硬盘分区被挂载到某一个目录下,用...

1333
来自专栏Python中文社区

Linux进程监控工具Supervisor简易使用教程

專 欄 ❈ gw1770df,Python中文社区专栏作者,从事Python开发工作,全栈工程师。 博客: https://word.gw1770df.cc ...

3596

扫码关注云+社区