Bash

如何使用非登錄 shell 使用者登錄?

  • September 2, 2020

如何以非登錄 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。其他安全策略可能不支持這一點。

引用自:https://unix.stackexchange.com/questions/607594