0X00 前言

可能对于Linux新手而言,很不解的一件事就是:
有时在访问文件xxx时,总是出现权限问题,但是上网一查,大佬们直接一句话:
chmod 777 xxx
完事!
相信你当时的心情是这样的:

我勒个神奇
然后之后遇到权限就照葫芦画瓢的chmod 777,也算是美滋滋。
不过,作为一个打破砂锅的程序猿怎么能就知道chmod 777!
当然提到chmod,我们一定先说清楚Linux的用户管理

0X01 Linux用户与群组

1、用户

我们知道,Linux有一个超级用户——root,它就是整个Linux系统的完全掌控者啊,只要root想做就没有root不能做的。
因此为了安全性等种种考虑,Linux设计者设计了普通用户,比如刚安装Linux的时候会创建一个用户就是一个普通用户(假设叫 j ),当然你可以用adduser指令来增添一个新的用户(当然需要超级权限):

sudo adduser rjs

此时就Linux就有了root,j,rjz三个用户,其中root是超级用户,j和rjs都是普通用户

2、群组

既然有了许多的用户就有了群组的概念,因为你认知的人多了,也就自然而然的分组了,有的是家人,有的是朋友,有的是同学等等。家人,朋友,同学就是群组:

有了用户和群组的概念,接下来就能好好讲权限问题了

0X01 Linux文件权限

1、权限描述

既然有了用户之分,那么一个用户(比如: j)创建的文件一般来讲就不会给其它用户(比如:rjs)随便篡改,也就是不能给其他人写(w),当然看看(r)还是可以的,也不用那么小气对吧23333
所以Linux的对于同一个文件,不同的用户是有不同的权限的,权限分别有:读( r),写(w),运行(x)

我们可以采用 ls -l 命令来查看文件权限:

ls   -l

会得到如下信息:

可以看到,本目录下有一个文件夹:Tencent Files 一个文档:wget-log
每一个文件(文件夹)前都有这样的描述:
drwxr-xr-x
-rwx-------

这就是文件的对于用户的权限!
那这是什么意思呢?且往下看

2、文件权限

上面的描述中一共有10位,其中第一位表示文件的属性:
d:表示是一个文件夹
l:表示是一个链接
-:表示是一个普通的文件
注意:这是第一位和后面的不一样

后面的就是我们的今天的主角——权限描述了。
可以看到是一串的 读( r)、写(w)、运行(x) 组成了,那为什么一排有好多个重复出现的 r、w 和 x 呢?
那是因为访问权限是按照用户划分的:

也就是说,从第2位开始,每三位分别表示 文件所有者、群组用户、其他用户 的权限
比如:
drwxr-xr-x
表示文件夹 Tencent Files 对于所有者 j 是 可读可写可执行的(rwx),而对于在同一个群组中的用户是 可读不可写可执行 的(r-x),对于其他用户也是 可读不可写可执行 的(r-x)
有了这个,我们的今天的主角——chmod 终于要登场了!

0X10 chmod 命令:修改文件的访问权限

chmod 就是用来修改文件权限访问权限的!没错就是上面所说的权限!
那 777 又是啥呢???
您嘞别急,请往下看

1、用数字来分配权限:chmod 的绝对用法

事实上,Linux 系统为每种权限(r、w 和 x)分配了对应的数字:

权限 数字
r 4
w 2
x 1

所以,如果我们要合并这些权限,就需要做简单的加法了:将对应的数字相加

假如我们要分配读、写权限,那么我们就要用 4+2,就等于 6。数字 6 表示具有读和写权限

以下是可能的组合形式:

权限 数字 计算
0 0 + 0 + 0
r– 4 4 + 0 + 0
-w- 2 0 + 2 + 0
–x 1 0 + 0 + 1
rw- 6 4 + 2 + 0
-wx 3 0 + 2 + 1
r-x 5 4 + 0 + 1
rwx 7 4 + 2 + 1

所以,对于访问权限的三组(所有者的权限、群组用户的权限、其他用户的权限),我们只要分别做加法就可以了,然后把三个和连起来。

