Linux下Wheel用戶組介紹

来源:http://www.cnblogs.com/kerrycode/archive/2017/06/20/7053118.html
-Advertisement-
Play Games

昨天遇到一個很奇怪的事情,有一臺伺服器在使用su - root命令切換到root賬號時,老是報密碼不正確。但是root密碼完全是正確的,而且可以使用賬號密碼直接ssh登錄伺服器。很是納悶,如下所示: [oracle@DB-Server ~]$ more /etc/redhat-release Red... ...


昨天遇到一個很奇怪的事情,有一臺伺服器在使用su - root命令切換到root賬號時,老是報密碼不正確。但是root密碼完全是正確的,而且可以使用賬號密碼直接ssh登錄伺服器。很是納悶,如下所示:

 

 

[oracle@DB-Server ~]$ more /etc/redhat-release 
Red Hat Enterprise Linux Server release 5.7 (Tikanga)
[oracle@DB-Server ~]$ su - root
Password: 
su: incorrect password
[oracle@DB-Server ~]$ 

 

 

clip_image001[6]

 

 

後面Google搜索了一些資料,然後測試、驗證後才弄明白了具體原因。在Linux中為了更進一步加強系統的安全性,很有必要建立了一個管理員的組,只允許這個組的用戶來執行su -命令登錄為root用戶,而讓其他組的用戶即使執行su -、輸入了正確的root密碼,也無法登錄為root用戶。在UNIX和Linux下,這個組的名稱通常為wheel。而這個是在配置文件/etc/pam.d/su裡面配置的。如下截圖所示:

 

"auth   required     pam_wheel.so use_uid"    表示禁止非wheel組用戶切換到root。所以就出現了上面在oracle用戶下切換root用戶報密碼錯誤的情況

 

 

[root@DB-Server ~]# groups oracle
oracle : oinstall dba
[root@DB-Server ~]# cat /etc/pam.d/su

 

 

 

clip_image002[6]

 

 

 

Wheel組概念 

 

Wheel組是Unix系統一個遺留物。當伺服器需要做比日常例行維護更高級的工作的時候,就經常需要用到root許可權了。而這個wheel組就是建立用來歸納一些特殊的系統用戶用的,這其中的用戶都或多或少地擁有root的部分功能和許可權。也就是說如果你不是wheel組成員,那就沒有root身上任何的特權。也因為這樣,使用wheel組成員用戶的話,會儘量減少對系統摧毀性破壞的概率和風險。如今大多數的Linux發行版本中,仍然保留了wheel這個組,雖然它已經不像當初設計出來的那樣必要了,但是有些老玩家還是忠於這種舊式經典風格的,所以他們經常還是依舊讓wheel組發揮著以往的作用。他們是這樣做的:在建立他們自己的用戶時,將其添加入wheel組中(用wheel組作為用戶的主組),或者使用vigr來編輯/etc/group文件,將他們的用戶名追加到wheel組那行的末尾。

 

 

為什麼需要wheel組?

 

通常在UNIX下,即使我們是系統的管理員,也不推薦用 root 用戶登錄來進行系統管理。一般情況下用普通用戶登錄,在需要 root 許可權執行一些操作時,再 su 登錄成為 root 用戶。但是,任何人只要知道了 root 的密碼,就都可以通過 su 命令來登錄為 root 用戶——這無疑為系統帶來了安全隱患。所以,將普通用戶加入到 wheel 組,被加入的這個普通用戶就成了管理員組內的用戶,但如果不對一些相關的配置文件進行配置,這個管理員組內的用戶與普通用戶也沒什麼區別——就像警察下班後,沒有帶槍、穿這便衣和普通人(用戶)一樣,雖然他的的確確是警察。這個對於系統安全確實很有幫助。

 

1:查看wheel組

 

[root@DB-Server ~]# cat /etc/group | grep wheel

wheel:x:10:root

[root@DB-Server ~]# groups oracle  --查看某個用戶的用戶組

oracle : oinstall dba

 

2:檢查日誌發現那些做了su切換的日誌信息。

 

[root@DB-Server ~]#  grep su /var/log/secure | grep -v sudo

