Linux基本功系列之chmod命令实战

简介: Linux基本功系列之chmod命令实战

在这里插入图片描述

@[toc]

前言🚀🚀🚀
想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。
💓 知识最重要的是记忆
💓 入门须知: 想要人生从容,必须全力以赴,努力才是你最终的入场券🚀🚀🚀
💕 最后: 努力成长自己,愿我们都能在看不到的地方闪闪发光 ,一起加油进步🍺🍺🍺

一. chmod命令介绍

chmod命令来自于英文词组”change mode“的缩写,其功能是用于改变文件或目录权限的命令。

默认只有文件的所有者和管理员root可以设置文件权限,普通用户只能管理自己文件的权限属性。

设置权限时可以使用数字法,亦可使用字母表达式,对于目录文件建议加入-R参数进行递归操作,意味着不仅对于目录本身,也对目录内的子文件/目录都进行新权限的设定。

二. 语法格式及常用选项

常用参数:
我们可以使用 --help查看所有参数的使用。

[root@mufenggrow ~]# chmod --help
用法:chmod [选项]... 模式[,模式]... 文件...
 或:chmod [选项]... 八进制模式 文件...
 或:chmod [选项]... --reference=参考文件 文件...
Change the mode of each FILE to MODE.
With --reference, change the mode of each FILE to that of RFILE.

  -c, --changes          like verbose but report only when a change is made
  -f, --silent, --quiet  suppress most error messages
  -v, --verbose          output a diagnostic for every file processed
      --no-preserve-root  do not treat '/' specially (the default)
      --preserve-root    fail to operate recursively on '/'
      --reference=RFILE  use RFILE's mode instead of MODE values
  -R, --recursive        change files and directories recursively
      --help        显示此帮助信息并退出
      --version        显示版本信息并退出

从chmod的帮助文档中,我们发现 chmod的常用参数为:

在这里插入图片描述

三. 参考案例

修改权限的方式有两种:

第一种: 使用字符的设定进行修改

语法:chmod [对谁操作] [操作符] [赋于什么权限] 文件名

u----> 用户user,表示文件或目录的所有者
g---->用户组group,表示文件或目录所属的用户组
o---->其它用户others
a---->所有用户all

第二种: 使用八进制数字表示权限

数字型文件权限:

r=4 可读权限
w=2 可写权限
x=1 执行权限
没有任何权限为:0

我们一起看一下常见的权限操作:

3.1 对全部用户增加写的权限

读的权限为r,对所有用户增加读权限,意味着: 所有者,所有组,其他用户都设置为读的权限。

我们使用 字符设定来进行修改:

[root@mufenggrow test]# touch a.txt
[root@mufenggrow test]# ll a.txt
-rw-r--r--. 1 root root 0 1月  21 16:17 a.txt
[root@mufenggrow test]# chmod a+w a.txt
[root@mufenggrow test]# ll a.txt
-rw-rw-rw-. 1 root root 0 1月  21 16:17 a.txt
[root@mufenggrow test]# 

可以看到,原本所有组和其他用户只有读的权限,使用chmod后,a.txt所有用户都具有了写权限。

3.2 所有用户减去读的权限

根据3.1的写法,我们可以猜测,减去读的权限为 a-r, 接下来我们测试下:

[root@mufenggrow test]# ll a.txt
-rw-rw-rw-. 1 root root 0 1月  21 16:17 a.txt
[root@mufenggrow test]# chmod a-r a.txt
[root@mufenggrow test]# ll a.txt
--w--w--w-. 1 root root 0 1月  21 16:17 a.txt
[root@mufenggrow test]# 

可以看到,现在a.txt文件之后写权限了。

3.3 给文件的所有者和所有组加上读写权限

读写权限为 rw
所有者和所有组为: gu
意味着我们要使用 chmod gu+rw,接下来我们测试下:

[root@mufenggrow test]# ll a.txt
--w--w--w-. 1 root root 0 1月  21 16:17 a.txt
[root@mufenggrow test]# chmod ug+rw a.txt
[root@mufenggrow test]# ll a.txt
-rw-rw--w-. 1 root root 0 1月  21 16:17 a.txt
[root@mufenggrow test]# 