例如,640 分别表示:

  • 文件的所有者有读和写的权限;
  • 文件所在群组的其他用户具有读的权限;
  • 除此之外的其他用户没有任何权限。

因此,我们可以给的最宽泛的权限就是 777:所有者,群组用户,其他用户都有读、写和运行的权限。这样,所有人就都可以对此文件“为所欲为”了。

相反,如果权限是 000,那么没有人能对此文件做什么。当然,除了 root 之外,root 可以做任何事。
看到现在是不是有一种豁然开朗的感觉:

但是既然看到这里了,不如继续往下看

2、用字母来分配权限:chmod 的相对用法

我们还可以用字母来分配权限,原理相似,但是又是不必写出所有的三组权限都写出来。有时候比较灵活
我们先来看不同字母代表的含义:

  • u:user 的缩写,表示所有者;

  • g:group 的缩写,表示群组用户;

  • o:other 的缩写,表示其他用户;

  • a:all 的缩写,表示所有用户。

    和这些字母配合的还有几个符号:

  • +:加号,表示添加权限;

  • -:减号,表示去除权限;

  • =:等号,表示分配权限。

举例

#文件 file.txt 的所有者增加读和运行的权限。
chmod u+rx file.txt#文件 file.txt 的群组其他用户增加读的权限。
chmod g+r file.txt #文件 file.txt 的其他用户移除读的权限。
chmod o-r file.txt #文件 file.txt 的群组其他用户增加读的权限,其他用户移除读的权限。
chmod g+r o-r file.txt #文件 file.txt 的群组其他用户和其他用户均移除读的权限。
chmod go-r file.txt #文件 file.txt 的所有用户增加运行的权限。
chmod +x file.txt #文件 file.txt 的所有者分配读,写和执行的权限;
#群组其他用户分配读的权限,不能写或执行;
#其他用户没有任何权限。
chmod u=rwx,g=r,o=- file.txt

后言

到这里,想必大家都完全明白 chmod 里面的含义了吧~希望大家看完有所收获<^^>
ps:今天我才知道原来上课讲过,羞耻啊!所以啊,同学们,好好听课!

————————————————————————————————————————————————
参考:Linux命令行与Shell脚本编程大全/15 群组的管理和文件权限管理

