【Linux常用命令11】Linux文件与权限详解

权限

r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示

常用权限

644:代表所有者拥有读、写权限,而所属组和其他人拥有只读权限。
755:代表所有者拥有读、写和执行权限,而所属组和其他人拥有读、执行权限。
777:代表所有者、所属组和其他人都拥有读、写权限。

文件的特殊权限:SUID、SGID、SBIT

SUID

SUID:是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。

查看passwd命令属性时发现所有者的权限由rwx变成了rws,其中x改变成s就意味着该文件被赋予了SUID权限。

如果原本的权限是rw-呢?如果原先权限位上没有x执行权限,那么被赋予特殊权限后将变成大写的S。

SGID

SGID主要实现如下两种功能:
让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)。

在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。例在目录设置SGID,则用户在该目录创建文件,文件的默认的用户组将由用户自己的基本用户组变为目录的所属组,使得同组内的其他用户都能访问该文件。

SBIT

SBIT:确保用户只能删除自己的文件,而不能删除其他用户的文件。如果赋予了SBIT权限,则其他用户中的可执行权限位会从x-变为t/T

chattr:用于设置文件的隐藏权限

chattr [选项] 文件
参数  含义
-R  递归处理目录下的所有文件
-v  设置文件或目录版本
-V  显示指令执行过程
+   开启文件或目录的该项属性
--  关闭文件或目录的该项属性
=   指定文件或目录的该项属性
示例:
用chattr命令防止系统中某个关键文件被修改(加锁):
[root@linuxcool ~]# chattr +i /etc/resolv.conf
解锁:
[root@linuxcool ~]# chattr -i /home/omd/h.txt
让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
[root@linuxcool ~]# chattr +a /var/log/messages

chmod:用于修改文件或目录的访问权限

该命令有两种用法:一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

chmod [选项] 权限模式 文件或目录
参数  含义
-c   若该文件权限确实已经更改,才显示其更改动作
-f   若该文件权限无法被更改也不显示错误讯息
-v   显示权限变更的详细资料
-R   对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
​
#用户身份
u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组
​
#赋予方式
+ :加入权限
- :减去权限
= :设置权限
示例:
将档案 file1.txt 设为所有人皆可读取:
[root@linuxcool ~]# chmod a+r file.txt
将目前目录下的所有文件与子目录皆设为任何人可读取 :
[root@linuxcool ~]# chmod -R a+r *
将 file.txt 设定为只有该文件拥有者可以执行:
[root@linuxcool ~]# chmod u+x file.txt

chown:用于修改文件和目录的用户和所属组

chown [选项] 所有者:所属组 文件或目录
参数  含义
-R   对目前目录下的所有文件与子目录进行相同的拥有者变更
-c   若该文件拥有者确实已经更改,才显示其更改动作
-f   若该文件拥有者无法被更改也不要显示错误讯息
-h   只对于连结(link)进行变更,而非该 link 真正指向的文件
-v   显示拥有者变更的详细资料
--help  显示辅助说明
--version   显示版本
示例:
将test.txt文件用户组与用户都改为bin:
[root@linuxcool ~]# chown bin:bin test.txt  
将当前目录下所有文件的拥有者都改为 linuxcool,用户组改为 linuxcoolgroup:
[root@linuxcool ~]# chown -R linuxcool:linuxcoolgroup *

chgrp:用于修改文件和目录的所属组

chgrp [选项] 所属组 文件或目录
参数  含义
-c   效果类似”-v”参数,但仅回报更改的部分
-f   不显示错误信息
-h   对符号连接的文件作修改,而不更动其他任何相关文件
-R   递归处理,将指定目录下的所有文件及子目录一并处理
-v   显示指令执行过程
--reference 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同
改变文件的群组属性:
[root@linuxcool ~]# chgrp -v linuxcool file
将/usr/linuxcool及其子目录下的所有文件的用户组改为cool:
[root@linuxcool ~]# chgrp -R cool /usr/linuxcool
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Linux常用命令中,文件权限是非常重要的一个概念。确定了一个文件的访问权限后,用户可以利用chmod命令来重新设定不同的访问权限。每个文件或目录的访问权限由三组权限组成,分别是文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。这些权限用三位表示,例如-rw-r--r--,表示属主有读写权限,同组用户和其他用户只有读权限。 在Linux中,可以使用ls -l命令来显示文件的详细信息,其中最左边的一列就是文件的访问权限。例如,"ls -l sobsrc.tgz"命令会显示类似于"-rw-r--r-- 1 root root 483997 Jul 15 17:31 sobsrc.tgz"的结果。这个结果表明,该文件的属主具有读写权限,同组用户和其他用户只有读权限。 要修改文件的访问权限,可以使用chmod命令。以空格分开的要改变权限文件列表可以使用通配符。在一个命令行中可以给出多个权限设置,使用逗号隔开。例如,"chmod g+r,o+r example"命令会给同组和其他用户添加对文件example的读权限。 总之,Linux中常用的命令文件权限可以通过chmod命令来设定和修改,使用ls -l命令可以查看文件的详细信息,了解文件的访问权限。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Linux命令:修改文件权限命令chmod、chgrp、chown详解](https://blog.csdn.net/weixin_40918067/article/details/117376207)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小白--AI

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

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

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

打赏作者

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

抵扣说明:

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

余额充值