
chrooted SFTP를 생성하는 방법에 대한 튜토리얼이 많이 있지만 FTP와 phpMyAdmin을 뒤지는 것보다 간단히 wget
, 및 unzip
를 사용하는 것이 훨씬 빠르기 때문에 SSH를 사용하고 싶습니다 . 또한 메서드는 깔끔하고(수동 매직 없이) 확장 가능해야 하므로 패키지를 쉽게 추가하고 업그레이드할 수 있습니다.mysql
mysqldump
ldd
답변1
운 좋게도 나는 그렇게 할 수 있는 방법을 생각해 낼 수 있었습니다.
1단계: chroot된 사용자를 위한 그룹 추가
groupadd chrootusers
2단계: SSH 구성
nano /etc/ssh/sshd_config
바꾸다
Subsystem sftp /usr/libexec/openssh/sftp-server
와 함께
Subsystem sftp internal-sftp
끝에 붙여넣기
Match Group chrootusers
ChrootDirectory /home/%u
달리다
systemctl restart sshd
systemctl status sshd
3단계: 사용자 추가
peter
원하는 사용자 이름으로 변경하세요 .
export NEW_USER_NAME=peter
useradd ${NEW_USER_NAME}
usermod -G chrootusers -d / ${NEW_USER_NAME}
passwd ${NEW_USER_NAME}
4단계: 패키지 설치 및 필요한 디렉터리 구조 생성
yum --installroot=/home/${NEW_USER_NAME} --releasever=7 --nogpg --disablerepo='*' --enablerepo=base install centos-release openssh-clients wget vi nano zip unzip tar mariadb findutils iputils bind-utils rsync
5단계: 마운트 proc
및dev
echo "none /home/${NEW_USER_NAME}/proc proc defaults 0 0" >> /etc/fstab
echo "/dev /home/${NEW_USER_NAME}/dev none bind 0 0" >> /etc/fstab
달리다
mount -a
6단계: DNS 서버 구성
echo "nameserver 8.8.8.8" >> /home/${NEW_USER_NAME}/etc/resolv.conf
echo "nameserver 8.8.4.4" >> /home/${NEW_USER_NAME}/etc/resolv.conf
그게 다야.
$NEW_USER_NAME
현재 세션에 바인딩되어 있다는 점을 명심하세요 !
다른 사용자를 추가하는 경우 3단계부터 시작하세요.
나중에 더 많은 패키지를 설치하려면 4단계와 동일한 명령을 사용하십시오.
SSH를 사용하여 로그인하면 다음과 같은 메시지가 표시됩니다 cannot find name for user ID x
. 무시해도 안전하지만 제거하려면 chroot에서 사용자를 복제해야 합니다.
export NEW_USER_ID=$(id -u ${NEW_USER_NAME})
export NEW_USER_GROUP_ID=$(id -g ${NEW_USER_NAME})
chroot /home/${NEW_USER_NAME} /bin/bash -c 'useradd -u ${NEW_USER_ID} ${NEW_USER_NAME}'
chroot /home/${NEW_USER_NAME} /bin/bash -c 'groupadd -g ${NEW_USER_GROUP_ID} chrootusers'