3.4 设置所有用户为读写执行的权限

读写执行为: rwx
所有用户可以用: a=rwx

[root@mufenggrow test]# ll a.txt
-rw-rw--w-. 1 root root 0 1月  21 16:17 a.txt
[root@mufenggrow test]# chmod a=rwx a.txt
[root@mufenggrow test]# ll a.txt
-rwxrwxrwx. 1 root root 0 1月  21 16:17 a.txt

3.5 文件拥有着为rwx,所属组为rw,其它为r

我们来分析下这个题目:
所有组 为rwx ,意味着 u=rwx
所有组为 g=rw
其他为r ,以为着 o=r

所以我们应该执行:

[root@mufenggrow test]# chmod u=rwx,g=rw,o=r a.txt
[root@mufenggrow test]# ll a.txt
-rwxrw-r--. 1 root root 0 1月  21 16:17 a.txt
[root@mufenggrow test]# 

这里出现多个的时候,一定要加逗号分割开。

3.6 去掉所有者的rw权限

去掉所有这点rw权限,这里我们使用的操作符是 -

所有这是U ,最终答案为: U-rw

root@mufenggrow test]# ll a.txt
-rwxrw-r--. 1 root root 0 1月  21 16:17 a.txt
[root@mufenggrow test]# chmod u-rw a.txt
[root@mufenggrow test]# ll a.txt
---xrw-r--. 1 root root 0 1月  21 16:17 a.txt
[root@mufenggrow test]# 

从结果可以看到,a.txt文件的所有者的读写权限都被去掉了。

3.7 将test目录下所有文件都变成读写执行的权限

此时,所有文件都变为读写执行,即: a=rwx
涉及到所有文件,我们用到参数 -R

[root@mufenggrow test]# touch {1..3}.txt
[root@mufenggrow test]# ll 
总用量 0
-rw-r--r--. 1 root root 0 1月  21 16:31 1.txt
-rw-r--r--. 1 root root 0 1月  21 16:31 2.txt
-rw-r--r--. 1 root root 0 1月  21 16:31 3.txt
---xrw-r--. 1 root root 0 1月  21 16:17 a.txt
[root@mufenggrow test]# chmod -R a=rwx ./*
[root@mufenggrow test]# ll
总用量 0
-rwxrwxrwx. 1 root root 0 1月  21 16:31 1.txt
-rwxrwxrwx. 1 root root 0 1月  21 16:31 2.txt
-rwxrwxrwx. 1 root root 0 1月  21 16:31 3.txt
-rwxrwxrwx. 1 root root 0 1月  21 16:17 a.txt

使用八进制的形式设置权限

3.8 设置所有者为读写,其他为读

根据八进制,可以得知,只需要设置644即可

[root@mufenggrow test]# chmod 644 a.txt
[root@mufenggrow test]# ll a.txt
-rw-r--r--. 1 root root 0 1月  21 16:17 a.txt
[root@mufenggrow test]# 

可以发现用数字相对来说更简单一些,我们可以直接进行换算即可:

r=4 可读权限
w=2 可写权限
x=1 执行权限
没有任何权限为:0

总结

chmod在日常工作中用的比较多,我们多数情况下用到的都是八进制的形式。

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

在这里插入图片描述

相关文章
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
1113 1
二、Linux文本处理与文件操作核心命令
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
813 137
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
1771 58
|
11月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
1715 2
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
958 16
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
1104 0
Linux内存问题排查命令详解
|
Linux 网络安全 开发工具
技术栈:这50条最常用的 Linux 命令你一定要会!
建议多在终端中实践,遇到不懂的命令就用 man 或 --help 了解详情!
2280 0
|
Linux
linux命令之chmod
linux命令之chmod
608 1
|
Linux Go 数据安全/隐私保护
linux常用命令手册 用户管理useradd 文件权限管理chmod 搜索管理find grep
linux常用命令手册 用户管理useradd 文件权限管理chmod 搜索管理find grep
333 2
|
Linux
蓝易云 - 修改linux文件权限命令:chmod
例如,`chmod 755 文件名`将给文件设置读/写/执行权限给所有者,读/执行权限给组用户和其他用户。
300 0