ssh를 시도 할 때“현재이 계정을 사용할 수 없습니다”오류


46

SSH 연결을 시도하면 오류가 발생합니다.

$ ssh -p 22 www-data@x.x.x.x 
This account is currently not available

답변:


59

사용자 This account is currently not available.의 쉘 www-data이로 설정되어 /usr/sbin/nologin있고 매우 좋은 이유로 설정되어 있기 때문에 오류 가 발생합니다 . 로 로그인하면 안됩니다 www-data. 웹 서버에서 사용하는 특수한 사용자 / 그룹이며 일반적인 셸 사용을위한 것이 아닙니다.

편집 : 권리를 부여 하는 것은 특히 나쁜 생각 입니다. Apache가 루트 권한으로 실행되도록하려는 경우 자체 그룹이 없을 것입니다. 이렇게하면 엄청난 보안 허점이됩니다. 경고를 받았습니다.sudowww-data


5
그것은 매우 건설적이지 않습니다. 이 답변을 개선하기 위해 어떤 정보를 추가해야한다고 생각하십니까?
kraxor

4
@kraxor는 정확하지만 루트로 로그인하고 / etc / passwd의 / usr / sbin / nologin을 / bin / bash로 변경하면 해당 사용자 셸 액세스 권한이 부여됩니다. 웹 서버로 스냅 바이너리를 실행할 때이 작업을 수행합니다. www-data는 일반적으로 우분투에서 nginx / apache 용으로 예약되어 있으므로 로그인 상태가 없습니다.
engineerDave

4
@RyanNerd "보안 쓰레기에 대해 쥐에게 $$를주지 않는 것"을 선택하는 것이 좋습니다. Docker 내부에서도 모든 것을 루트로 실행 하지 않는 것이 좋습니다 . 물론로 실행되도록 Apache를 구성 root하거나에 로그인 셸을 추가 할 수 www-data있지만, 코르크 스크류를 사용하기에는 너무 게으르고 부주의하기 때문에 병을 깨서 와인 병을 여는 것과 같습니다.
kraxor

@kraxor docker에 대한 링크가 오래되었습니다. 모든 것은 여전히 ​​Docker의 루트가 소유하고 있으며 여전히 문제 입니다.
RyanNerd

비슷한 경우가 있습니다. 문서를 변환하기 위해 PHP 스크립트로 호출 할 수 있고 파일을 디스크에 www-data로 쓸 수있는 방식으로 LibreOffice를 헤드리스 모드로 실행하고 싶습니다. PHP 스크립트)를 정리하십시오. 이것은 이전 버전의 Ubuntu에서 작동하는 데 사용되는 헤드리스 LibreOffice (www.data 사용자로서 www-data)를 시작한 것으로 이전 버전보다 보안이 개선 된 것입니다.
ywarnier

56

나는 www-data 사용자를 통해 SSH를 통한 로그인을 허용하는 것이 일반적으로 나쁜 생각이라는 다른 사람들에 동의하지만, 일반 사용자로 로그인하면 www-의 권한 세트와 동시에 여러 명령을 실행하는 것이 유용 할 수 있습니다 데이터 사용자. 이 경우에는

sudo su -l www-data -s /bin/bash

www-data 사용자로 파일에 액세스 할 수 있습니다.


2
데몬 / 서비스 사용자의 권한 디버깅에 매우 유용
jmng

당신은 내 하루 감사를 저장했습니다! 시작 스크립트를 사용하지 않아서 perl-fcgi 서비스를 시작하는 데 문제가있었습니다-s /bin/bash
Couitchy

-1

내가 물어봐야 할 첫 번째 질문은이 작업을 수행하여 무엇을 달성하려고 하는가입니다.

kraxor는 100 % 정확합니다. Apache / Nginx 사용자를 사용하여 서버에 ssh 할 수 없어야합니다. 그렇게하면 뇌 세포가 절반 인 모든 해커가 서버에 초대됩니다.

해당 사용자로 스크립트 또는 일부 프로그램을 실행해야하는 경우 로그인 권한이있는 사용자에게 파일을 sudo -u www-data yourscript일시적 chown으로 시도 하거나 시도 할 수 있습니다. 이 계정에 이런 종류의 액세스를 허용하는 것은 매우 잘못된 생각입니다.


6
당신은 알고 있어야 su -하지 않도록 로그인으로 계정이 작동하지 않습니다.
sorin

어떤 계정이 비활성화되어 있습니까? 계정 사용 중지에 대한 내용은 없습니다.
TheStarvingGeek

1
passwd에 nologin이 있으면 로그인이 비활성화 된 것을 의미합니다.
sorin

1
비활성화 된 계정이 아닌 서비스 계정이므로 그 아래에서 명령을 실행할 수 있습니다
TheStarvingGeek

내 서버가 그 구별을 알지 못하는 것 같습니다. @TheStarvingGeek
LovesTha
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.