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

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

su내 질문이나 질문이 있나요 www-data? 예전엔 효과가 있었는데...

아마도 그렇기 때문일 것입니다 /usr/sbin/nologin. 하지만 시스템의 다른 서비스에 영향을 주지 않고 이 스크립트를 삭제하려면 어떻게 해야 합니까 (팀이 정당한 이유로 이를 선택했다고 root믿고 싶습니다 )?nologinDebian

답변1

su이것을 "사용자 전환"에 사용하고 있습니다 . 물론 www-data이것은 로그인에 사용할 수 없는 사용자 계정이므로 작동하지 않습니다. 당신은 그것을 말했습니다 : /usr/sbin/nologin.

아마도 당신이 원하는 것은 sudo"다른 사용자로 명령 실행"일 것입니다.

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

답변2

논쟁할 필요가 없습니다 su. 명령줄에 sudo추가해 보세요 . -s /bin/sh(데비안 매뉴얼 페이지 웹 서버가 작동하지 않기 때문에 이 옵션이 jessie에 대해 작동하는지 확인할 수 없습니다.https://manpages.debian.org/)

답변3

www-data명령을 실행할 뿐만 아니라 해당 사용자 로 전환하여 무언가를 테스트하고 싶다면 다음과 같이 하면 됩니다.

sudo -u www-data sh

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

답변4

또 다른 가능성이 있습니다(저에게는 Debian 10에서 작동합니다).

루트로 편집할 수 있습니다 /etc/passwd. 셸을 ~ www-data또는 원하는 대로 /usr/sbin/nologin변경할 수 있습니다./bin/bash

www-data:x:33:33:www-data:/var/www:/bin/bash

www-data비밀번호를 입력하는 것을 잊지 마세요

passwd www-data

www-data그런 다음 일반 사용자로 로그인 할 수 있습니다 .

관련 정보