权限管理-10.21

一、理论基础

1、权限管理概念

Linux中的权限管理是通过文件权限和用户组机制来实现的,确保系统安全并控制对资源的访问。

权限类型:

权限对文件的作用:

  • 读(r):

    • 允许查看文件内容。像cat、more、less、head和tail等命令可以使用。
  • 写(w):

    • 能修改文件内容。需要有写权限才可用编辑器如vim或nano进行编辑。不过,没有删除文件的权限,要删除需在上级目录拥有写权限。
  • 执行(x):

    • 用于运行程序或脚本。只有具有执行权限才能运行这些类型的文件。

权限对目录的作用:

  • 读(r):

    • 可以查看目录中的文件列表,用于执行诸如ls之类的命令。
  • 写(w):

    • 可修改目录内容,如添加、删除或重命名子文件/子目录。对应命令包括touch, rm, cp, mv
  • 执行(x):

    • 表示进入该目录的能力,即用来执行类似于 cd 的命令,从而访问该目录。

权限类别:

  • 权限分为三类,分别适用于所有者、同组用户和其他用户:

    • 所有者权限
    • 组权限
    • 其他人权限

表示方法:

  • 使用ls -l命令可以查看文件的详细信息,其中前十位字符代表了文件类型及其权限,如 -rw-r--r--。
  • 第一位表示类型(如普通文件“-”、目录“d”),接下来的九位按照三个一组分别表示所有者、组和其他人的权限。
  • 权限也可以用八进制数表示,每种权限对应一个数字值:读=4,写=2,执行=1。

二、相关命令

1、基本权限管理

修改属主

格式:chown + 新的属主名 + 文件名

修改属组

格式:chgrp + 新的属组名 + 文件名(-R 递归更改)

修改文件权限

格式:chmod [选项] 权限模式 文件名

  • 权限模式:

    • 属主:u
    • 属组:g
    • 其他用户:o
    • 所有用户:a
  • 赋予方式:

    • + :加入权限
    • - :减去权限
    • = :设置权限
  • 例:

    • chmod u+w,g+w,o+w file
    • chmod u=rwx,g=rw,o=rw file

设置方式:

  • 八进制修改:

    • chmod 八进制数 文件名

    • 例:

      • chmod 644 file

  • 修改成其他文件权限:

    • chmod --reference 参考的文件 设置的文件

    • 例:

      • chmod --reference file1 file2 => 将file2的权限修改成和file1一样

默认权限

在linux中可以使用umask查询和设置掩码权限。默认权限为最高权限减去掩码权限。

对于文件来说,最高权限为666,即没有执行权限;

对于文件夹来说,最高权限为777,拥有完整权限。

在计算默认权限时,要用字母进行计算,而非数字。

rw- rw- rw-
--- -w- -w-
rw- r-- r--

2、特殊权限管理

SUID权限

基于属主的权限,针对可执行文件

在普通用户使用命名执行文件时,如果加入SUID权限,在运行此命令时,即可以文件属主的权限执行

如果属主有可执行权限,则以s展示;反之则以S进行展示

设置SUID权限:

  • chmod u+s file

SGID权限

基于属组的权限,即可以针对可执行文件,也可以针对目录

针对文件

类似于SUID,在普通用户使用命名执行文件时,如果加入SGID权限,在运行此命令时,即可以文件属组的权限执行

设置SGID权限:

  • chmod g+s file

针对目录

基于属组的权限,实现目录的属组的权限,不再基于原本的用户组,而是基于目录的属组的权限

如果属组有可执行权限,则以s展示;反之则以S进行展示

设置SGID权限:

  • chmod g+s dir

sticky权限

粘滞位属性。在满足SGID的权限上,为了防止同组的用户删除其他用户的文件,可以使用sticky进行控制。拥有sticky属性的文件只能被用户的创建者删除,其他用户可以修改但是不能删除。

如果其他用户有可执行权限,则以t展示;反之则以T进行展示

设置sticky权限:

  • chmod o+t file

acl权限扩展控制

单独设置某个用户对于文件或者目录的权限

在选择最小化安装系统的时候可能没有此拓展,需要额外安装

如果文件有额外权限,则会在本身的权限标识后额外添加一个+

设置acl额外权限:

  • getfacl 查看文件的权限控制列表

  • setfacl 设置文件的额外权限

    • 具体命名:

      • setfacl -m u:user:rwx file => 使用-m为用户user设置权限
      • setfacl -x u:user file => 使用-x为用户user撤销权限
      • setfacl -b file => 撤销文件的所有标识

文件特殊属性和其他特殊权限

设置文件的特殊属性,限制root用户的某些操作

  • chattr +i file :不能删除、改名和更改文件

  • chattr +a file:不能删除、改名文件,只能追加内容

  • lsattr file:显示文件的特定属性

posted @ 2024-12-04 14:28  阳光彩虹小能猫  阅读(32)  评论(0)    收藏  举报