最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux限制su的幾種常用方法小結(jié)

 更新時間:2025年09月08日 09:23:21   作者:vortex5  
在Linux系統(tǒng)中,su命令允許用戶以另一個用戶(通常是root)的身份運行命令或切換用戶環(huán)境,盡管su提供了便利,但在安全性敏感的環(huán)境中,允許任意用戶通過su切換到root或其他特權(quán)用戶可能會帶來嚴(yán)重的安全風(fēng)險,本文將深入探討幾種常見的限制su的方法,需要的朋友可以參考下

引言

在 Linux 系統(tǒng)中,su 命令允許用戶以另一個用戶(通常是 root)的身份運行命令或切換用戶環(huán)境。盡管 su 提供了便利,但在安全性敏感的環(huán)境中,允許任意用戶通過 su 切換到 root 或其他特權(quán)用戶可能會帶來嚴(yán)重的安全風(fēng)險。為了增強系統(tǒng)安全性,Linux 提供了多種手段來限制 su 命令的使用。本文將深入探討幾種常見的限制 su 的方法,包括 NoNewPrivileges 設(shè)置、PAM(Pluggable Authentication Modules)配置、Wheel 組限制、以及其他相關(guān)技術(shù)手段。

一、背景:為什么需要限制 su 命令?

su 命令(substitute user)是 Linux 系統(tǒng)中用于切換用戶身份的常用工具。通過執(zhí)行 su - 命令并輸入目標(biāo)用戶的密碼,用戶可以切換到目標(biāo)用戶的環(huán)境(通常是 root)。然而,這種機制存在以下安全隱患:

  1. 密碼泄露風(fēng)險:如果 root 密碼被泄露,任何知道密碼的用戶都可以通過 su 切換到 root,執(zhí)行任意操作。
  2. 權(quán)限提升漏洞:某些程序可能利用 su 或 setuid 機制提升權(quán)限,導(dǎo)致非授權(quán)用戶獲取特權(quán)。
  3. 誤操作風(fēng)險:普通用戶切換到 root 后,可能因誤操作導(dǎo)致系統(tǒng)配置錯誤或數(shù)據(jù)丟失。
  4. 安全審計難度:未受限的 su 使用可能導(dǎo)致難以追蹤的操作記錄,增加安全審計的復(fù)雜性。

因此,限制 su 的使用是 Linux 系統(tǒng)安全加固的重要一環(huán)。以下將詳細(xì)介紹幾種常見的限制手段。

二、限制 su 的手段一:使用 NoNewPrivileges 設(shè)置

1. NoNewPrivileges 的作用

NoNewPrivileges 是 systemd 提供的一項安全功能,用于限制進(jìn)程及其子進(jìn)程獲得新的特權(quán)。啟用 NoNewPrivileges 后,進(jìn)程將無法通過 execve(2) 系統(tǒng)調(diào)用、setuid/setgid 文件權(quán)限或其他機制提升權(quán)限。這對于限制 su 命令的執(zhí)行非常有效,因為 su 通常依賴 setuid 位來切換用戶身份。

NoNewPrivileges 的主要特點包括:

  • 禁止特權(quán)提升:防止進(jìn)程通過 setuid/setgid 或文件系統(tǒng)能力(capabilities)獲得額外的特權(quán)。
  • 影響范圍:不僅限制當(dāng)前進(jìn)程,還限制其所有子進(jìn)程。
  • 適用場景:適用于運行不受信任程序的 systemd 服務(wù),如 Web 服務(wù)器、數(shù)據(jù)庫服務(wù)等。

2. 配置 NoNewPrivileges

在 systemd 單元文件中,可以通過設(shè)置 NoNewPrivileges=yes 來啟用此功能。以下是一個配置示例,針對 sshd 服務(wù):

# 編輯 sshd 服務(wù)單元文件
sudo systemctl edit ssh.service

在編輯器中添加以下內(nèi)容:

[Service]
NoNewPrivileges=yes

保存后,重新加載 systemd 配置并重啟服務(wù):

sudo systemctl daemon-reload
sudo systemctl restart ssh.service

可以通過以下命令驗證 NoNewPrivileges 設(shè)置是否生效:

systemctl show --property=NoNewPrivileges ssh.service

輸出結(jié)果應(yīng)為:

NoNewPrivileges=yes

3. NoNewPrivileges 對 su 的限制效果

當(dāng) NoNewPrivileges 設(shè)置為 yes 時,su 命令在受限進(jìn)程中將無法提升權(quán)限。例如,如果某個服務(wù)以非特權(quán)用戶運行,并嘗試通過 su 切換到 root,用戶將收到權(quán)限拒絕的錯誤。這是因為 su 的 setuid 位被 NoNewPrivileges 限制,無法執(zhí)行特權(quán)操作。

4. 優(yōu)缺點分析

