chroot 디렉토리 구성 요소의 잘못된 소유권 또는 모드


56

MY_USER 사용자를 만들었습니다. 그의 홈 디렉토리를 / var / www / RESTRICTED_DIR로 설정하십시오.이 경로는 제한되어야합니다. 그런 다음 sshd_config를 편집하고 설정했습니다.

Match user MY_USER
  ChrootDirectory /var/www/RESTRICTED_DIR

그런 다음 ssh를 다시 시작했습니다. RESTRICTED_DIR의 MY_USER 소유자 (및 그룹 소유자)를 만들고 755로 chmodded했습니다.

Accepted password for MY_USER
session opened for user MY_USER by (uid=0)
fatal: bad ownership or modes for chroot directory component "/var/www/RESTRICTED_DIR"
pam_unix(sshd:session): session closed for user MY_USER

sshd_config에서 2 줄을 제거하면 사용자가 성공적으로 로그인 할 수 있습니다. 물론 모든 서버에 액세스 할 수 있습니다. 뭐가 문제 야? 심지어 RESTRICTED_DIR을 루트로 숨기려고했습니다 (누군가가 동일한 문제를 해결 한 곳을 읽을 때). 불운..

답변:


73

에서 페이지 :man

ChrootDirectory
인증 후 chroot (2)까지의 디렉토리 경로 이름을 지정합니다. 경로명의 모든 구성 요소는 다른 사용자 나 그룹이 쓸 수없는 루트 소유 디렉토리 여야합니다 . chroot 이후, sshd (8)는 작업 디렉토리를 사용자의 홈 디렉토리로 변경합니다.

내 생각에 경로의 디렉토리 중 하나 이상이 해당 요구 사항을 충족하지 않습니다 (내 의심은 www루트가 아닌 웹 사용자가 소유하거나 쓸 수 있음).
위의 굵은 기울임 꼴로 표시된 요구 사항 이 충족 되는지 확인한 후 지시 사항을 따르십시오 .


이것은 나를 화나게한다. 나는 "chown root : root -R / var / www"; "chmod 775 -R / var / www /"; "usermod -a -G root www-data". 그러나 여전히 MY_USER로 로그인 할 수 없습니다
MultiformeIngegno

1
요구 사항은 경로의 구성 요소에 ( /, /var, /var/www, 그리고 /var/www/RESTRICTED_DIR모두가 위의 보안 요구 사항을 충족해야합니다). 그것은 진정한 chroot입니다 (man 페이지를 검토하십시오) – 사용자의 홈 디렉토리 는 chroot 내에 존재 해야 /bin합니다. 사용자가 필요로하는 다른 모든 것들이 필요합니다.
voretaq7

2
승인! 해결되었습니다. 나는 chrooted 디렉토리를 레벨 업으로 설정했다. 그런 다음 원래 chrooted_dir에 777 개의 perms를 부여했습니다. 그것은 작동합니다 :)
MultiformeIngegno

1
맨 페이지의 내용에도 불구하고 그룹이 '루트'로 설정되어 있어도 작동하기 전에 gw 권한을 설정해야했습니다 (Ubuntu 14.04). 맨 페이지 에 경로 이름의 모든 구성 요소는 다른 사용자 나 그룹이 전혀 쓸 수없는 루트 소유 디렉토리 여야합니다. sudo chown root:root -R /path/to/home; sudo chmod 755 -R /path/to/home
mmell

3
나는 이것이 아주 오래되었다는 것을 알고 있지만 /var/www아파치를 깨뜨릴 수 있는 경로 의 권한을 직접 수정하는 대신 sftp 디렉토리를 다른 경로에 배치 한 다음 Apache의 URL 매핑을 사용하여 다른 디렉토리를 가리키는 것이 훨씬 낫습니다 . 여기에 문서를 확인 httpd.apache.org/docs/2.4/urlmapping.html 에서Files Outside DocumentRoot
다니엘

32

ChrootDirectory 디렉토리는 root가 소유하고 755 모드를 가져야합니다.

sudo chown root:root /var/www/RESTRICTED_DIR
sudo chmod 755 /var/www/RESTRICTED_DIR

자, 이제 모든 파일 /var/www/RESTRICTED_DIR은에 의해 소유되어야하며 MY_USER, www-data그룹에 속해야하며 다음과 같이 그룹 권한을 허용하는 775 모드가 있어야합니다.

sudo usermod -a -G www-data MY_USER
sudo chown MY_USER:www-data /var/www/RESTRICTED_DIR/*
sudo chmod 775 -R /var/www/RESTRICTED_DIR/*

참고 : 아파치를 구성하는 경우 htdocs 폴더에만 액세스하는 것이 좋습니다.


3
sudo usermod -a -G www-data MY_USER그룹이 다음에 와야 한다는 것을 확신하십시오-G
sMyles

이것은 작동하지만 디렉토리에 새 파일을 업로드 할 수 없으며 루트 계정과 사용자 소유권으로 이전에 작성된 파일 만 수정할 수 있습니다.
dlopezgonzalez

3

오늘 문제를 해결 한 후 root도 디렉토리 에 수 있어야한다는 것을 깨달았습니다 .

다음은 작동하지 않았습니다.

$ ls -ld /mnt/synology03/files/
dr-xr-xr-x 1 root root 156 Oct  8 20:10 /mnt/synology03/files/
$ ls -ld /mnt/synology03
drwxr-xr-x 7 root root 4096 Oct  1 21:26 /mnt/synology03
$ ls -ld /mnt
drwxr-xr-x 6 root root 4096 Feb  8 10:01 /mnt
$ ls -ld /
drwxr-xr-x 24 root root 4096 Jan 14 09:22 /

이 문제를 해결하자마자 chroot가 작동하기 시작했습니다.

$ sudo chmod 755 /mnt/synology03/files/
$ ls -ld /mnt/synology03/files/
drwxr-xr-x 1 root root 156 Oct  8 20:10 /mnt/synology03/files/
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.