Linux文件权限和目录权限
时间:2020-05-17
本文章向大家介绍Linux文件权限和目录权限,主要包括Linux文件权限和目录权限使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本篇主要讲述:
1 文件和目录的基本权限
2 设置基本权限(chmod,chown,chgrp)
3 附加权限(特殊权限)
4 ACL策略权限
5 文件与目录的默认权限与隐藏权限
1、基本权限
1.1 访问方式(权限)
读取:允许查看内容-read r
写入:允许修改内容-write w
可执行:允许运行和切换-execute x
1.2 使用者与群组
权限适用对象(归属)
所有者:拥有此文件/目录的用户-user u
所属组:拥有此文件/目录的组-group g
其他用户:除所有者、所属组以外的用户-other o
1.3 查看文件或者目录自身的属性
使用 ls -ld 命令
ls -ld 文件或目录 #查看文件或者目录自身的属性
[root@localhost /]# ls -ld /root dr-xr-x---. 3 root root 4096 May 10 15:23 /root
内容分析:
(1)第一栏代表这个文件的类型与权限;
其中第一个字符
以 - 开头:文本文件
以 d 开头:目录
以 l 开头:快捷方式
接下来的字符中,以三个为一组
第一组为“文件拥有者可具备的权限”
第二组为“加入此群组之帐号的权限”
第三组为“非本人且没有加入本群组之其他帐号的权限”
(2)剩下的字段含义
第二栏表示有多少文件名链接到此节点(i-node)
第三栏表示这个文件(或目录) 的“拥有者帐号”
第四栏表示这个文件的所属群组
第五栏为这个文件的容量大小,默认单位为Bytes
第六栏为这个文件的创建日期或者是最近的修改日期
第七栏为这个文件的文件名
2、设置基本权限
2.1 使用 chmod 命令
chmod [-R] 归属关系+-=权限类别 文档...
更改权限的方法:
第一种:以数字的形式 r:4 w:2 x:1
案例:
[root@server0 ~]# mkdir /nsd01 [root@server0 ~]# ls -ld /nsd01/ drwxr-xr-x. 2 root root 6 11月 24 20:16 /nsd01/ [root@server0 ~]# chmod 777 /nsd01/ [root@server0 ~]# ls -ld /nsd01/ drwxrwxrwx. 2 root root 6 11月 24 20:16 /nsd01/
第二种:符号类型 user=u ; group=g; other=o ; all=a
案例:
[root@server0 ~]# chmod u=rwx,g=rw,o=--- /nsd01/ [root@server0 ~]# ls -ld /nsd01/ drwxrw----. 2 root root 6 11月 24 20:16 /nsd01 [root@server0 ~]# mkdir /nsd01 [root@server0 ~]# chmod g+w /nsd01 [root@server0 ~]# chmod u-w /nsd01 [root@server0 ~]# chmod o=rwx /nsd01 [root@server0 ~]# chmod u=rwx,g=rx,o=--- /nsd01
临时切换用户身份:
[root@server0 ~]# su - zhangsan
(不能将 - 去掉,代表所处的环境也切到另一个用户上去了)
目录的 r 权限:能够 ls 浏览此目录内容
目录的 w 权限:能够执行 rm/mv/cp/mkdir/touch/等更改目录内容的操作
目录的 x 权限:能够 cd 切换到此目录
总结:在Linux中新建目录默认的权限rwxr-xr-x
在Linux中新建文件默认的权限rw-r--r--
为什么新建目录或者文件是这样的权限?
umask 命令了解一下
[root@localhost ~]# umask 0022
案例:以root用户新建/nsddir/目录,在此目录下新建readme.txt文件,并进一步完成下列操作
1)使用户zhangsan能够在此目录下创建子目录 切换用户 su - zhangsan
chmod o+w /nsddir/
2)使用户zhangsan不能够在此目录下创建子目录
chmod o-w /nsddir/
3)使用户zhangsan能够修改readme.txt文件
chmod o+w /nsddir/readme.txt
4)调整此目录的权限,使所有用户都不能进入此目录
chmod u-x,g-x,o-x /nsddir/
5)为此目录及其下所有文档设置权限 rwxr-x---
chmod -R u=rwx,g=rx,o=--- /nsddir/
2.2 使用 chown 命令
设置文档归属
– chown [-R] 属主 文档...
– chown [-R] :属组 文档...
– chown [-R] 属主:属组 文档...
案例:
[root@server0 /]# mkdir /nsd03 [root@server0 /]# ls -ld /nsd03 [root@server0 /]# groupadd test [root@server0 /]# chown zhangsan:test /nsd03 [root@server0 /]# ls -ld /nsd03 [root@server0 /]# chown student /nsd03 [root@server0 /]# ls -ld /nsd03 [root@server0 /]# chown :root /nsd03 [root@server0 /]# ls -ld /nsd03
2.3 使用chgrp命令
change group
chgrp [-R] 组名 文件名/目录名
组名信息存放在/etc/group下
3 、附加权限(特殊权限)
3.1 Set GID 在该父目录上操作,属组+s,新建的子目录都会继承父目录的属组
(1)特点:
附加在属组的 x 位上;
属组的权限标识会变为 s
适用于目录,Set GID可以使目录下新增的文档自动设置与父目录相同的属组(继承)
(2)对于属组而言
如何判断原来的权限是否有x:
大写S 表示原来属组的权限没有x
小写s表示原来的属组的权限有x
(3)具有继承作用
[root@server0 ~]# mkdir /nsd06 [root@server0 ~]# ls -ld /nsd06 drwxr-xr-x. 2 root root 6 11月 24 11:51 /nsd06 #nsd06刚开始的权限和属组 [root@server0 ~]# chown :test /nsd06 [root@server0 ~]# ls -ld /nsd06 drwxr-xr-x. 2 root test 6 11月 24 11:51 /nsd06 #更改属组之后的权限 [root@server0 ~]# mkdir /nsd06/abc01 #新建子目录abc01 [root@server0 ~]# ls -ld /nsd06/abc01/ drwxr-xr-x. 2 root root 6 11月 24 11:53 /nsd06/abc01/ #属组和父目录没有关系
[root@server0 ~]# chmod g+s /nsd06 #属组权限+s [root@server0 ~]# ls -ld /nsd06 drwxr-sr-x. 3 root test 18 11月 24 11:53 /nsd06 [root@server0 ~]# mkdir /nsd06/abc02 #新建子目录abc02 [root@server0 ~]# ls -ld /nsd06/abc02 drwxr-sr-x. 2 root test 6 11月 24 11:54 /nsd06/abc02 #继承了父目录nsd06的所有者,属组
3.2 Set Uid(并没有继承)
[root@server0 ~]# ls -ld /nsd/ #nsd目录的权限 drwxr-sr-x. 2 harry adminuser 20 11月 25 09:58 /nsd/ [root@server0 ~]# chmod u+s /nsd/ #对所有者加s,是否能够继承? [root@server0 ~]# ls -ld /nsd/ drwsr-sr-x. 2 harry adminuser 35 11月 25 10:09 /nsd/ [root@server0 ~]# touch /nsd/nsd2.txt #在目录下新建子文件 [root@server0 ~]# ls -ld /nsd/nsd2.txt #查看新文件的权限 -rw-r--r--. 1 root adminuser 0 11月 25 10:10 /nsd/nsd2.txt
对Set uid一般情况下不使用s权限,这样会造成 对系统的安全存在风险
– 属主的权限标识会变为 s
– 适用于可执行文件,Set UID可以让使用者具有文件属主的身份及部分权限拥有root的权限
3.3 Sticky bit
附加在其他人的x位上
其他人的权限标识会变为t
适用于开放w权限的目录,可以阻止用户滥用w写入权限(禁止操作别人的文档)
4、ACL策略权限
使用场景:当用户属组具有写(或者其他)的权限,其他人什么权限也没有,来了一个想要查看文件的用户,但不能使该用户具有写。
意义:能够对个别用户,个别组设置独立的权限
4.1 acl策略的作用
文档归属的局限性;
任何人只属于三种角色:属主、属组、其他人;
无法实现更精细的控制。
4.2 acl访问策略
能够对个别用户、个别组设置独立的权限;
大多数挂载的EXT3/4、XFS文件系统默认已支持。
案例:
[root@server0 /]# mkdir /nsd10 #新建目录 [root@server0 /]# chmod o=--- /nsd10 #使该目录对其他人没有任何权限 [root@server0 /]# su - zhangsan #验证 [zhangsan@server0 ~]$ cd /nsd10 -bash: cd: /nsd10: Permission denied #不能进入 [zhangsan@server0 ~]$ exit #回到root logout [root@server0 /]# setfacl -m u:zhangsan:rx /nsd10 #设置ACL,使能够具有读和执行权限 [root@server0 /]# su - zhangsan #验证 [zhangsan@server0 ~]$ cd /nsd10 #可以进入 [zhangsan@server0 nsd10]$ pwd [zhangsan@server0 nsd10]$ exit #回到root logout
4.3 使用 getfacl、setfacl 命令
– getfacl 文档... #查看acl策略
– setfacl -m u:用户名:权限类别 文档...
– setfacl -m g:组名:权限类别 文档...
– setfacl -b 文档... #清除所有的ACL策略
– setfacl -x 文档... #清除指定的ACL策略
案例:
[root@localhost home]# getfacl happyday/ #查看未设置ACL策略的命令 # file: happyday/ # owner: root # group: root user::rwx group::r-x other::r-x
[root@localhost home]# setfacl -m u:happy:rwx happyday/ #对文件夹设置ACL策略 [root@localhost home]# setfacl -m u:nice:rwx happyday/ [root@localhost home]# setfacl -m u:good:rx happyday/ [root@localhost home]# getfacl happyday/ #查看 # file: happyday/ # owner: root # group: root user::rwx user:happy:rwx user:nice:rwx user:good:r-x group::r-x mask::rwx other::r-x [root@localhost home]# setfacl -x u:happy happyday/ [root@localhost home]# getfacl happyday/ # file: happyday/ # owner: root # group: root user::rwx user:nice:rwx user:good:r-x group::r-x mask::rwx other::r-x [root@localhost home]# setfacl -b happyday/ [root@localhost home]# getfacl happyday/ # file: happyday/ # owner: root # group: root user::rwx group::r-x other::r-x
5 文件与目录的默认权限与隐藏权限
5.1 文件的默认权限 umask
第一个数字特殊权限使用的
后三个数字为默认值需要减掉的权限(r:4 w:2 x:1)
因为 umask 为 022 ,所以 user 并没有被拿掉任何权限,不过 group 与 others 的权限被拿掉了 2 (也就是 w 这个权限)
该默认值得设置参考/etc/bashrc文件,建议不要修改此文件
5.2 文件的隐藏属性
(1)使用chattr设置文件隐藏属性
chattr 选项 参数 目录或文件
选项:
+ :增加某一个特殊参数,其他原本存在参数则不动。
- :移除某一个特殊参数,其他原本存在参数则不动。
= :设置一定,且仅有后面接的参数
参数:
A :当设置了 A 这个属性时,若你有存取此文件(或目录) 时,他的存取时间 atime 将不会被修改,可避免 I/O 较慢的机器过度的存取磁盘。(目前建议使用文件系统挂载参数处理这个项目)
S :一般文件是非同步写入磁盘的(原理请参考[前一章sync](../Text/index.html#sync)的说明) ,如果加上 S 这个属性时,当你进行任何文件的修改,该更动会“同步”写入磁盘中。
a :当设置 a 之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有root 才能设置这属性
c :这个属性设置之后,将会自动的将此文件“压缩”,在读取的时候将会自动解压缩,但是在储存的时候,将会先进行压缩后再储存(看来对于大文件似乎蛮有用的!)
d :当 dump 程序被执行的时候,设置 d 属性将可使该文件(或目录) 不会被 dump 备份
i :这个 i 可就很厉害了!他可以让一个文件“不能被删除、改名、设置链接也无法写入或新增数据!”对于系统安全性有相当大的助益!只有 root 能设置此属性
s :当文件设置了 s 属性时,如果这个文件被删除,他将会被完全的移除出这个硬盘空间,所以如果误删了,完全无法救回来了喔!
u :与 s 相反的,当使用 u 来设置文件时,如果该文件被删除了,则数据内容其实还存在磁盘中,可以使用来救援该文件喔!
注意1:属性设置常见的是 a 与 i 的设置值,而且很多设置值必须要身为 root 才能设置
注意2:xfs 文件系统仅支持 AadiS 而已
(2)使用lsattr 显示文件的隐藏属性
-a :将隐藏文件的属性也显示出来;
-d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名;
-R :连同子目录的数据也一并列出来!
(3) 观察文件的类型
文件是ASCII或者是data文件或者是binary(二进制文件)?
使用file命令
原文地址:https://www.cnblogs.com/cp-linux/p/12903953.html
- 时钟AnalogClock与DigitalClock
- 细数那些在2017年被黑客滥用的系统管理工具和协议
- Compass: 在你的应用中集成搜索功能
- 列表选择Spinner
- 巧用CSS3 :target 伪类制作Dropdown下拉菜单(无JS)
- 开源的虚拟机软件 VirtualBox v1.5.2
- Farseer:一个用于Silverlight和XNA的开源物理引擎
- Visual Studio 2008 debug的时候发生郁闷的错误ContextSwitchDeadlock was detected
- LINQ TO XML
- 不被未来折叠掉:AI时代下的思考
- Google 分析的基准化测试
- WebFont 三宗罪之一:WebFont 与 FOUT
- 探究基于声明的身份标识
- 深化“互联网+先进制造业”发展工业互联网的系列解读二:打造平台体系
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 啊,http2还没搞明白,http3又来了?
- 掌握Linux文件权限,看这篇就够了
- 【shell脚本入门到精通】基本规范及良好的编写习惯
- shell脚本的函数介绍使用和常用案例
- 详解shell脚本case条件语句,开发各种服务启动脚本跳板机
- 详解自动交互命令expect,免去手动输入!
- 快速掌握shell脚本的各种循环语句
- 详解shell脚本的4种表达式
- Linux shell中这7种运算命令值得掌握!
- 快速掌握shell脚本数组,看这篇
- 详解shell脚本的环境、普通、特殊变量
- 玩转zabbix之超详细的二进制安装
- 玩转zabbix之源码编译安装,添加主机监控
- 总结一篇shell调试技巧及常见的脚本错误
- 备战金九银十:当你裸辞遇到了面试难,你需要了解一下这些面试题