day5:权限管理

一,权限概述

什么是权限

合适的人干合适的事情

权限的作用

根据用户的等级,分配对应的权利,完成不同用户对不同资源的相关操作。

权限的分类

r(4)读w(2)写x(1)执行

对文件(目录)的影响:

读:查看文件内容(查看目录内的相关信息比如ls),写:对内容修改并保存(创建删除文件或目录),执行:执行文件中的程序(进入目录)

linux文件所有者

user(属主):文件的拥有者,换句话说,就是某个用户对这个文件有的权限

group(属组):文件所属的用户组,换句话说,就是某个用户组对这个文件有的权限

other(其它用户):除了上面提到的属主、属组以外的其它用户,对这个文件的权限

root用户权限

god用户,拥有最大的权限,高于一切其它用户,因此设置权限的时候可以不考虑root用户。

二,普通权限管理

查看文件权限

ls -l (简写为ll):查看文件权限命令

文件权限详解

-rw-------. 1 root root 2093 8月   7 18:39 original-ks.cfg
文件权限由三部分构成,每部分都是有rwx构成(如果是-表示没有该权限)

前三个rwx表示了拥有者的权限

中三个rwx表示了拥有组的权限

后三个rwx表示了其他用户的权限

  • 设置特殊权限(SUIDSGIDSticky不会默认设置执行权限 x
  • SUIDSGID(在文件上)依赖于执行权限 x 才能生效;如果没有 x 执行权限,它们不会起作用,显示为大写的 S
  • SGID(在目录上)和 Sticky 位 不依赖执行权限
  • SUID 是一种特殊权限,设置在可执行文件上。当普通用户执行该文件时,会以文件所有者的身份运行,而不是执行者的身份。
    
    SGID 是一种特殊权限,设置在可执行文件或目录上。当执行文件时,以文件所属组的身份运行;当设置在目录上,新建的文件会继承目录的所属组。
    
    

    特性

    SUID

    SGID

    作用对象

    可执行文件

    可执行文件或目录

    执行身份

    以文件所有者身份运行

    以文件所属组身份运行

    目录效果

    不适用

    新建文件继承目录所属组

    权限位

    u+s(所有者执行位显示 s,大写S表没有执行小写表示有)

    g+s(组执行位显示 s,大写S表没有执行小写表示有)

    八进制表示

    4xxx(如 4755)

    2xxx(如 2755)

    常见示例

    passwd, sudo

    wall, 共享目录

设置文件权限(字母)

chmod 【参数】【权限模式】文件名

-R:表示递归设置权限,当为文件夹的时候使用

字母:

chmod 【ugoa+/=/-rwx】文件名

u表示所有者,g表示所有组,o表示其他用户,a表示ugo全部用户,+表示添加权限,-表示去掉权限,=表示覆盖权限

比如chmod o+w a.txt

数字:

chmod 三个数字 文件名

0表示没有权限,4表示读,2表示写,1表示执行,相加就是权限

三个数字分别表示,ugo

比如chmod 741 a.txt

表示设置a.txt文件u(4+2+1=7rwx),g(4+0+0=4r),o(0+0+1=1x)

特殊说明

umask 【权限掩码】(临时设置)
  • 文件的权限通常是由 3 组数字表示的:r (读)、w (写)、x (执行)。这三种权限分别适用于文件的所有者、组成员和其他用户。

    • 文件的默认权限:666 (rw-rw-rw-,即所有人都有读写权限)
    • 目录的默认权限:777 (rwxrwxrwx,即所有人都有读写和执行权限)
  • umask 的值是从这些默认权限中减去的部分。比如:

    • 如果 umask0022,文件的默认权限会从 666 减去 0022,即文件的最终权限是 644(rw-r--r--)。
    • 如果创建的是目录,默认权限会从 777 减去 0022,即目录的最终权限是 755(rwxr-xr-x)。

注意

在linux中如果你要删除一个文件,必须要保证,文件所在的文件夹也要可以被删除(也就是同时具备w权限,简单的说关于删除创建等w的权限看目录)

永久设置

将命令添加到配置文件中,以便在每次登录时自动应用。

操作系统/环境配置文件示例
Bash~/.bashrc~/.bash_profileumask 022
Zsh~/.zshrcumask 022
Fish~/.config/fish/config.fishset -g umask 022
系统范围设置/etc/profile/etc/bashrcumask 022(对所有用户有效)
Debian/Ubuntu/etc/login.defs在文件中找到 UMASK 行,修改为 022
~家目录下的配置文件,当前用户生效,etc下的配置文件就是所有用户生效

三,属主与属组设置

属主与属组的概述

属主:所属的用户,文档的所有者

属组:所属的用户组,就是这个组的所有用户

修改文件属主与属组

chown 【-R】新文件拥有者【:新文件拥有组】   文件路径

-R:递归

chgrp 【参数】组名 文件或目录

  • -R:递归地更改指定目录及其所有子目录和文件的组所有权。
  • -v:显示详细信息,报告每个文件的更改情况。
  • -c:类似于 -v,但仅在发生更改时报告。

四,特殊权限

高级权限概述

linux文件的三种特殊权限:suid权限,sgid权限,sticky权限;其中suid权限作用于属主,sgid权限作用于属组,sticky权限作用于other其他上。

冒险位SUID

使用户以文件所有者的身份执行该文件,而不是以执行者自身的身份执行。(可执行文件)

chmod u+s filename或者用数字4表示【chmod 4xxx 文件】

强制位SGID

- 文件:使用户以文件所属组的权限执行该文件。
- 目录:新创建的文件/子目录将继承父目录的组。

chmod g+s filenamechmod g+s directory或用数字2表示【chmod 2xxx 文件/目录】

粘黏位Sticky

只允许文件所有者、目录所有者或超级用户删除/修改文件,其他用户即使有写权限也无法删除/修改不属于自己的文件。

chmod +t directory或者用数字1表示【chmod 1xxx 文件/目录】

五,acl权限控制

acl概述

  • 用户级别的权限设置:除了文件所有者、组和其他用户之外,还可以为特定用户设置访问权限。
  • 组级别的权限设置:可以为特定组设置与文件或目录相关的权限。
  • 继承权限:ACL 允许设置继承权限,使得目录中的新文件和子目录自动继承父目录的 ACL 设置。

查看acl权限

getfacl 文件名

设置acl权限

setfacl 选项 参数 文件名/目录名

  • 选项
    • -m:修改现有的acl设置
    • -b:清除文件或目录的所有 ACL 权限,恢复到默认权限
    • -x:清除文件或目录的所有 ACL 权限,恢复到默认权限。
    • -d:设置默认 ACL(适用于目录),新创建的文件和子目录将继承这些权限。
    • -R:递归地应用 ACL 设置到目录及其子目录和文件。
    • --set-file=配置文件:从文件中读取 ACL 设置并应用到指定文件或目录。这个文件需要通过getfacl 文件>配置文件   获得。
  • 参数【用户u/组g/其他o:对应的名字:权限】如果是其它就不用指定对应的名字
[root@ly 桌面]# getfacl a
# file: a
# owner: root
# group: root
user::rw-
group::r--
other::r--
[root@ly 桌面]# setfacl -m u:ly:rwx a
[root@ly 桌面]# getfacl a
# file: a
# owner: root
# group: root
user::rw-
user:ly:rwx
group::r--
mask::rwx
other::r--
[root@ly 桌面]# ll
总用量 8
-rw-rwxr--+ 1 root root  39 10月 19 23:29 a
-rw-r--r--. 1 root root 713 10月 19 23:07 a.zip

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值