Debian

無法使用 su 作為 www-data 執行命令

  • September 13, 2021
# su -l www-data ./http-app.py
This account is currently not available.
# su -l www-data -c ./http-app.py
This account is currently not available.
# su -c ./http-app.py www-data 
This account is currently not available.
# su -lc ./http-app.py www-data 
This account is currently not available.
# getent passwd www-data 
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
# getent shadow www-data 
www-data:*:16842:0:99999:7:::
# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 8.6 (jessie)
Release:        8.6
Codename:       jessie

我的suor有什麼問題www-data?它曾經工作…

大概這是因為/usr/sbin/nologin,但是我如何放棄root這個腳本,而不損害系統上的其他服務(團隊nologin選擇Debian了一個很好的理由,我想相信)?

無需辯論susudo您可以嘗試添加-s /bin/sh到命令行。(我無法驗證此選項是否可用於 jessie,因為 Debian 聯機幫助頁網路伺服器無法正常工作:https ://manpages.debian.org/ )

您正在使用su哪個用於“切換使用者”。當然它不會起作用,因為它www-data是一個不能用於登錄的使用者帳戶。你已經告訴它了:/usr/sbin/nologin

也許您想要的sudo是用於“以另一個使用者身份執行命令”。

sudo -u www-data ./http-app.py

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