chmod 777 到底是啥 ???看完这个你就完全懂了!相关推荐

  1. 20221105新手老手怎么把网站权重提高收录提高最新php轻量级插件网站权重8怎么上去的seo到底怎么做看完本视频你就懂了许多了本插件适合所有网站所有cms长河网zhetiaohe源码无加密

    网站权重8怎么上去的seo到底怎么做,看完本视频你就懂了许多了,本插件适合所有网站所有cms长河网zhetiaohe源码无加密,对网站学习爱好者有大大的帮助 网站权重8怎么上去的seo到底怎么做,看完 ...

  2. 联通鸿蒙卡怎么样,联通腾讯大王卡对比百度大神卡:到底选谁看完就明白了

    联通腾讯大王卡对比百度大神卡:到底选谁看完就明白了最近几个月内,运营商三巨头之一的联通突然宣布与互联网三巨头(百度.阿里.腾讯)合作,推出适用不同消费群体的定制型号卡产品,令人惊喜的是在套餐资费优惠力 ...

  3. c语言游泳是怎么钓鱼的,钓鱼怎么找水层?看完这篇你就懂!

    原标题:钓鱼怎么找水层?看完这篇你就懂! 钓鱼的人经常会听到钓友们时常在谈论着草鱼.鲢鳙怎样找水层这样的问题.下面就给大家说一下鱼儿是怎样找水层的. 一.在什么情况下知道鱼儿们调皮了? 1.气压.水温 ...

  4. 级联rc滤波_了解无源RC滤波器,看完这篇你就懂了(二)

    在上一篇文章"了解无源RC滤波器,看完这篇你就懂了(一)"中,我们已经讨论了滤波器修改信号中各种频率分量振幅的方式.然而,除了振幅效应之外,电抗性电路元件总是引入相移. 低通滤波器 ...

  5. 红米k30 android版本,红米K30系列机型众多,傻傻分不清楚?看完这篇你就懂了

    红米K30系列机型众多,傻傻分不清楚?看完这篇你就懂了 2020-10-01 10:51:57 18点赞 33收藏 11评论 红米K30系列 不可否认的是,目前的手机厂商喜欢一次性发布几款新机型,以不 ...

  6. 发信息服务器恢复,手机短信删除了怎么恢复?看完恢复原理你就懂了!

    原标题:手机短信删除了怎么恢复?看完恢复原理你就懂了! 手机短信删除了怎么恢复?随着科技时代的进步,我们在线交流的方式越来越多,但很多重要的事情,我们还是会以短信的形式发送,比如面试通知.快递取件码等 ...

  7. 深度剖析:Redis分布式锁到底安全吗?看完这篇文章彻底懂了!

    ‍‍‍‍‍‍‍‍‍‍‍‍阅读本文大约需要 20 分钟. 大家好,我是 Kaito. 这篇文章我想和你聊一聊,关于 Redis 分布式锁的「安全性」问题. Redis 分布式锁的话题,很多文章已经写烂了 ...

  8. 深度剖析:Redis 分布式锁到底安全吗?看完这篇文章彻底懂了!

    作者 | Kaito 来源 | 水滴与银弹 阅读本文大约需要 20 分钟. 大家好,我是 Kaito. 这篇文章我想和你聊一聊,关于 Redis 分布式锁的「安全性」问题. Redis 分布式锁的话题 ...

  9. 适合新手小白,一个人一部手机如何做自媒体?看完我的你就懂了

    今天这期内容想来跟大家分享一下:一个人如何做好自媒体? 我主要会从新手如何选择设备.新手如何确定领域.新手如何拍摄剪辑视频.视频上传等几个方面来给小伙伴们做讲解. 同时大周考虑到很多人都是新手,我也给 ...

  10. 华为荣耀20和x10比较_华为畅享20Pro和荣耀X10哪个好 看完区别对比后就懂了

    华为畅享20Pro和 华为畅享20Pro和荣耀X10区别对比分析 两者差异主要集中在cpu,后置主摄.电池和屏幕.具体看图,我制作了一张比较图,左边是荣耀X10右边是畅享20 Pro. 后置主摄相差8 ...

最新文章

  1. swift_004(Storyboard进行界面跳转及传值)
  2. Andriod绘图的基础知识
  3. 简单实用一分钟上手级权限控制
  4. cesium 经纬度绘制点_炫酷大屏地图自定义绘制(一)
  5. Linux中配置文件复制粘贴格式错乱
  6. nginx日志中$request_time时间异常问题排查
  7. 让Cygwin支持中文
  8. db2查询字段备注_SQL基础7:SQLSERVER、ORACLE、DB2中SQL语句查询表字段名、注释、字段类型...
  9. 全国计算机等级考试三级数据库知识点总结
  10. lync 2013标准版安装
  11. word中有软回车(每行后面有向下的箭头)的解决方法
  12. c语言 界面编程 毕业设计,基于c语言的毕业设计.docx
  13. cbac式_CBAC
  14. u盘中毒如何删除system volume information文件
  15. JavaBean为什么需要序列化?
  16. 进程间的通信方式(1)
  17. 快手2020春季实习生及校招补招程序B卷
  18. 部署Weblogic10.3.6
  19. Python爬虫入门教程:博客园首页推荐博客排行的秘密
  20. 模拟接听电话的方法,兼容华为android5.0以上设备

热门文章

  1. FTP上传和WEB上传的区别
  2. java拯救公主_Java实现 计蒜客 拯救行动
  3. 关于数据采集的配置方法
  4. 新加坡圣淘沙亲子游自助游景点购票攻略
  5. 安卓如何关闭软键盘?
  6. 【C语言经典100例】-- 11 不死神兔问题
  7. Android动态ip请求,连接从Android设备的locahost使用动态IP地址(不断变化的)
  8. pip3 install -U qcloud-python-sts 安装失败解决方法
  9. DFS走迷宫(懒猫老师C++完整版)
  10. EXCEL用今天日期减去之前的日期得到结果