hackthebox 学院 -LINUX 基础知识-LINUX FUNDAMENTALS 模块09-权限管理-Permission Management

本文详细介绍了Linux权限管理系统,包括用户和组的权限分配、执行权限的重要性、访问目录的要求、chmod和chown命令的使用,以及SUID、SGID和粘滞位的特殊权限设置。
摘要由CSDN通过智能技术生成

权限管理-Permission Management

在Linux下,权限被分配给用户和组。每个用户都可以是不同组的成员,这些组中的成员身份赋予用户特定的附加权限。每个文件和目录都属于特定用户和特定组。因此,定义文件的用户和组的权限也是为各自的所有者定义的。当我们创建新的文件或目录时,它们就属于我们所属的组和我们。

当用户想要访问Linux目录的内容时,必须首先遍历该目录,这意味着导航到该目录,要求用户对该目录具有execute权限。如果没有此权限,用户将无法访问该目录的内容,并且会显示“ Permission Denied”错误消息。

  
cry0l1t3@htb[/htb]$ ls -l

drw-rw-r-- 3 cry0l1t3 cry0l1t3   4096 Jan 12 12:30 scripts


cry0l1t3@htb[/htb]$ ls -al mydirectory/

ls: cannot access 'mydirectory/script.sh': Permission denied
ls: cannot access 'mydirectory/..': Permission denied
ls: cannot access 'mydirectory/subdirectory': Permission denied
ls: cannot access 'mydirectory/.': Permission denied
total 0
d????????? ? ? ? ?            ? .
d????????? ? ? ? ?            ? ..
-????????? ? ? ? ?            ? script.sh
d????????? ? ? ? ?            ? subdirectory

需要注意的是,无论用户的访问级别如何,执行权限对于访问目录是必要的。此外,目录上的执行权限不允许用户执行或修改目录中的任何文件或内容,只允许遍历和访问目录的内容。

要执行目录中的文件,用户需要相应文件的execute权限。要修改目录的内容(创建、删除或重命名文件和子目录),用户需要write对该目录的权限。

Linux 系统上的整个权限系统基于八进制数字系统,基本上,可以为文件或目录分配三种不同类型的权限:

  • r) - 读
  • w) - 写
  • x) - 执行

可以为下一个示例中介绍的ownergroupothers 等设置权限others及其相应的权限。

  
cry0l1t3@htb[/htb]$ ls -l /etc/passwd

- rwx rw- r--   1 root root 1641 May  4 23:42 /etc/passwd
- --- --- ---   |  |    |    |   |__________|
|  |   |   |    |  |    |    |        |_ Date
|  |   |   |    |  |    |    |__________ File Size
|  |   |   |    |  |    |_______________ Group
|  |   |   |    |  |____________________ User
|  |   |   |    |_______________________ Number of hard links
|  |   |   |_ Permission of others (read)
|  |   |_____ Permissions of the group (read, write)
|  |_________ Permissions of the owner (read, write, execute)
|____________ File type (- = File, d = Directory, l = Link, ... )

更改权限

我们可以使用chmod命令、权限组引用(u-所有者、g-组、o-其他、a-所有用户)修改权限,以及[ +]或[ -]来添加删除指定的权限。在以下示例中,用户创建一个由该用户拥有的新 shell 脚本,该脚本不可执行,并为所有用户设置读/写权限。

  
cry0l1t3@htb[/htb]$ ls -l shell

-rwxr-x--x   1 cry0l1t3 htbteam 0 May  4 22:12 shell

然后我们可以为所有用户应用read权限并查看结果。

  
cry0l1t3@htb[/htb]$ chmod a+r shell && ls -l shell

-rwxr-xr-x   1 cry0l1t3 htbteam 0 May  4 22:12 shell

我们还可以将所有其他用户的权限设置为read仅使用八进制值分配。

  
cry0l1t3@htb[/htb]$ chmod 754 shell && ls -l shell

