Linux命令(17)之chmod

简介: Linux命令(17)之chmod

Linux命令之chmod
1.chmod介绍
chmod(change mode)命令是用来更改文件(linux系统中一切一切皆为"文件")权限的命令。在linux系统中,我们使用chmod命令主要用来更改文件或目录的权限,以达到变更文件或目录权限的效果。

在linux系统中,文件或目录的权限有三种:所有者User(简称:u)、所属组Group(简称:g)、其它用户Other(简称:o),见下图:

使用chmod命令更改文件或目录的权限时,只有文件或目录的所有者或root管理员才能有权限执行。在linux系统中,User,Group、Other(简称UGO)中rwx权限所对应八进制数字模式,见下图。

除了使用"字符表示法"对文件或目录授权外,我们也可以使用"数字表示法"进行授权。

2.chmod用法
chmod [参数] [模式] [文件|目录]

模式:权限设定字串,格式如下:

[ugoa...][[+-=][rwx]...][,...]

所有者User,简称:u

所属组Group,简称:g

其它用户Other,简称:o

a,代表ugo

+表示增加权限

-表示减少权限

=表示唯一授权权限

r:对应数值4

w:对应数值2

x:对应数值1

-:对应数值0 (没有权限)

E.g:

rwx 表示:7

rw- 表示:6

r-- 表示:4

chmod常用参数
参数 说明
-R 递归更改文件或/和目录
-v 显示变更权限的详细过程
3.实例
3.1对ztj.sh文件所有者授权写入,读取,执行权限
命令:

chmod u+rwx ztj.sh

or

chmod 700 ztj.sh

3.2对ztj.sh文件所有者取消授权写入,读取,执行权限
命令:

chmod u-rwx ztj.sh

or

chmod 000 ztj.sh

3.3对ztj.sh文件所属组授权写入,读取,执行权限
命令:

chmod g+rwx ztj.sh

or

chmod 070 ztj.sh

3.4对ztj.sh文件所属组取消授权写入,读取,执行权限
命令:

chmod g-rwx ztj.sh

or

chmod 000 ztj.sh

3.5对ztj.sh文件其它用户授权写入,读取,执行权限
命令:

chmod o+rwx ztj.sh

or

chmod 000 ztj.sh

3.6对ztj.sh文件其它用户取消授权写入,读取,执行权限
命令:

chmod o-rwx ztj.sh

or

chmod 000 ztj.sh

3.7对ztj目录所有者授权写入,读取,执行权限
命令:

chmod u+rwx ztj/

or

chmod 700 ztj/

3.8对ztj目录所有者取消授权写入,读取,执行权限
命令:

chmod u-rwx ztj/

or

chmod 000 ztj/

3.9对ztj目录所有者、所属组、其它用户授权写入,读取,执行权限
命令:

chmod ugo+rwx ztj/

or

chmod a+rwx ztj/

or

chmod 777 ztj/

3.10对ztj目录所有者、所属组、其它用户取消授权写入,读取,执行权限
命令:

chmod ugo-rwx ztj/

or

chmod a-rwx ztj/

or

chmod 000 ztj/

3.11对ztj目录及其下所有文件所有者、所属组、其它用户授权写入,读取,执行权限
命令:

chmod -R ugo+rwx ztj/

or

chmod a+rwx ztj/

or

chmod 777 ztj/

4.特殊权限
除了传统的读r、写w、执行x以外,还有Linux的文件特殊权限,他们分别是Set UID、Set GID、Sticky Bit三种,也就是多出来的那一位,功能介绍如下(了解即可:):

4.1SUID

权值:4
符号:x --> s
当x权限不存在时,s变为S
特点:仅对可执行文件有效。
功能:可执行文件执行时,拥有文件所有者的权限。
命令:
chmod 4xxx

E.g:如果/usr/bin/passwd 权限变更为4755,对应的普通用户,获得了root权限,可以修改普通用户平常根本想都不敢想、无法修改的root拥有的/etc/shadow系统文件(如果/usr/bin/passwd 权限为755,则普通用户执行passwd的时候,会出现无权限修改root own的/etc/shadow文件的提示)

1./usr/bin/passwd权限

2.切换至普通用户执行passwd

发现ztj用户可以执行passwd命令

3.root管理员用户变更/usr/bin/passwd权限为755

  1. 切换至普通用户执行passwd

发现ztj用户不再可以执行passwd命令

总结:SUID使普通用户可以获取/usr/bin目录下二进制命令的root管理员执行权限

4.2SGID

权值:2
符号:x --> s
当x权限不存在时,s变为S
特点:文件、目录都有效。
功能:对于可执行文件,相同用户组的,拥有文件所有者权限;对于目录,相同用户组的,在其目录下创建的文件自动属于父目录的属组。

命令:
chmod 2xxx

E.g:SGID多用在特定的多人团队的项目开发上,在系统中用得较少

1.查看ztj目录权限

2.进入ztj目录,创新任意文件

文件ztj.sh属组为ztj

3.取消SGIT,创建任意文件

文件ztj.sh属组恢复为root

总结:

当某个目录设置SGIT后,在该目录中新建的文件不再是以往创建文件的默认所属组,用户在该目录创建的目录或文件的所属组与该目录的所属组一致。

4.3SBit

权值:1
符号:x --> t
当x权限不存在时,t变为T
特点:仅对目录有效。
功能:当目录SBit=1,权限变为rwxrwxrwt时,在此文件夹下删除、重命名、移动的操作只允许是对应创建者用户或root(如果SBit=0,则用户间创建的文件可以互相删除,互相伤害)。

命令:

chmod 1xxx

E.g:/tmp 权限为1777,该目录下不同用户间不可互删文件,只能删自己的(如果/ztj权限为777,则ztj目录下不同用户间可互删文件)

1.设置/tmp/test目录sticky bit权限

2.在目录test下,使用用户ztj创建ztj.txt文件

3.变更ztj.txt文件属组为utest1

4.验证utest1不能删除ztj.txt

5.验证用户ztj能够删除ztj.txt文件

6.取消/tmp/test目录sticky bit权限

7.验证utest1用户可以删除test.txt文件

总结:

SBIT作用:限制删除权限,用户只能删除自己的文件

4.4特殊权限取消命令(SUID,SGID,SBit)
命令:

chmod 00xxx ztj/

E.g:

chmod 00777 ztj/
————————————————
版权声明:本文为CSDN博主「小黑要上天」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/z19861216/article/details/130671256

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