Linux執行個體使用su命令切換使用者時,提示“su: failed to execute /bin/bash: Permission denied”錯誤怎麼辦?
更新時間:
Copy as MD
問題現象
使用su命令切換使用者時,提示以下錯誤。
su: faild to execute /bin/bash: Permission denied問題原因
路徑許可權不足:缺少通往 /bin/bash 路徑上必需的執行(x)許可權。沒有執行許可權,無法進入相應目錄,運行/bin/bash建立新的Shell會話。
解決方案
登入ECS執行個體。
訪問ECS控制台-執行個體。在頁面左側頂部,選擇目標資源所在的資源群組和地區。
進入目標執行個體詳情頁,單擊遠端連線,選擇通過Workbench遠端連線。根據頁面提示登入,進入終端頁面。
檢查/bin/bash是否被鎖定。
若
/bin/bash被鎖定,將無法修改許可權。檢查擴充屬性是否存在
a(僅追加)或i(不可變)。sudo lsattr /bin/bash# /bin/bash存在a屬性 ----a---------e------ /bin/bash #/bin/bash存在i屬性 ----i---------e------ /bin/bash #/bin/bash存在a和i屬性 ----ia--------e------ /bin/bash樣本表明
/bin/bash被鎖定,需要修改,否則請檢查並確保/bin/bash具備執行許可權。移除屬性。
# 如果存在 i 屬性,執行此命令 sudo chattr -i /bin/bash # 如果存在 a 屬性,執行此命令 sudo chattr -a /bin/bash移除後,請繼續檢查並修本文件系統路徑許可權。
檢查並確保
/bin/bash具備執行許可權。檢查完整路徑許可權。
查看從根目錄到
/bin/bash的每一級路徑許可權。sudo namei -l /bin/bashf: /bin/bash dr-xr-xr-x root root / dr-xr-xr-x root root bin -r-xr-xr-x root root bash樣本為最少需要的許可權配置,若輸出低於以上許可權請修複,否則可驗證結果。
例如輸出的
/許可權為dr--r--r--,表示只有讀許可權,未滿足許可權最小許可權配置,需要修複。許可權修複。
# 修複根目錄許可權 sudo chmod 555 / # 修複 /bin 目錄許可權 sudo chmod 555 /bin # 修複 /bin/bash 檔案許可權 sudo chmod 755 /bin/bash
驗證結果。
重新執行
su命令切換使用者,確認問題已解決。
该文章对您有帮助吗?