-rwxr-xr--   1 cry0l1t3 htbteam 0 May  4 22:12 shell

让我们看看与之相关的所有表示,以更好地理解如何计算权限分配。

  
Binary Notation:                4 2 1  |  4 2 1  |  4 2 1
----------------------------------------------------------
Binary Representation:          1 1 1  |  1 0 1  |  1 0 0
----------------------------------------------------------
Octal Value:                      7    |    5    |    4
----------------------------------------------------------
Permission Representation:      r w x  |  r - x  |  r - -

如果我们将分配的Binary Representation设置位与Binary Notation值相加,我们就得到了Octal Value。权限表示法通过使用三个字符来表示二进制表示法中设置的位,这只会更容易地识别设置的权限。


变更所有者

要更改文件或目录的所有者和/或组分配,我们可以使用该chown命令。语法如下:

语法 - chown
  语法 - chown
cry0l1t3@htb[/htb]$ chown <user>:<group> <file/directory>

在此示例中,“shell”可以替换为任意文件或文件夹。

  语法 - chown
cry0l1t3@htb[/htb]$ chown root:root shell && ls -l shell

-rwxr-xr--   1 root root 0 May  4 22:12 shell

SUID & SGID

除了分配直接的用户和组权限外,我们还可以通过设置Set User IDSUID) 和Set Group IDSGID) 位来配置文件的特殊权限。例如,这些SUID/位允许用户以另一个用户的权限运行程序。SGID管理员经常使用它来授予用户对某些应用程序或文件的特殊权限。使用字母“ s”代替“ x”。执行此类程序时,将使用文件所有者的 SUID/SGID。

通常情况下,管理员不熟悉应用程序,但仍然分配SUID/SGID位,这会导致较高的安全风险。此类程序可能包含允许从寻呼机执行外壳的函数,例如应用程序“ journalctl.”。

如果管理员将 SUID 位设置为“ journalctl”,则任何有权访问此应用程序的用户都可以作为 执行 shell root有关此应用程序和其他此类应用程序的更多信息可以在GTFObins中找到。


粘位-Sticky Bit

粘滞位是 Linux 中的一种文件权限,可以在目录上设置。在控制目录中文件的删除和重命名时,这种类型的权限提供了额外的安全层。它通常用于由多个用户共享的目录,以防止一个用户意外删除或重命名对其他人重要的文件。

例如,在共享主目录中,多个用户可以访问同一目录,系统管理员可以在目录上设置粘滞位,以确保只有文件所有者、目录所有者或 root 用户可以访问该目录。可以删除或重命名目录中的文件。这意味着其他用户无法删除或重命名目录中的文件,因为他们没有所需的权限。这提供了额外的安全层来保护重要文件,因为只有具有必要访问权限的人才能删除或重命名文件。在目录上设置粘滞位可确保只有所有者、目录所有者或根用户才能更改目录中的文件。

当目录设置了粘滞位时,用该目录的权限的执行权限中的字母“t”来表示。例如,如果一个目录有权限“ rwxrwxrwt”,则表示设置了粘滞位,给予额外的权限安全级别,以便除所有者或 root 用户之外的任何人都无法删除或重命名目录中的文件或文件夹。

  语法 - chown
cry0l1t3@htb[/htb]$ ls -l

drw-rw-r-t 3 cry0l1t3 cry0l1t3   4096 Jan 12 12:30 scripts
drw-rw-r-T 3 cry0l1t3 cry0l1t3   4096 Jan 12 12:32 reports

在此示例中,我们看到两个目录都设置了粘性位。但是,该reports文件夹有一个大写字母T,而该scripts文件夹有一个小写字母t

如果粘滞位是大写的 ( T),则这意味着所有其他用户没有executex) 权限,因此无法查看该文件夹的内容,也无法从中运行任何程序。小写粘性位 (t ) 是已设置(executex ) 权限的粘性位。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值