Centos/Linux 설치에서만 특정 /dir/ 액세스 권한을 가진 FTP 사용자를 생성하는 방법

Centos/Linux 설치에서만 특정 /dir/ 액세스 권한을 가진 FTP 사용자를 생성하는 방법

그래서 저는 VPS - CentOS Linux 설치를 사용하고 있습니다. 내 서버에 vsFTPd가 있습니다. 현재 루트 사용자를 통해 서버에 대한 SFTP 액세스 권한이 있지만 이제 서버의 특정 디렉터리에 대해서만 FTP 액세스 권한을 갖도록 새 사용자를 생성하려고 시도하면서 다음을 수행했습니다.

1. mkdir /var/www/mydomain.com
2. mkdir /var/www/mydomain.com/html
3. useradd <-username>
4. passwd <-username>
5. chown –R <-username> /var/www/mydomain.com
5. groupadd <-groupname>
6. gpasswd -a <-username> <-groupname>
7. chgrp -R <-groupname> /var/www/mydomain.com
8. chmod -R g+rw /var/www/mydomain.com

내가 하려는 것은 다음에만 액세스할 수 있는 사용자를 만드는 것입니다. /var/www/mydomain.com- 사용자가 올바른 폴더에 올바르게 로그인했지만 사용자가 다른 디렉터리로 "뒤로" 탐색할 수 있음을 관찰했습니다.사용자가 특정 폴더에 머물면서 뒤로 "찾아볼" 수 없게 되기를 원합니다..

어떤 아이디어가 있나요?

chrooting에 대한 다양한 기사를 찾았지만 위 단계에서 chrooting을 사용하는 방법을 찾지 못했습니다.

답변1

이것은 매우 간단합니다.

vsftpd.conf 파일에 다음 옵션을 추가해야 합니다.

chroot_local_user=YES

구성 파일 내의 문서는 설명이 필요하지 않습니다.

# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().

즉, 사용자는 사용자의 홈 디렉터리로 구성한 폴더에만 액세스할 수 있습니다. 아래에는 사용자 비밀번호 입력의 예가 있습니다.

upload_ftp:x:1001:1001::/var/www/sites/:/bin/bash

다음 명령을 사용하여 사용자의 홈 디렉터리를 설정합니다.

usermod -d /var/www/my.domain.example/ exampleuser

노트:내 예에서 이 사용자는 Linux 내 일부 예약된 작업에 대한 유효한 사용자이기도 합니다. 이 요구 사항이 없으면 /sbin/nologin사용자 쉘을 bash.

답변2

포함하도록 구성을 변경한 후chroot_local_user=YES

/usr/sbin/nologin비밀번호가 손상된 경우 일부 위험을 완화할 수 있도록 사용자의 셸을 변경할 수 있습니다 (홈 디렉터리도 설정). 셸 /etc/shells도 나열되어야 합니다. 그렇지 않으면 인증이 실패합니다.

usermod -d /var/www/my.domain.example -s /usr/sbin/nologin 예제사용자

-d, --home HOME_DIR 사용자의 새 로그인 디렉토리입니다. -m 옵션이 주어지면 현재 홈 디렉토리의 내용이 새 홈 디렉토리로 이동되거나 디렉토리가 아직 존재하지 않는 경우 생성됩니다.

-s, --shell SHELL 사용자의 새 로그인 셸 이름입니다. 이 필드를 공백으로 설정하면 시스템이 기본 로그인 셸을 선택합니다.

https://security.appspot.com/vsftpd/FAQ.txt

답변3

다음은 사용자를 설정하고 FTP(예: SSH 없음)를 통해서만 사용자 액세스를 허용하고 특정(사용자 홈) 디렉터리에 대한 액세스를 제한하는 단계입니다.전문 소프트웨어:

  1. 새 사용자 추가:adduser newusername

  2. 암호를 설정하세요:passwd newusername

  3. 사용자 홈 디렉터리를 기본값에서 새 폴더로 변경합니다.

    usermod -d /target/directory username

  4. shells파일을 편집 하고 끝에 vi /etc/shells추가하세요 ./dev/null

  5. newusername파일 의 항목을 수정합니다 passwd. vi /etc/passwd항목이 다음과 같이 보이도록 이전에 추가합니다././newusername

    newusername:x:502:502::/home/ftp/./newusernamehomedirectory/:/dev/null

    4단계와 5단계에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

  6. /etc/proftpd/proftpd.conf파일을 편집 하고 해당 줄의 주석 처리를 해제하세요.DefaultRoot ~

답변4

루트 폴더 권한을 다음으로 설정하세요.711루트 계정을 사용하세요.

관련 정보