답변:
WinSCP에서 동일한 오류가 발생했습니다. 한 가지 해결책은을 사용하여 '/ www /'폴더의 소유권을 변경하는 것 chown
입니다. 이렇게하면 로그인 한 사용자를 'root'대신 소유자로 만들 수 있습니다. 우분투 대신 Amazon Linux 인스턴스를 사용하고 있지만이 명령이 효과적이었습니다.
sudo chown -R -v ec2-user /var/www/
'ec2-user'사용자는 내가 로그인 한 사용자입니다.
WinSCP를 통해 로그인하는 사용자에 대한 쓰기 권한을 활성화하십시오. 이를 수행하는 두 가지 방법이 있습니다.
첫 번째 방법은 누구나 폴더에 쓸 수 있도록 폴더의 권한을 변경하는 것입니다. 이것은 최고의 보안이 아닙니다.
chmod 777 /var/www
두 번째 방법은 디렉토리를 소유 한 그룹에 사용자를 추가 한 다음 그룹이 디렉토리에 쓸 수있는 권한을 설정하는 것입니다.
디렉토리를 소유 한 사람을 찾으십시오.
ls -l /var | grep www
drwxr-x --- 9 www-data www-data 4096 2009 년 7 월 14 일 www주의해야 할 중요한 것은 루트와 루트라는 두 이름입니다. 이 경우 디렉토리 소유자는 www-data이고 디렉토리 그룹은 www-data입니다. 이제 사용자를 추가하여 www-data를 그룹화합니다.
usermod -G www-data user
이제 그룹에 쓰기 권한을 추가하십시오.
chmod 770 /var/www
지금
ls -l /var | grep www
다음을 반환해야합니다. drwxrwx --- 9 www-data www-data 4096 2009 년 7 월 14 일 www
이를 통해 모든 사람에게 쓰기 권한을 열지 않고도 디렉토리에 쓸 수 있습니다.
다음 튜토리얼은 저에게 효과적이며 유용한 스크린 샷을 제공합니다. sudo 권한을 가진 일반 사용자로 로그인하기 위해서는 몇 가지 WinSCP 옵션을 간단히 조정해야했습니다 .
세션 / 파일 프로토콜을 SCP로 설정하고 호스트 / 인스턴스 IP, 포트-일반적으로 22 및 일반 사용자 이름을 입력하십시오. 로그인이 필요한 경우 비밀번호 자격 증명을 입력하십시오. 사용자의 해당 개인 키 파일을 Advanced / SSH / Authentication에 추가하십시오.
고급 / SSH / 인증 / 시도 "키보드 대화식"인증을 선택 취소하면 Advanced / Environment / SCP Shell / Shell / Shell : sudo su-비 소유자 사용자로서 웹 서버 디렉토리에 액세스하기위한 sudo 권한을 제공해야합니다.
업데이트 : 08/03/2017
WinSCP 로깅은 문제를 해결하는 데 도움이 될 수 있습니다.
winscp.net/eng/docs/logging :
[WinSCP] 기본 설정 대화 상자의 로깅 페이지에서 로깅을 활성화 할 수 있습니다. 스크립트에서 특히 유용한 / log 및 / xmllog 매개 변수를 각각 사용하여 명령 줄에서 로깅을 활성화 할 수도 있습니다. .NET 어셈블리에서 세션 로깅은 Session.SessionLogPath1을 사용하여 활성화됩니다.
WinSCP 연결 오류에 따라 일부 서버 설치에는 지정된 사용자에 대해 TTY가 필요하지 않도록 (Ubunto, CentOS, 기타 Linux-Server) / etc / sudoers 파일에 지시문이 추가되어야합니다. /etc/sudoers.d/에서 파일을 생성하는 것 (Amazon Command Line Interface 또는 PuTTY와 같은 도구 사용)은 / etc / sudoers를 편집하는 것보다 더 나은 옵션 일 수 있습니다. 일부 / etc / sudoers 버전은 다음을 권장합니다.
이 파일은 루트로 'visudo'명령을 사용하여 편집해야합니다. 이 파일을 직접 수정하지 말고 /etc/sudoers.d/에 로컬 컨텐츠를 추가하십시오. sudoers 파일을 작성하는 방법에 대한 자세한 내용은 매뉴얼 페이지를 참조하십시오.
명령 행을 통해 sudoers 파일 (루트로)을 편집 할 때 'visudo'명령을 사용하여 파일을 구문 오류 파일을 구문 분석하므로 파일을 열어야합니다. /etc/sudoers.d/ 파일은 일반적으로 root가 소유하고 최소 권한으로 chmoded입니다. 기본 / etc / sudoers 파일은 설치시 권장되는 chmod 권한을 자동으로 가져야하므로 참조 될 수 있습니다. 예 : 0440 r--r -----
superuser.com/a/869145 :
visudo -f /etc/sudoers.d/somefilename
Defaults:username !requiretty
유용한 링크 :
WinSCP 포럼 :-winscp.net/forum/viewtopic.php?t=3046-winscp.net/forum/viewtopic.php?t=2109
WinSCP 문서 : https://winscp.net/eng/docs/faq_su
SCP 프로토콜을 사용하면 고급 사이트 설정 대화 상자의 SCP / 쉘 페이지에서 다음 명령을 사용자 정의 쉘로 지정할 수 있습니다.
sudo -s
[...]
WinSCP는 터미널 에뮬레이션을 구현할 수 없으므로 sudoers 옵션 requiretty를 해제해야합니다.
Ubuntu Apache / etc / sudoers의 지침은 / etc / sudoers를 직접 편집하는 대신 지시문을 /etc/sudoers.d에 추가 할 것을 권장합니다. 설치에 따라 /etc/sudoers.d/cloud-init에 지시문을 추가해도 효과가있을 수 있습니다.
인스턴스 설명서에 제공된 단계에 따라 sudo 권한을 가진 SSH 테스트 사용자를 작성하면 사용자가 권장하는 인스턴스 설정 및 서버 sudoer 파일에 대한 모든 업데이트가 다른 사용자에게 영향을주지 않고 영향을 받고 제거 될 수 있는지 확인할 수 있습니다.