当前位置: 首页 > news >正文

linux文件权限简单备忘知识点

文章目录

  • 前言
  • 基础概念
  • chmod 命令
  • chgrp 命令
  • chown 命令
  • 总结

前言

已经拖更好几天了,有些坚持的事情一旦中断便很难再捡起来了,所以还是尽可能的坚持下去,今天就简单记录一下文件权限相关的操作。

file_ls

这里先扔出一张图,这么懒的我居然画了一张图!不过前几天感冒状态不太好,这张图画了好几晚上才完成,就凑活看吧。

基本上看注释就能明白各列的含义,关于“文件硬链接数”这一列还有点疑问,在CentOS上测试,确实如注释所言,普通文件显示的硬链接数,目录文件显示的是第一级子目录的个数,但是在WSL上却不符合这个说法,暂时还没有找到原因,接下来还是列举下文件权限相关的操作吧。

基础概念

在linux系统中的每个用户必须属于一个组,不能独立于组外。而每个文件的权限区分所有者、所在组、其它人,就像图片中展示的那样

  • 所有者:指创建文件的人,拥有第一组权限
  • 所在组:指的是和所有者在同组的人,拥有第二组权限
  • 其他人:指排除掉前两类的其他人,拥有第三组权限

每组权限都分为读、写、执行三种具体权限,对应数字分别是4、2、1,字母表示为r、w、x,没有权限可以用-表示,也就是0,因为有这些表示方法,修改文件的命令形式也有很多种。

一个文件的访问权限是可以进行修改的,用户可以使用 chmod 命令来重新设定不同的访问权限,可以使用 chown 命令来更改某个文件或目录的所有者,也可以利用 chgrp 命令来更改某个文件或目录的用户组。

chmod 命令

上面说到文件的权限分为所有者、同组人、其他人三组,每组权限又有r、w、x三种权限,分别用数字4、2、1表示,举几个对照的例子如下

rwx r-x r–x  755
rw- r–- –--  640
rw- rw- r–-  664

因为表示的多样性,该命令有通常有字母表达式和数字表达式两种用法,格式如下:

chmod [who] [+ || =] [mode] filename

命令中各选项的含义为:

命令中的 who 可是下述字母中的任一个或者它们的组合:

  • u 表示所有者user
  • g 表示同组用户group
  • o 表示其他人other
  • a 表示所有用户all,是系统默认值

权限改变的符号可以是:

  • + 添加某个权限
  • 取消某个权限
  • = 赋予给定权限并取消其他所有权限(如果有的话)

命令中的 mode 所表示的权限可用下述字母的任意组合:

  • r 可读权限
  • w 可写权限
  • x 可执行权限
  • X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加 x 属性
  • u 与文件属主拥有一样的权限
  • g 与和文件属主同组的用户拥有一样的权限
  • o 与其他用户拥有一样的权限

常见写法如下:

$ chmod a+x happy.txt
$ chmod ug+w file.xml
$ chmod 755 a.out

chgrp 命令

该命令能改变文件或目录所属的组,语法如下:

chgrp [option] group filename

option参数可选:

-f,–quiet,–silent:  不显示错误信息
-R,–recursive:      递归处理,将指定目录下的所有文件及子目录一并处理
-v,–verbose:        显示指令执行过程

命令中group可以是用户组ID,也可以是/etc/group文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表,支持通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组的。

$chgrp -R mysql /opt/local/my.ini

chown 命令

该命令可以更改某个文件或目录的属主,也就是所有者。语法如下:

chown [option] groupname|username filename

chown可以将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户ID。组可以是组名或组ID。与 chgrp命令一样,参数文件也是以空格分开的要改变权限的文件列表,支持通配符。

option参数可选:

-f: 若该文件拥有者无法被更改也不要显示错误讯息
-h: 只对于连结(link)进行变更,而非该 link 真正指向的文件
-v: 显示拥有者变更的详细资料
-R: 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)

修改文件所有者的例子如下:

$ chown redis /ect/redis/redis.config

总结

  • ls -l 命令执行后的第5列,表示文件的硬连接数
  • chmod a+x happy.txt 可以修改文件的权限信息
  • chgrp a+x fruit.txt 可以修改文件的所有组信息
  • chown redis /ect/redis/redis.config 可以修改文件的所有者信息

==>> 反爬链接,请勿点击,原地爆炸,概不负责!<<==

鲁迅先生说“我向来是不惮以最坏的恶意,来推测中国人的,然而我还不料,也不信竟会下劣凶残到这地步。”
其实黑暗中往往也透露着光明~

相关文章:

  • 使用AddressSanitizer搭配addr2line查找C/C++内存泄漏问题
  • C++对我来说简直就是星辰大海,为了避免翻船,我选择从小河沟出发
  • cpplint中filter参数的每个可选项的含义
  • 手把手搭建一个redis集群
  • 换个角度来看看C++中的左值、右值、左值引用、右值引用
  • C/C++中的数据类型转换()/static_cast/dynamic_cast/const_cast/reinterpret_cast
  • C++11中std::move和std::forward到底干了啥
  • 使用box2dweb做一个下落的小球,宝宝玩的不亦乐乎
  • C++中使用std::sort自定义排序规则时要注意的崩溃问题
  • 从一个小题中的应用来体会下std::tie的便利之处
  • Floyd-Warshall——仅用4行代码就能解决多源最短路径问题的算法
  • Dijkstra——通过不断松弛来解决单源最短路径问题的算法
  • C++11中的std::atomic保证的原子性是什么
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • linux环境下从路径字符串中截取目录和文件名信息
  • ES6 ...操作符
  • express.js的介绍及使用
  • iOS 系统授权开发
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • js如何打印object对象
  • laravel 用artisan创建自己的模板
  • Linux中的硬链接与软链接
  • MD5加密原理解析及OC版原理实现
  • Python学习之路16-使用API
  • React-redux的原理以及使用
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 规范化安全开发 KOA 手脚架
  • 精彩代码 vue.js
  • 目录与文件属性:编写ls
  • 深度解析利用ES6进行Promise封装总结
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 异步
  • ​flutter 代码混淆
  • ​secrets --- 生成管理密码的安全随机数​
  • #### go map 底层结构 ####
  • #{}和${}的区别?
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (二)pulsar安装在独立的docker中,python测试
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (十一)手动添加用户和文件的特殊权限
  • (五)关系数据库标准语言SQL
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)为C# Windows服务添加安装程序
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .NET微信公众号开发-2.0创建自定义菜单
  • [<事务专题>]
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]