[unix] su를 사용하여 www-data로 명령을 실행할 수 없습니다

# 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

나의 문제점은 무엇입니까 suwww-data? 예전에는 …

아마도이 때문에입니다 /usr/sbin/nologin,하지만 어떻게 나는 드롭 root(시스템에 다른 서비스를 손상시키지 않고,이 스크립트 nologin에 의해 선택되었다 Debian좋은 이유, 내가 믿고 싶어 위해 팀)?



답변

토론없이 su대를 sudo당신은 추가 시도 할 수 -s /bin/sh명령 줄에. (데비안 맨 페이지 웹 서버가 작동하지 않아서이 옵션을 jessie에서 사용할 수 있는지 확인할 수 없습니다 : https://manpages.debian.org/ )


답변

당신이 사용하는 su“스위치 사용자”로 사용된다. 물론 www-data로그인에 사용할 수없는 사용자 계정 이기 때문에 작동 하지 않습니다. 당신은 그것을 말했다 : /usr/sbin/nologin.

아마 당신이 원하는 것은 sudo“다른 사용자로 명령을 실행”하는 데 사용됩니다.

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


답변

하나의 명령을 실행하고 싶지 않고 www-data해당 사용자를 위해 일부 항목을 테스트하기 위해 전환하려면 다음 과 같이하십시오.

sudo -u www-data sh

조금 더 짧습니다. [ctrl] + [d]를 사용하여 세션을 종료하거나exit


답변

이런 종류의 문제로 옵션을 사용했습니다 -p.

su -pc ./http-app.py www-data

-p : 환경이 보존됩니다. 특이하게도 새 계정으로 로그인하려고 시도하지 않으므로 메시지가 표시되지 않습니다.This account is currently not available. .


답변