Linux

如何在不執行 /etc/profile.d 中的腳本的情況下登錄

  • April 20, 2020

我錯誤地在 /etc/profile.d 中放置了一個 sh 腳本,以便在登錄後自動執行一些命令。第一個腳本正在執行

#!/bin/bash
sudo su - userb
several normal commands

但是,當我以“usera”身份登錄,然後執行腳本時,需要輸入 userb 密碼才能執行下一個命令。問題是我沒有 userb 密碼,我嘗試了 ctrl-c 並輸入了幾次錯誤的密碼,它們導致直接會話結束。ctrl-z 也不起作用

是否可以不執行腳本或返回“usera”以便我可以手動刪除腳本?

--noprofile通過使用參數指定 bash 登錄。

文件中

–noprofile

不讀取系統範圍的啟動文件 /etc/profile 或任何個人初始化文件 ~/.bash_profile、~/.bash_login 或 ~/.profile。預設情況下,bash 在作為登錄 shell 呼叫時會讀取這些文件(請參閱下面的 INVOCATION)。

要使用這個:

ssh usera@yourserver bash --noprofile

如果這似乎不起作用,請不要驚慌,如果登錄成功,您將一無所獲,甚至沒有提示(這都是由登錄腳本設置的)。但是您可以照常使用伺服器。

引用自:https://serverfault.com/questions/1013165