linux文件权限管理

目录

linux文件分类

基本权限介绍

修改文件权限(chmod)

以字母形式修改文件权限

以数字形式修改文件类型

修改文件的所有者与所属组(chown)

ACL权限

ACL权限的配置(setfacl)

查看ACL规则(getfacl)

删除一条ACL规则(setfacl)

删除所有ACL规则(setfacl)

限制ACL最大权限的mask权限

sudoers文件

linux的特殊权限

SetUID(chmod u+s )

SetGID(chmod g+s)

Sticky BIT(chmod o+s)

特殊权限的数字表示

文件系统属性chattr权限

chattr命令(+  i/a)



linux文件分类

在Linux操作系统中,共有七种文件类型,分别是:

d  (directory) 目录文件。

l  (link) 符号链接。

s  (socket) 套接字文件。

b  (block) 块设备文件,二进制文件。

c  (character) 字符设备文件。

p  (pipe) 命名管道文件。

-  普通文件,或者更准确地说,不属于以上几种类型的文件。


基本权限介绍

r:读        w:写        x:执行

比如1.txt文件:

drwxrwxr-x 其实是 d      rwx      rwx      r-x

d是文件类型,这里说明1.txt是一个目录文件

第一处的rwx表示文件所有者对该文件的权限是读写执行

第二处的rwx表示组用户对该文件的权限是读写执行

第三处的r-x表示其他用户对该文件的权限是度执行


修改文件权限(chmod)

以字母形式修改文件权限

u:文件所有者  g:文件属组  o:其他用户  a:所有用户

chmod a=rwx 1.txt(直接让所有用户对文件的权限修改为rwx)

chmod o+wx 1.txt(其他用户的权限增加了写和执行)

chmod g-x 1.txt(组用户的权限出去了执行权限)


以数字形式修改文件类型

r=4    w=2    x=1    没有某权限就用0表示 

 chmod 754 1.txt (u的权限为rwx , g的权限为rx , o的权限为r)


修改文件的所有者与所属组(chown)

chown stu1 1.txt   只修改文件的所有者为stu1

chown :stu1 /mnt/1.txt  只修改文件的所属组为stu1

chown stu2:stu2 /mnt/1.txt  同时修改文件的所有者为stu1、所属组为stu1

上图中cent文件的所有者为前面的cent   ,  用户组为后面的cent


ACL权限

(这里用用户stu6和文件/mnt/files举例:)

ACL权限的配置(setfacl)

setfacl -m u:stu1:rwx /mnt/filessetfacl -m u:指定的用户名:需要的权限 /指定文件的路径

针对其他用户中的个别用户或部分用户单独设置的权限

就是说我们想对既不是文件所有者也不是组用户的其他用户设置权限

比如用户stu3想要查看files文件,但是stu3既不是root用户,也不是rsb用户组成员,并且files文件的权限是rwxr-x---即其他用户没有任何权限:

所以如果stu3用户想要查看files文件,只能设置ACL权限:setfacl -m u:stu3:rwx /mnt/files

设置了ACL权限后,可以看到权限后面的点号变成了加号+,此时,stu3用户就有对files文件指定的权限了


查看ACL规则(getfacl)

getfacl  文件名

上图中user:stu3:rwx就是我们对指定用户stu3设置了ACL权限rwx


删除一条ACL规则(setfacl)

setfacl -x u:stu3 /mnt/files

虽然删除了ACL规则,但权限后面的加号+仍然还在。


删除所有ACL规则(setfacl)

setfacl -b /mnt/files

这个命令会将指定文件files的所有ACL规则删除,并且权限后面的加号+也会变为原来的点号。


限制ACL最大权限的mask权限

mask权限用于限制ACL可以设置的最大权限,例如下图中mask::rwx表示ACL权限的最大可设置权限:

setfacl -m m:r files        就可以将files文件的mask权限设置为r.

可以看到,mask权限变为了r-- 虽然stu3任然显示rwx但是实际权限只有r--


sudoers文件

/etc/sudoers

在该文件中通过修改上图所示的内容,即可删除root的一些权限,或者添加普通用户,获得root权限。


linux的特殊权限

SetUID(chmod u+s )

只有可以执行的二进制程序才能设定SetUID权限(目录不行);

命令执行者要对该程序拥有x(执行)权限

命令执行者在执行该程序时获得该程序文件属主的身份;

SetUID 权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效。