優(yōu)點

  • 簡單易用,只需修改 systemd 單元文件。
  • 提供強大的特權(quán)控制,適用于服務(wù)級別的安全加固。
  • 對子進(jìn)程的限制確保了特權(quán)控制的全面性。

缺點

  • 僅適用于 systemd 管理的服務(wù),無法直接限制用戶登錄會話中的 su 命令。
  • 可能影響需要特權(quán)操作的合法進(jìn)程,需仔細(xì)測試。

適用場景:適合對特定服務(wù)(如 Web 服務(wù)器、容器化應(yīng)用)進(jìn)行沙箱化限制,但不適合限制用戶直接通過終端運行 su。

三、限制 su 的手段二:PAM 配置與 Wheel 組

1. PAM 認(rèn)證機制簡介

PAM(Pluggable Authentication Modules)是 Linux 系統(tǒng)中用于認(rèn)證和授權(quán)的模塊化框架。su 命令的認(rèn)證流程由 /etc/pam.d/su 文件控制。通過修改 PAM 配置文件,可以限制哪些用戶能夠使用 su 命令。

2. 使用 Wheel 組限制 su

在 Linux 系統(tǒng)中,wheel 組是一個特殊的管理員組,通常用于限制特權(quán)操作??梢酝ㄟ^配置 PAM 和 /etc/login.defs 文件,只允許 wheel 組成員使用 su 切換到 root。

配置步驟

