使用Linux功能

介绍

Linux功能是Linux内核中的特殊属性,可为进程和二进制可执行文件授予特定特权,这些特权通常保留给有效用户ID为0(root用户且只有root用户的UID为0)的进程。

本文将解释一些可用功能,其用途以及如何设置和删除它们。请注意,在可执行文件上设置功能可能会损害系统的安全性。因此,在实现生产功能之前,应考虑在非生产系统上进行测试。

先决条件

  • 您具有root访问权限的Linux系统(通过root用户或具有sudo访问权限的用户)。

说明

本质上,功能的目标是将“ root”的权限划分为特定的特权,这样,如果利用具有一个或多个功能的进程或二进制文件,则与以root身份运行的同一进程相比,潜在的损害是有限的。

可以在进程和可执行文件上设置功能。执行文件所产生的过程可以获得该文件的功能。

在Linux上实现的功能众多,并且自最初发行以来已添加了许多功能。其中一些如下:

  • CAP_CHOWN:更改文件的用户标识和组标识
  • CAP_DAC_OVERRIDE:覆盖DAC(自由访问控制)。例如,vto绕过读/写/执行权限检查。
  • CAP_KILL:绕过权限检查,以将信号发送到进程。
  • CAP_SYS_NICE:提高流程的美观度(可以在此处找到有关美观度的说明
  • CAP_SYS_TIME:设置系统和实时硬件时钟

有关完整列表,请运行man 7 capabilities

功能是按组分配的,即线程的“允许”,“可继承的”,“有效”和“环境”,文件的分配是“允许的”,“可继承的”和“有效”。这些集合定义了不同的复杂行为,它们的完整解释超出了本文的范围。

例如,在文件上设置功能时,我们几乎总是使用“允许”和“有效” CAP_DAC_OVERRIDE+ep。注意+ep,它表示上述集合。

使用文件功能

所需的包

有两个主要工具,getcap并且setcap可以分别查看和设置这些属性。

  • 在Debian和Ubuntu上,这些工具由libcap2-bin软件包提供,可以通过以下方式安装:apt install libcap2-bin
  • 在CentOS和Fedora上,libcap需要以下软件包:yum install libcap
  • 在Arch Linux上,它们也由提供libcappacman -S libcap

阅读能力

要查看文件是否设置了任何功能,可以简单地运行getcap /full/path/to/binary,例如:

 root@demo:~# getcap /usr/bin/ping
 /usr/bin/ping = cap_net_raw+ep
 root@demo:~# getcap /usr/bin/rcp
 /usr/bin/rcp = cap_net_bind_service+ep

如果您想找出系统上已经设置的功能,则可以使用以下命令递归搜索整个文件系统:

getcap -r /

由于虚拟文件系统(例如/proc)不支持这些操作,因此上面的命令将产生成千上万个错误,因此对于更清晰的输出,请使用以下命令:

getcap -r / 2>/dev/null 

分配和删除功能

要在文件上设置特定功能,请使用setcap "capability_string" /path/to/file

要从文件中删除所有功能,请使用setcap -r /path/to/file

为了演示,我们将在当前目录中创建一个空白文件,为其提供功能,然后将其删除。从以下内容开始:

root@demo:~# touch testfile
root@demo:~# getcap testfile

第二个命令不产生任何输出,这意味着该文件没有任何功能。

接下来,设置文件的功能:

root@demo:~# setcap "CAP_CHOWN+ep" testfile
root@demo:~# getcap testfile
testfile = cap_chown+ep

以“ CAP_CHOWN + ep”为例,但其他任何方式都可以通过这种方式分配。

现在,从中删除所有功能testfile

root@demo:~# setcap -r testfile
root@demo:~# getcap testfile

同样,将没有输出,因为已删除“ CAP_CHOWN + ep”。

结论

功能具有许多潜在用途,可以帮助加强系统的安全性。如果在可执行文件上使用SUID位,请考虑将其替换为所需的特定功能。



Leave a Comment

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。