Linux故障排查案例實戰

2021-10-04 18:15:10 字數 2177 閱讀 7648

1.1 su  切換使用者帶來的疑惑

需要,客戶沒有考慮太多就直接重啟了伺服器,系統重新啟動倒是沒有出現問題,可是接下

來,當客戶準備切換到 oracle 使用者下啟動資料庫時,怎麼都無法進行 su 切換,於是問題出

現了。1 . 案例現象

在 root 使用者下,su 切換到乙個普通使用者 oracle 下,卻發生了錯誤,如圖:

於是,嘗試直接通過 oracle 使用者登入系統,發現此時的 oracle 使用者也無法登入了,出現

與上面同樣的錯誤。

2 . 解決思路

從上面錯誤提示可知是許可權出現了問題,那麼可以從許可權入手進行排查,基本思路如下:

  使用者目錄/home/oracle 許可權問題

  su 程式執行許可權問題

  程式依賴的共享庫許可權問題

  selinux 問題導致

  系統根空間問題

3 . 排查問題

根據上面的思路,我們進行逐一檢查,考慮到 su 在切換到 oracle 使用者時會讀取 oracle

目錄下的環境變數配置檔案,因此,首先檢查/home/oracle 目錄的許可權是否存在問題,

[root@localhost home]# ls -al /home|grep oracle

drwx------ 4 oracle oinstall 4096 01-31 10:45 oracle

從輸出可知,/home/oracle目錄的屬主是oracle使用者,而oracle使用者對這個目錄具有「rwx」

許可權,因此,oracle 使用者目錄的許可權設定是正確的,可以排除掉這個問題了。

接著檢查 su 執行許可權問題:

[root@localhost home]# ll /bin/su

-rwsr-xr-x 1 root root 24120 2007-11-30 /bin/su

可見 su 命令執行許可權也沒有問題,這個也排除了。

繼續檢查 su 依賴的共享庫許可權,使用 ldd 命令檢查 su 命令依賴的共享庫檔案,如圖所示,通過 ldd 命令檢查 su 命令依賴的共享庫檔案。

根據上面的操作,依次檢查 su 命令依賴的每個庫檔案的許可權,發現也都是正常的,都

具有可執行許可權,因此,共享庫的問題也排除了。

根據上面的思路,繼續檢查 selinux 的設定,執行命令如圖所示,檢查 selinux 的設定

由輸出可知,selinux 處於關閉狀態,這個原因也排除了。

到這來為止,問題變得撲朔迷離,到底是**出現問題了呢?作為 linux 運維,例行檢

查系統根分割槽狀態是非常必要的,那麼首先檢查一下根分割槽的磁碟空間大小,發現剩餘空間

還有很多,空間問題也排除。既然報的錯誤是許可權有問題,那麼只要以許可權為線索,不偏離

這個核心就沒錯,於是繼續嘗試檢查/home 目錄下各個使用者的許可權,執行命令如圖所示。

從輸出看每個使用者的目錄許可權,都是「rwx------」,即「700」,完全沒有問題,可是我

發現我錯了,我的目光一直在使用者對應的目錄上,而忽略了其他輸出資訊,而問題就藏在我

沒有關注的資訊中。在這個命令輸出的前兩行中,第一行許可權對應的目錄是「.」,代表當前

目錄,也就是/home 目錄,許可權為「rwxr-xr-x」,即「755」,第二行許可權對應的目錄是「..」,

通過這個命令,可以很清晰地看到,根目錄的許可權是「0666」,這才是導致 su 執行失敗

的根本原因。

4 . 解決問題

知道了問題產生的原因,解決問題就非常簡單,執行如下命令:

[root@localhost ~]#chmod 755 /

然後就可順利執行 su 切換命令。

最後,做個簡單的總結,這個問題主要是由於根目錄沒有可執行許可權,而 linux 下所有

的操作都是在根目錄下進行的,進而導致/home/oracle 目錄沒有執行許可權。其實根目錄許可權

的丟失對於系統中執行的每個使用者存在同樣的影響。因此,在許可權出現問題時,一定要注意

根目錄的許可權。

linux被當礦機排查案例

1 發現伺服器變的特別卡,正常服務執行很慢。到伺服器上查詢一番發現top下發現 bashd的程序占用100 cpu了。find name bashd 第一次查詢檔案占用目錄 kill 9 pid bashd 刪除bashd程序 2 趕時間處理刪除程序 kill 9 pid bashd的pid 3 第...

記一次上線就跪的故障排查案例

這個是我很早以前解決的乙個案例,其現象是系統每次上線後,20多台機器,總有兩三機器,出現假死的情況。如何判斷出系統假死?借助的是乙個第三方公司運維監控平台 這種情況,前同事稱之為的 假死 需要重新啟動系統才能恢復。因為我是新來乍到,覺得這種情況不正常,而且對研發 在這邊是研發上線 來說,是乙個非常大...

故障排錯實戰案例

實戰案例1 centos 7 8 破壞mbr後進行恢復 dd if dev zero of dev sda bs 1 count 446 光碟進入救援模式 grub2 install root directory mnt sysimage dev sda 實戰案例2 entos 7 8刪除 boot...