-
Linux系列:setfacl、getfacl的用法(授权单个用户权限、查看文件权限用户列表)
2020-11-30 22:20:46chmod命令可以把文件权限分为u,g,o三个组,而setfacl可以对每一个文件或目录设置更精确的文件权限。 添加handsome用户 读取test.txt权限 setfacl -m u:handsome:r test.txt 取消权限 setfacl -x u:handsome test....chmod命令可以把文件权限分为u,g,o三个组,而setfacl可以对每一个文件或目录设置更精确的文件权限。
添加handsome用户
读取test.txt权限
setfacl -m u:handsome:r test.txt取消权限
setfacl -x u:handsome test.txt查询权限
getfacl test.txt用法: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
-m, --modify-acl 更改文件的访问控制列表
-M, --modify-file=file 从文件读取访问控制列表条目更改
-x, --remove=acl 根据文件中访问控制列表移除条目
-X, --remove-file=file 从文件读取访问控制列表条目并删除
-b, --remove-all 删除所有扩展访问控制列表条目
-k, --remove-default 移除默认访问控制列表
--set=acl 设定替换当前的文件访问控制列表
--set-file=file 从文件中读取访问控制列表条目设定
--mask 重新计算有效权限掩码
-n, --no-mask 不重新计算有效权限掩码
-d, --default 应用到默认访问控制列表的操作
-R, --recursive 递归操作子目录
-L, --logical 依照系统逻辑,跟随符号链接
-P, --physical 依照自然逻辑,不跟随符号链接
--restore=file 恢复访问控制列表,和“getfacl -R”作用相反
--test 测试模式,并不真正修改访问控制列表属性
-v, --version 显示版本并退出
-h, --help 显示本帮助信息 -
秒懂Linux文件权限及chmod命令
2020-04-07 18:36:22文章目录概述Linux 安全体系简述账户组查看账户查看组理解文件权限修改文件的权限chmod 概述常用参数whowhatwhich实例修改单个文件权限修改多个文件权限数字速记法总结 概述 去年把自己的阿里云服务器从Windows系统...【版权申明】非商业目的注明出处可自由转载
博文地址:
出自:shusheng007以后本人所有文章将首发于 ShuSheng007的博客 欢迎大家关注
概述
去年把自己的阿里云服务器从Windows系统换成了 Ubuntu(一个Linux发行版本)。自己一直是使用Windows的,一直觉得Linux过于高深,自己非常抗拒去了解它,这次自己的服务器换成的Linux所以只能被动去了解了。
任何事物的流行都是存在原因的,Linux那么流行,肯定是有其独到的优势的,那些站在门外面的人肯定觉得自己现在使用东西是最好的,等真的推开门进去后却发现,原来世界上还有更好的,所以我们程序员要不轻易否定新事物,乐于接受新事物,用于尝试新事物,才能不落后。
嘚嘚了这么多,今天想总结一下关于Linux文件权限的一些知识,及相关命令。别害怕,书生的文章力求让人秒懂。
Linux 安全体系简述
Linux 是以用户账户来管理权限的,每个进入Linux系统的用户都会被分配唯一的用户账户,每个账户拥有不同的权限,这个应该非常容易理解。
例如组长王二狗的账户A 权限肯定比实习生牛翠花的账户B 权限高。账户系统虽然在控制单个用户安全性时很好用,但是涉及到共享资源的一组用户时就比较尴尬了,例如公司又招了个一个实习生上官无雪,公司给她分配了账户C, 但是日常工作中,牛翠花和上官无雪都需要操作同一组资源,那么就要分别给这两个账户增删权限,这只有两个实习生账户还好,但是以后账户多了可就不好管了,所以Linux还有**组(group)**的概念,在同一组的账户可以享有此组的所有权限。
账户
- 系统管理员账户(root)
root是系统中唯一的超级用户,具有系统中所有的权限,如启动或停止一个进程,删除或增加用户,增加或者禁用硬件等等。 - 系统账户
Linux为满足自身系统管理所内建的账号,通常在安装过程中自动创建,不能用于登录操作系统。 - 自定义账户
由root管理员创建供用户登录系统进行操作使用的账号
组
- 用户的主要组(primary group):一个用户必须属于一个且只有一个主要组
- 用户的附加组(supplementary group):一个用户可以属于一个或者零个附加组
查看账户
账户信息位于
/etc/passwd
文件内,使用如下命令查看cat /etc/passwd
结果如下:
root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin ... mysql:x:109:118:MySQL Server,,,:/nonexistent:/bin/false tomcat:x:1000:1000::/opt/tomcat:/bin/false
我们看下root账户每一列的含义,如下图所示:
注册名:口令:用户标识号(uid):组标识号(gid):注释性描述:用户主目录:用户登陆的shell类型- 注册名(username):用于区分不同的用户,例如root。
- 口令(password): 为了安全起见密码被加密存在
/etc/shadow
中,只显示一个x。 - 用户标识(uid):是一个整数,系统内部用它来标识用户, root 的uid是0。
- 组标识(gid):当前用户的工作组标识。
- 注释(comment):对此账户的一些描述。
- 用户主目录(home directory):是用户的起始工作目录,它是用户在登录到系统之后所处的目录。
- shell类型(shell used):用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。Shell是用户与Linux系统之间的接口
查看组
账户信息位于
/etc/group
文件内,使用如下命令查看cat /etc/group
结果如下:
root:x:0: sudo:x:27: ... mysql:x:118: tomcat:x:1000:
我们看下root账户每一列的含义,如下图所示:
含义图中已经标记的很清晰了。理解文件权限
上面之所以要嘚嘚那么多Linux用户和组的知识,主要是因为不明白上面的知识,下面再怎么讲都是一团浆糊。
那么一个文件的权限是指什么呢?目录的权限呢?
- 文件的权限分为:是否可读,是否可写,是否可执行,即 rwx
- 目录的权限分为:是否可进入,是否可以读/写、执行其内部的文件.
这些权限又被分为了3类:
- 文件拥有者
- 文件所属的组
- 其他账户
使用
ls -l
命令查看一个目录下的所有文件
例如我查看一下我服务器上tomcat目录下的文件/opt/tomcat# ls -l
drwxrwx--- 2 tomcat tomcat 4096 Apr 5 16:09 bin -rw-r----- 1 root tomcat 18982 Dec 8 00:46 BUILDING.txt drwxrwx--- 2 root tomcat 4096 Jan 11 18:11 conf -rw-r----- 1 root tomcat 5409 Dec 8 00:46 CONTRIBUTING.md drwxrwx--- 2 root tomcat 4096 Jan 11 13:57 lib -rw-r----- 1 root tomcat 57092 Dec 8 00:46 LICENSE drwxrwx--- 3 tomcat tomcat 12288 Apr 6 00:31 logs -rw-r----- 1 root tomcat 2333 Dec 8 00:46 NOTICE -rw-r----- 1 root tomcat 3255 Dec 8 00:46 README.md -rw-r----- 1 root tomcat 6898 Dec 8 00:46 RELEASE-NOTES -rw-r----- 1 root tomcat 16262 Dec 8 00:46 RUNNING.txt drwxr-x--- 2 tomcat tomcat 4096 Apr 5 10:10 temp drwxrwx--- 9 tomcat tomcat 4096 Apr 5 12:49 webapps drwxr-x--- 3 tomcat tomcat 4096 Jan 11 14:11 work
看到最左边一列了吗,我第一次接触的时候太懵逼了,完全不知道什么意思,-rw-r----- 什么jb玩意啊?弄懂了也就不难了,让我们一起来看一下:
总共10个字符:
第一个字符表示文件的性质:
-
:表示此行展示的是一个文件d
:表示此行展示的是一个目录
第2到4个字符表示此文件所有者对此文件的权限
第5到7个字符表示此文件所属于的组里面的账户对此文件的权限
第8到10个字符表示除了上面两类型的其他用户对此文件的权限
其中r
(read):可读,文件可以被查看。w
(write): 可写,文件可以被修改,删除。x
(execute):可执行,如果文件是脚本活程序,可以被执行。-
:无以上权限
我们来举个例子:
-rw-r----- 1 root tomcat 57092 Dec 8 00:46 LICENSE
上面的语句表明,LICENSE 是一个文件,其可以被其所有者读写,但不能执行。其仅仅可以被所属的组的用户查看,对于其他用户无权查看、修改、执行此文件。
修改文件的权限
终于到了
chmod
命令出场的时候了,我不会刻板的讲述此命令的各种参数,那是文档应该干的事情,依据二八定律,我们只讲那个八,就是最常使用的情形。chmod 概述
使用
chmod
来修改权限,我们需要告诉此命令如下几个关键信息:- Who:我们在为谁设置权限
- What:我们要增加还是移除这些权限
- Which: 我们要修改哪些权限
我们来举个例子
使用
ls -l
命令查看filePermissionTest.txt
文件-rw-r--r-- 1 root root 12 Apr 5 09:23 filePermissionTest.txt
可以看到其所有者对其具有读写权限,下面我们使用下面的命令给此用户加上可执行权限。
chmod u+x filePermissionTest.txt
执行后查看结果如下:
-rwxr--r-- 1 root root 12 Apr 5 09:23 filePermissionTest.txt
可见此文件所有者权限的标识已经从
rw-
变成了rwx
了,说明其已经拥有了此文件的执行权限。我们看一下
chmod u+x filePermissionTest.txt
这个命令是怎么起作用的:
who:u 表示是为此文件的用户设置权限
what:+ 表示是为此文件增加一个权限
which:x 表示要修改可执行权限可见只要按照
chmod who what which
来来使用这个命令就会变得很简单。那接下来的问题就是who、what、which 分别取什么值了。常用参数
who
u
:User, 此文件的所有者g
:Group, 此文件所属的组o
:Others, 其他用户a
:All,为以上三种用户设置权限
如果who 被省略了的话,默认使用a
.
what
-
: 减号,表示移除权限+
:加号,表示增加权限=
:等号,表示设置此权限并移除其他权限
which
r
: Read, 可读权限w
: Write,可写权限x
: execute,可执行权限
如果理解了上面的内容就足以应对日常工作中的使用情形了。
实例
下面我们来实际操作一下,毕竟理论和实践直接往往隔着巨大的鸿沟!
假设我有如下3个文件
-rw-r--r-- 1 root root 2 Apr 6 20:04 filePermissionTest2.txt -rwxr--r-- 1 root root 12 Apr 5 09:23 filePermissionTest.txt -rw-r--r-- 1 root root 12 Apr 6 20:04 helloLinux.html
修改单个文件权限
我要给
helloLinux.html
文件所属于的组(root组)加上写权限chmod g+w helloLinux.html
执行后的结果为
-rw-rw-r-- 1 root root 12 Apr 6 20:04 helloLinux.html
其已经从
-rw-r--r--
变成了-rw-rw-r--
,说明写权限已经加上了。修改多个文件权限
我一次性为others用户增加对后缀为
.txt
的文件的写权限chmod o+w *.txt
结果:
-rw-r--rw- 1 root root 2 Apr 6 20:04 filePermissionTest2.txt -rwxr--rw- 1 root root 12 Apr 5 09:23 filePermissionTest.txt -rw-rw-r-- 1 root root 12 Apr 6 20:04 helloLinux.html
数字速记法
当我想修改文件权限的时候就google了一下,看到
chmod 776 xxx
的命令一脸懵逼,776是什么东东?
其实这是rxw的数字简记法。其值如下所示,0到7的数字就代表了rxw
的所有组合权限 二进制 十进制 描述 - - - 000 0 无权限 - -x 001 1 只有执行权限 -w- 010 2 只有写入权限 -wx 011 3 写和执行权限 r- - 100 4 读权限 r-x 101 5 读取和执行的权限 rw- 110 6 读取和写入的权限 rwx 111 7 所有权限 例如上面
chmod 776 xxx
的命令表示为此文件的所有者和所属的组设置所有权限,为其他用户设置读写权限。总结
如果你完整了阅读了以上内容,相信你对于如何修改文件权限已经胸有成竹了,好文难得注意点赞和收藏。祝编码愉快,生活愉快,疫情之下,不被裁员。
引用文章:
How to Use the chmod Command on Linux
How To List Users and Groups on Linux - 系统管理员账户(root)
-
zip文件上传linux主机,解压后权限异常,用虚拟机解决文件权限问题
2007-09-21 10:08:00昨天下载了一个sablog的 安装包,是rar格式的,传到linux主机上不能解压,于是就用winrar解压再压缩成zip格式,传到linux主机上,解压顺利,但是安装的时候遇到了麻烦,提示权限不够,一查看,本来应该644的文件...昨天下载了一个sablog的 安装包,是rar格式的,传到linux主机上不能解压,于是就用winrar解压再压缩成zip格式,传到linux主机上,解压顺利,但是安装的时候遇到了麻烦,提示权限不够,一查看,本来应该644的文件权限,解压以后是600,导致权限不够,改权限吧,可恶的是空间商的CPanel提供了单个文件夹和单个文件的权限修改,sablog解压後层次目录那么多,一个一个来太麻烦,用tfp客户端工具leechftp可只能单个文件夹下多个文件一起修改权限,无法递归修改,只能另想办法了。
想起几天前装的虚拟机vmware,虚拟了一个Ubuntu和turbolinux,进ubuntu图形界面,用samba文件共享访问将本机win下的sablog拷贝过去,用chmod -R 744 sablog将权限全部修改,然后用 tar -cf 命令打包,回传到win下,然后在win下将打包的tar文件上传到远程linux主机,在远端解压,权限正常,可以正常安装,至此问题解决。
想不到linux下的目录安全性还给安装php程序带来了一点小麻烦,一直以来觉得zip压缩格式和rar压缩格式没有什么区别,今天终于知道了区别,zip还是比较老到啊,宝刀不老,在linux下win下通吃。
-
linux显示隐藏文件
2020-01-16 23:31:10linux显示隐藏文件指令: ...ls -l,显示每个文件的具体信息,包含类型,权限等。可在指令后面加如需要查看的文件进行过滤,如果不确定准确文件名,可用?或*来代替单个的字符或者多个字符(即文件扩展匹配)。 ...linux显示隐藏文件指令:
ls -a,通常用来显示隐藏文件,带有"."文件名的为隐藏文件
ls -R,显示当目录下的子目录及其子目录下包含的文件
ls -l,显示每个文件的具体信息,包含类型,权限等。可在指令后面加如需要查看的文件进行过滤,如果不确定准确文件名,可用?或*来代替单个的字符或者多个字符(即文件扩展匹配)。 -
Linux ACL权限
2017-07-19 20:57:20ACL是Access Control List的缩写,主要的目的是在提供传统的owner,group,others的read,write,execute权限之外的局部...ACL就是可以设置特定用户或用户组对于一个文件/目录的操作权限 查看分区ACL权限是否开启 -
(四)文件权限管理
2020-06-17 15:34:28Linux中每个文件都有文件所有者、所在组;每个文件创建 所有者:一般哪个用户创建了该文件,所有者就是谁; 所在组:默认这个文件所在组即为该创建文件用户所在组; 查看文件所有者: 语法: ls -lah 修改文件所有... -
【linux】与 用户、权限 有关的常用命令
2018-06-08 05:27:47# 查看**单个**文件、文件夹的权限信息 stat filename # 或者使用以下命令来查看当前目录下**所有**文件、文件夹的权限信息 ls -la # 显示username、groupname ls -na # 显示userid、groupid ls -l每个... -
linux命令之ACL权限
2014-12-02 21:08:56ACL是Access Control List的缩写,主要的目的是在提供传统的owner,group,others的read,write...简单地来说,ACL就是可以设置特定用户或用户组对于一个文件/目录的操作权限。 首先要查看系统是否支持ACL,具体的操作步骤 -
Linux文件系统的一些理解
2012-09-25 19:58:221. Linux的文件结构是单个的树状结构,可以用tree命令查看。每个分区都要挂载在某个目录下,目录是逻辑上的概念,分区是物理上的概念(磁盘分区) 2. 通过ls -l命令可以看到文件的访问权限 顺序是“ 用户-owner所在... -
linux高级权限(ACL与sudo)
2015-11-10 20:19:31ACL是Access Control List的缩写,主要的目的是在提供传统的owner,group,others的read,write,execute权限...简单地来说,ACL就是可以设置特定用户或用户组对于一个文件/目录的操作权限。首先要查看系统是否支持AC... -
入门学习Linux常用必会60个命令实例详解doc/txt
2011-06-09 00:08:45Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux... -
Linux基本指令
2020-01-22 14:36:30目录cd (change directory)改变路径返回上一级目录返回刚刚的目录去主目录ls (list)输出此路径下所有文件的详细信息(可以用来查看权限)显示所有文件(包括隐藏文件)touch新建单个文件新建多个文件cp (copy)复制老... -
【linux】linux基础常用命令(持续更新)
2020-07-02 00:40:45文章目录查看当前目录下的文件创建目录创建单个目录递归创建多个目录建立多个同级目录显示当前工作目录切换目录进入系统根目录返回上级目录跳转到指定目录删除目录强制删除目录删除文件删除全部文件复制文件或目录 ... -
Linux常用命令
2013-02-25 15:23:17chmod +x *.sh (单个sh文件) sudo chmod +x /usr/share/tomcat/bin/*.sh (多个个sh文件) 2.查看linux版本 cat /etc/issue 3.启动memcached ./memcached -d -m 2048 -u root -p 11211 关闭 kill 4.... -
Linux基础_Linux的基础命令
2020-09-19 21:55:18文章目录1 系统指令2 vi编辑3 文件操作4 chmod chown文件权限的命令 1 系统指令 查看shell命令的种类:echo $SHELL shell命令的基本语法:command -option file 如:ls -al 还有命令管道pipe,也也可以帮我们把多个... -
Linux ACLs
2010-11-20 23:02:00在linux下如果你希望对文件的访问权限进行更加灵活的控制,使用访问控制列表(ACLs)将是一个很好的方法。ACLs允许你将访问权限的控制精确到单个的组合用户。 使用ACL将涉及的命令有:tune2fs, ... -
Linux bin 目录下命令简要说明
2014-02-24 20:55:26alsacard 检测声卡 ...busybox标准Linux 工具的一个单个可执行程序实现,常用于嵌入式Linux ,参见本书“文件系统”内容 cat连接或显示文件 chgrp更改文件或目录的组所有权 chmod更改文件权限 c -
NTFS权限
2021-02-06 10:56:472021.2.6 日报#2 一、NTFS权限概述 1、通过设置NTFS权限,实现不同的用户访问不同的权限 2、分配了正确的访问权限后,用户才能访问...这三个代表有访问的访问(查看)的权限 修改=写入 读取运行 删除 当用户同时属于多 -
linux.chm文档
2015-07-07 06:37:39chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘 chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件 lsattr 显示特殊的属性 返回顶部索引 ^ 打包和... -
Linux中chown和chmod的用法
2020-12-02 09:18:59前面碰到一个一般访问服务器都是不用root用户,而是新建一个用户,`需要修改属主,或者修改读写权限`,以下是... ll # 新建一个test文件,并查看所有者和群组 chown Microstrong test # 把文件test的所有者改为Microst. -
ubuntu常用命令
2021-02-09 10:28:25command --help 查看某一个命令的用法。-h和-help一样。 man command 查看命令解释。 上下箭头选择刚刚执行过的命令。 ll 列出当前目录下文件详细信息。==ls -l ls 选项:-l 列出文件详细信息;单个ls显示文件名。 ... -
【学习笔记】MongoDB详细教程
2020-12-22 11:50:15文章目录MongoDB简介Windows下的下载与安装下载安装将MongoDB设置为系统服务Linux的下载与安装MongoDB前台启动MongoDB的后台启动MongoDB的配置文件客户端连接用户与权限管理常用权限创建用户并使用修改用户修改用户... -
PHPDisk网盘系统(T-Core) 6.0 utf8 20110928.zip
2019-05-27 11:26:36她是一套可用于网络上文件办公、共享、传递、查看的多用户文件存储系统。广泛应用于互联网、公司、网吧、学校等地管理及使用文件,多方式的共享权限,全方位的后台管理,满足从个人到企业各方面应用的需求。 为... -
每个类都可以独立成一个单独的控件,零耦合,每个控件一个头文件和一个实现文件,不依赖其他文件,方便单个控件以源码形式集成到项目中,较少代码量。qwt的控件类环环相扣,高度耦合,想要使用其中一个控件,必须...
-
网管教程 从入门到精通软件篇.txt
2010-04-25 22:43:49Axx:ARJ压缩文件的分包序号文件,用于将一个大文件压至几个小的压缩包中(xx取01-99的数字) A3L:Authorware 3.x库文件 A4L:Authorware 4.x库文件 A5L:Authorware 5.x库文件 A3M,A4M:Authorware Macintosh... -
尹成Python27天入门到项目实战
2020-12-05 17:04:22多进程多线程综合实战读取CSV写入csv单线程统计行数多线程统计行数多进程统计行数多线程检索数据第一步多线程检索赵琳多线程检索找到通知其他人退出多线程检索开放数据并保存同一个文件作业day24up ... -
3.4.1 有10个文件,每个文件1G,每个文件的每一行都存放的是用户的query,每个文件的query都可能重复。如何按照query的频度排序? 3.4.2 蚂蚁爬杆问题 3.4.3 当在浏览器中输入一个url后回车,后台发生了什么?比如...
-
文件系统缓冲是指在操作系统内核为每个文件数据开辟内存块,文件数据读写都是先在内存中读写, 内存没有的才由操作系统引发类似“缺页中断“发起真正的读写磁盘请求,从磁盘读写的数据再次缓冲到内存中。 ...
-
cx_Freeze:将python程序转换为带有一个动态链接库的可执行文件。 dh-virtualenv:构建并将 virtualenv 虚拟环境作为一个 Debian 包来发布。 Nuitka:将脚本、模块、包编译成可执行文件或扩展模块。 py2app:将 ...
-
在 Linux 上构建企业级 DNS 域名解析服务
-
介绍c语言中条件编译相关的预编译指令
-
Unity RUST 逆向安全开发
-
功能丰富的Mac视频转换器
-
腾讯云大牛神作:“redis深度笔记”,全是精华
-
PyTorch环境配置
-
网站被攻击怎么防御
-
Tests.NetCore.Service:仅用于测试目的而创建的测试服务-源码
-
RTT使用bug记录 Could not allocate configuration semaphore ‘sem‘ for
-
Spring Bean 未指定名称的命名规则
-
PyQt5 Qt.Popup属性窗口去除默认阴影边界
-
基于Flink+Hudi构建企业亿级云上实时数据湖教程(PC、移动、小
-
中央广播电视大学《综合英语3》期末总复习资料(含答案).pdf
-
长沙理工大学钢筋混泥土总题库.doc
-
vue的created方法
-
Docker从入门到精通
-
windows.iso镜像
-
app软件测试全栈系列精品课程
-
如何建立完美的顺序表 .docx
-
小程序应用的生命周期(uni-app)