У меня есть серверный скрипт, выполняемый Apache под управлением www-data
. Скрипт отлично работает на сервере при удаленном вызове (http://example.com/script.sh
).
Я пытаюсь запустить тот же сценарий на том же сервере, что и root
, олицетворяющий www-data
. Даже не su www-data -c 'id'
или runuser -l www-data -c 'id'
терпит неудачу с
This account is currently not available.
2016 Nov 4 09:45:54 eu1 Attempted login by root on /dev/pts/0
Эта учетная запись действительно заблокирована от интерактивного входа в систему (что нормально):
# grep www-data /etc/shadow
www-data:*:15246:0:99999:7:::
# grep www-data /etc/passwd
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
Поскольку Apache удается запускать что-то как www-data
затем root
должен уметь делать то же самое. Как это сделать?
пытаться
su -s /bin/bash www-data -c
Поскольку www-data не имеет оболочки, вы должны указать ее с -s
вариант.