啟用 pam_wheel 模塊
編輯 /etc/pam.d/su 文件,找到以下行并取消注釋(移除行首的 #):

#auth required pam_wheel.so use_uid

修改為:

auth required pam_wheel.so use_uid

這一行表示只有 wheel 組的用戶才能通過 su 認(rèn)證。

配置 /etc/login.defs
編輯 /etc/login.defs 文件,添加以下行:

SU_WHEEL_ONLY yes

這要求只有 wheel 組成員才能使用 su 切換到 root。

將用戶添加到 wheel 組
使用以下命令將允許使用 su 的用戶添加到 wheel 組:

sudo usermod -aG wheel username

測試配置
使用非 wheel 組用戶嘗試運行 su -,應(yīng)提示權(quán)限拒絕:

su -
Password:
su: Permission denied

3. 優(yōu)缺點分析

優(yōu)點

  • 靈活性高,可以精確控制哪些用戶能夠使用 su。
  • 與系統(tǒng)認(rèn)證機制深度集成,適用于所有用戶會話。
  • 配置簡單,易于管理和維護(hù)。

缺點

  • 需要手動管理 wheel 組成員,增加管理員工作量。
  • 如果 wheel 組配置不當(dāng),可能導(dǎo)致合法用戶無法切換。

適用場景:適合需要嚴(yán)格控制 root 訪問的服務(wù)器環(huán)境,例如企業(yè)級服務(wù)器或云主機。

四、限制 su 的手段三:修改 su 命令權(quán)限

1. 通過 chmod 限制 su 權(quán)限

一個簡單但較為粗暴的方法是直接修改 /bin/su 文件的權(quán)限,使其僅限于特定用戶或組執(zhí)行。例如,將 su 命令的權(quán)限設(shè)置為只有 root 用戶和 wheel 組可執(zhí)行:

sudo chown root:wheel /bin/su
sudo chmod 4750 /bin/su
  • 4750 表示:
    • 4:setuid 位,確保 su 以 root 身份運行。
    • 7:root 用戶具有讀、寫、執(zhí)行權(quán)限。
    • 5wheel 組具有讀、執(zhí)行權(quán)限。
    • 0:其他用戶沒有任何權(quán)限。

2. 效果與驗證

執(zhí)行上述命令后,只有 root 和 wheel 組成員能夠運行 su 命令。其他用戶嘗試運行時會收到 Permission denied 錯誤:

su -
-bash: /bin/su: Permission denied

3. 優(yōu)缺點分析

優(yōu)點

  • 配置簡單,直接有效。
  • 不依賴額外的模塊或服務(wù)。

缺點

  • 過于粗暴,可能影響系統(tǒng)其他依賴 su 的功能。
  • 需要定期檢查文件權(quán)限,防止被意外修改。

適用場景:適合小型系統(tǒng)或臨時安全加固,但不推薦用于復(fù)雜生產(chǎn)環(huán)境。

五、限制 su 的手段四:使用 sudo 替代 su

1. sudo 的優(yōu)勢

sudo 是一種更安全、更靈活的權(quán)限管理工具,允許管理員為用戶分配特定的命令權(quán)限,而無需提供完整的 root 訪問權(quán)限。通過禁用 su 并強制使用 sudo,可以有效降低權(quán)限提升的風(fēng)險。

2. 配置 sudo 限制

  1. 禁用 su 命令
    使用上述方法(PAM 或權(quán)限修改)禁用 su 命令。
  2. 配置 /etc/sudoers
    編輯 /etc/sudoers 文件(建議使用 visudo 命令),為特定用戶或組分配權(quán)限。例如:
%wheel ALL=(ALL) ALL

這表示 wheel 組成員可以通過 sudo 執(zhí)行所有命令。

禁止直接切換到 root
為了防止用戶通過 sudo su -sudo -i 切換到 root,可以在 /etc/sudoers 中添加以下內(nèi)容:

Cmnd_Alias SHELLS = /bin/sh, /bin/bash, /usr/bin/su
%wheel ALL=(ALL) ALL, !SHELLS

這將禁止 wheel 組用戶通過 sudo 執(zhí)行 su 或直接進(jìn)入 shell。

3. 優(yōu)缺點分析

優(yōu)點

  • 提供細(xì)粒度的權(quán)限控制。
  • 日志記錄功能便于審計。
  • 避免直接使用 root 密碼,降低泄露風(fēng)險。

缺點

  • 配置復(fù)雜,需要仔細(xì)規(guī)劃 sudoers 文件。
  • 用戶仍可能通過其他漏洞繞過限制。

適用場景:適合需要細(xì)粒度權(quán)限管理的生產(chǎn)環(huán)境,如多用戶服務(wù)器。

六、其他限制手段

1. 使用 AppArmor 或 SELinux

AppArmor 和 SELinux 是 Linux 的強制訪問控制(MAC)機制,可以限制 su 的執(zhí)行。例如,通過 AppArmor 配置文件,可以禁止特定用戶或進(jìn)程訪問 /bin/su。

示例:AppArmor 配置
創(chuàng)建 /etc/apparmor.d/disable-su 文件:

#include <tunables/global>

/bin/su {
  # 禁止所有用戶執(zhí)行 su
  deny /bin/su x,
}

加載配置:

sudo apparmor_parser -r /etc/apparmor.d/disable-su

2. 限制 SSH 登錄

通過配置 /etc/ssh/sshd_config,可以禁止 root 登錄并限制普通用戶的使用,間接減少 su 的使用需求:

PermitRootLogin no
AllowUsers adminuser

重啟 SSH 服務(wù):

sudo systemctl restart sshd

3. 使用容器化技術(shù)

在容器化環(huán)境中(如 Docker),可以通過 --security-opt=no-new-privileges 參數(shù)啟用類似 NoNewPrivileges 的限制,防止容器內(nèi)進(jìn)程通過 su 提升權(quán)限。

七、實際案例分析

案例 1:企業(yè)服務(wù)器限制 su 訪問

某企業(yè)希望限制普通用戶通過 su 切換到 root,僅允許管理員組成員操作。解決方案如下:

  1. 配置 /etc/pam.d/su/etc/login.defs,啟用 pam_wheelSU_WHEEL_ONLY
  2. 將管理員用戶加入 wheel 組。
  3. 使用 sudo 替代 su,并通過 sudoers 文件限制命令范圍。
  4. 啟用 SELinux,配置上下文禁止非授權(quán)用戶訪問 /bin/su。

經(jīng)過測試,非 wheel 組用戶無法使用 su,而管理員可以通過 sudo 執(zhí)行特權(quán)操作,系統(tǒng)安全性顯著提升。

案例 2:容器化環(huán)境中的 NoNewPrivileges

某 Web 應(yīng)用運行在 Docker 容器中,為防止容器內(nèi)進(jìn)程通過 su 提升權(quán)限,管理員在 docker run 命令中添加了 --security-opt=no-new-privileges 參數(shù),并確保容器以非 root 用戶運行。這有效防止了潛在的權(quán)限提升攻擊。

八、總結(jié)與最佳實踐

限制 su 命令的使用是 Linux 系統(tǒng)安全加固的重要措施。以下是幾種方法的對比與推薦:

方法復(fù)雜度靈活性適用場景推薦指數(shù)
NoNewPrivilegessystemd 服務(wù)安全加固★★★★☆
PAM + Wheel 組用戶級權(quán)限控制★★★★★
修改 su 權(quán)限臨時或小型系統(tǒng)★★★☆☆
使用 sudo 替代生產(chǎn)環(huán)境,細(xì)粒度權(quán)限管理★★★★★
AppArmor/SELinux高安全性需求環(huán)境★★★★☆

最佳實踐建議

  1. 優(yōu)先使用 PAM 和 Wheel 組:結(jié)合 pam_wheel/etc/login.defs,實現(xiàn)用戶級別的 su 限制。
  2. 結(jié)合 sudo:通過 sudoers 配置細(xì)粒度權(quán)限,替代 su 的使用。
  3. 啟用 NoNewPrivileges:對于 systemd 服務(wù),啟用 NoNewPrivileges 以限制特權(quán)提升。
  4. 使用 MAC 機制:在高安全性環(huán)境中,結(jié)合 AppArmor 或 SELinux 進(jìn)一步增強限制。
  5. 定期審計:使用工具如 Lynis 定期檢查系統(tǒng)配置,確保限制措施有效。

通過綜合運用這些手段,可以顯著提升 Linux 系統(tǒng)的安全性,降低未經(jīng)授權(quán)的權(quán)限提升風(fēng)險。

以上就是Linux限制su的幾種常用方法小結(jié)的詳細(xì)內(nèi)容,更多關(guān)于Linux限制su的方法的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Linux系統(tǒng)中日志詳細(xì)介紹

    Linux系統(tǒng)中日志詳細(xì)介紹

    大家好,本篇文章主要講的是Linux系統(tǒng)中日志詳細(xì)介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Linux文本處理工具使用詳解

    Linux文本處理工具使用詳解

    在本篇文章里小編給各位分享的是一篇關(guān)于Linux文本處理工具使用詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-03-03
  • Linux之sz和rz命令使用及說明(文件傳輸、上傳、下載)

    Linux之sz和rz命令使用及說明(文件傳輸、上傳、下載)

    rz和sz是用于Linux/Windows之間進(jìn)行Zmodem文件傳輸?shù)拿罟ぞ?rz用于從本地上傳文件到Linux服務(wù)器;sz用于從Linux下載到Windows,rz和sz使用Zmodz文件傳輸協(xié)議,rz和sz命令的常用參數(shù)和使用方法已給出,rz和sz都 allow的一次傳輸一個或多個文件的傳輸傳送
    2026-05-05
  • 一文詳解Linux journal日志大小限制與管理

    一文詳解Linux journal日志大小限制與管理

    在使用基于systemd的Linux系統(tǒng)時,日志系統(tǒng)默認(rèn)采用journald來管理系統(tǒng)日志,journald支持更高效的二進(jìn)制格式存儲、時間范圍檢索等高級功能,不過,也因此帶來一個問題:日志文件可能會不斷增長,最終占滿磁盤空間,本文將詳細(xì)介紹如何查看、限制和清理journald日志大小
    2025-07-07
  • CentOs7下配置yum源全攻略(建議收藏)

    CentOs7下配置yum源全攻略(建議收藏)

    在CentOS 7系統(tǒng)中,YUM是核心的包管理工具,本文將詳細(xì)介紹三種常見的YUM源配置方式,希望可以幫助系統(tǒng)管理員根據(jù)不同場景選擇最適合的配置方案
    2025-09-09
  • CentOS7安裝配置 Redis的方法步驟

    CentOS7安裝配置 Redis的方法步驟

    這篇文章主要介紹了CentOS7安裝配置 Redis的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • CentOS 6/7環(huán)境下通過yum安裝php7的方法

    CentOS 6/7環(huán)境下通過yum安裝php7的方法

    這篇文章主要介紹了CentOS 6/7環(huán)境下通過yum安裝php7的方法,簡單分析了CentOS 6/7服務(wù)器環(huán)境下使用yum安裝php7的相關(guān)命令與操作步驟,需要的朋友可以參考下
    2018-03-03
  • Linux中修改IP地址為靜態(tài)IP地址的完整指南

    Linux中修改IP地址為靜態(tài)IP地址的完整指南

    這篇文章主要為大家詳細(xì)介紹了Linux中修改IP地址為靜態(tài)IP地址的相關(guān)方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-10-10
  • Win10 安裝Linux ubuntu-18.04雙系統(tǒng)(安裝指南)

    Win10 安裝Linux ubuntu-18.04雙系統(tǒng)(安裝指南)

    這篇文章主要介紹了Win10+Linux ubuntu-18.04雙系統(tǒng)安裝教程,本文分步驟給大家記錄下來,需要的朋友可以參考下
    2019-10-10
  • Linux下SVN服務(wù)器自動更新文件到Web目錄的方法

    Linux下SVN服務(wù)器自動更新文件到Web目錄的方法

    這篇文章主要介紹了Linux下SVN服務(wù)器自動更新文件到Web目錄的方法,需要的朋友可以參考下
    2015-07-07

最新評論

松阳县| 张家界市| 湖州市| 南江县| 华坪县| 武平县| 昭通市| 石台县| 金寨县| 靖远县| 宜章县| 大理市| 正阳县| 沁阳市| 抚州市| 光泽县| 徐汇区| 永济市| 新化县| 浠水县| 北安市| 兴安盟| 三江| 仙居县| 内丘县| 嘉黎县| 福鼎市| 陆良县| 威宁| 新和县| 禄劝| 闻喜县| 庆安县| 会昌县| 苍南县| 喀喇沁旗| 浑源县| 琼海市| 邵武市| 温宿县| 潮州市|