Jun 20 11:32:46 DB-Server su: pam_unix(su-l:session): session opened for user oracle by root(uid=0)

Jun 20 11:32:53 DB-Server su: pam_unix(su-l:auth): authentication failure; logname=root uid=500 euid=0 tty=pts/2 ruser=oracle rhost=  user=root

Jun 20 11:33:07 DB-Server su: pam_unix(su-l:auth): authentication failure; logname=root uid=500 euid=0 tty=pts/2 ruser=oracle rhost=  user=root

Jun 20 11:33:20 DB-Server su: pam_unix(su-l:session): session closed for user oracle

[root@DB-Server ~]#

 

解決方法也很簡單,要麼將對應的賬號加入wheel組,要麼註釋掉配置文件/etc/pam.d/su中的"auth   required     pam_wheel.so use_uid" 那一行記錄。

 

 

參考資料:

 

 

https://unix.stackexchange.com/questions/116529/i-cant-login-as-root-with-su-command-but-i-can-with-ssh

 

http://www.2cto.com/os/201310/251533.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 系統環境:Win10 64位 MySQL版本:mysql-5.7.18-winX64 部署的步驟就是按照網上說的: 1:修改環境變數path,增加值D:\Program Files\MySQL\MySQL Server 5.7\bin 2:複製了一個舊版本mysql安裝目錄下的my.ini(網上說這 ...
  • 父進程 在電腦領域,父進程(英語:Parent Process)指已創建一個或多個子進程的進程。 UNIX 在UNIX里,除了進程0(即PID=0的交換進程,Swapper Process)以外的所有進程都是由其他進程使用系統調用fork創建的,這裡調用fork創建新進程的進程即為父進程,而相對應 ...
  • 0 這幾天剛來實驗室,拿到師兄的電腦後先裝系統,下麵簡單記錄一下歷程。 1 重裝系統:windows(Win7) 1.1 下載大白菜/老毛桃等工具,把U盤製作成啟動盤 1.2 下載windows系統鏡像文件放入U盤中 1.3 U盤插入待裝系統的主機,開機進入BIOS(不同電腦進入方式不同,通常是開機 ...
  • 這個標題夠直接了吧,夠坦誠了吧,也許你在項目里這三個東西都沒有用到,但這三個東西在未來的兩年裡將成為最HOT的技術,它們不是什麼框架,也不是什麼設計模式,而是做為程式和環境快速部署而設計出來的,為的就是解決未來超級複雜的開發環境的部署工作,對於這三個東西,大叔最近也在研究與實踐,並現時會總結出一些東 ...
  • 在UNIX系統中,僵屍進程是指完成執行(通過exit系統調用,或運行時發生致命錯誤或收到終止信號所致)但在操作系統的進程表中仍然有一個表項(進程式控制制塊PCB),處於”終止狀態“的進程。這發生於子進程需要保留表項以允許其父進程讀取子進程的exit status:一旦退出態通過wait系統調用讀取,僵屍 ...
  • 一、GIT的定義——分散式版本控制系統 二、Git的功能特性: 1、從一般開發者的角度來看,git有以下功能: 二、Git的功能特性: 1、從一般開發者的角度來看,git有以下功能: 二、Git的功能特性: 1、從一般開發者的角度來看,git有以下功能: [1]、從伺服器上克隆完整的Git倉庫(包括 ...
  • 1.掛載iOS鏡像(先打開VM 選擇虛擬機————>設置——>CD ————>使用ISO鏡像文件 用瀏覽打開) 2.開始界面選擇 3出現下麵的界面 這是提示你是否掃描文件的完整性 我們一般在這裡選擇skip (這裡用方向鍵選擇 回車確定 ) 4.這裡是一個歡迎界面 直接next 5.本次安裝使用中文 ...
  • 1.安裝web環境,使用LNMP一鍵安裝包具體安裝步驟參考https://lnmp.org/install.html 2.安裝完成後,安裝LNMP缺少的組件ionCube組件安裝進入lnmp解壓後的目錄,執行:./addons.sh install ionCube 回車確認後就會自動安裝ionCub ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...