# 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
나의 문제점은 무엇입니까 su
나 www-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.
.