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

4. 切换至普通用户执行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/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黑要上天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值