上图中的权限rwsr-xr-x中的s就表示SetUID权限(这里小写的s。如果是大写的S说明执行者没有x执行权限,则SetUID权限不会生效)之所以用户能修改自己的密码,就是因为SetUID权限,当执行这个文件是,用户会以root身份去执行,执行完后又会恢复到原来的身份。

当一个具有执行权限的文件设置 SetUID权限后,用户执行这个文件时将以文件所有者的身份执行。/usr/bin/passwd 命令具有SetUID 权限,所有者为 root,也就是说当普通用户使用 passwd 更改自己密码的时候,实际是在用 passwd 命令所有者 root 的身份在执行passwd命令,root当然可以将密码写入/etc/shadow 文件,所以普通用户也可以修改/etc/shadow文件,命令执行完成后该身份也随之消失。

chmod u+s  /usr/bin/vim命令,会让普通用户获得编辑重要文件的权限,这很危险!

chmod u-s /usr/bin/nim即可取消。


SetGID(chmod g+s)

,设置后,组权限会有s(小写)

chmod g+s 文件/目录

 只有可执行的二进制程序才能设置 SGID 权限;

命令执行者要对该程序拥有 x(执行)权限

命令执行在执行程序的时候,组身份升级为该程序文件的属组

SetGID权限同样只在该程序执行过程中有效,也就是组身份改变只在程序执行过程中有效。

获得SetGID权限后,用户会以文件所属组的身份执行文件,执行完后,又会恢复自己的身份。

对目录执行时,执行后的文件所属组也不会显示是执行人的所属组,依然会显示是原文件所属组。


Sticky BIT(chmod o+t)

Sticky BIT 粘滞位,也简称为 SBIT,SBIT目前仅针对目录有效。

普通用户对该目录拥有 w 和 x 权限,即普通用户可以在此目录拥有写入权限;

shmod o+t 文件名  ,执行命令后,任何用户都只能删除自己建立的文件,但是不能删除其他用户建立的文件(root用户除外,如果想让root用户也不能删除他人文件,可以使用下面的chattr命令)。


特殊权限的数字表示

4 代表 SUID

2 代表 SGID

1 代表 SBIT

chmod 4755 files   赋予 SUID 权限(以所属用户身份执行

chmod 2755 files   赋予 SGID 权限(以组用户身份执行

chmod 1755 test  赋予SBIT权限(不能删除他人文件


文件系统属性chattr权限

chattr命令(+  i/a)

i:  如果对文件设置 i 属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置 i 属性,那么只能修改目录下文件的数据,但不允许建立和删除文件

a: 若对文件设置 a 属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;如果对目录设置 a 属性,那么只允许在目录中建立和修改文件,但是不允许删除

chattr +i 文件名

chattr +a 文件名

chattr命令对root用户也生效!


lsattr命令

lsattr 文件名

用于查看文件是否有chattr权限

  • 26
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
头歌Linux是一种基于Linux内核的操作系统,它采用了类Unix的文件权限管理机制。文件权限管理是指对文件或目录进行访问控制和权限设置的过程。在头歌Linux中,每个文件或目录都有三种基本权限:读取权限、写入权限和执行权限。以下是头歌Linux文件权限管理的介绍: 1. 文件权限表示方式: - r(读取权限):表示可以读取文件内容或查看目录中的文件列表。 - w(写入权限):表示可以修改文件内容或在目录中创建、删除文件。 - x(执行权限):表示可以执行文件或进入目录。 2. 文件权限组合: - 文件拥有者权限文件的所有者对文件具有特定的权限。 - 文件所属组权限文件所属组的成员对文件具有特定的权限。 - 其他用户权限:除了文件拥有者和所属组成员外的其他用户对文件具有特定的权限。 3. 文件权限设置: - 使用chmod命令可以设置文件或目录的权限。例如,chmod 755 file.txt表示将file.txt文件的拥有者设置为可读、可写、可执行,所属组和其他用户设置为可读、可执行。 - 使用chown命令可以修改文件或目录的拥有者。例如,chown user file.txt将file.txt文件的拥有者修改为user。 - 使用chgrp命令可以修改文件或目录的所属组。例如,chgrp group file.txt将file.txt文件的所属组修改为group。 4. 文件权限查看: - 使用ls命令可以查看文件或目录的权限。例如,ls -l file.txt将以长格式显示file.txt文件权限信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值