Bash
如何使用非登錄 shell 使用者登錄?
如何以非登錄 shell 使用者身份登錄,例如
apache
使用者?如果我跑步,
sudo su - apache
我會得到:此帳戶目前不可用。
在 /etc/passwd 我有:
apache:x:48:48:apache:/var/www:/sbin/nologin
使用
-u <username>
with-s
選項啟動互動式 shell。例如sudo -u apache -s
,然後用whoami
.來自
man sudo
:-s$$ command $$
-s(shell)選項執行由 SHELL 環境變數指定的 shell(如果已設置)或密碼數據庫中指定的 shell。如果指定了命令,則通過 shell 的 -c 選項將其傳遞給 shell 以執行。 如果未指定命令,則執行互動式 shell。
-u 使用者
-u (user) 選項使 sudo 以 root 以外的使用者身份執行指定的命令。 要指定 uid 而不是使用者名,#uid。當以 uid 執行命令時,許多 shell 要求使用
#' be escaped with a backslash (
’). 安全策略可能會將 uid 限制為密碼數據庫中列出的那些。只要未設置 targetpw 選項,sudoers 策略就允許密碼數據庫中沒有的 uid。其他安全策略可能不支持這一點。