사용자가 자신의 홈 디렉터리에만 액세스하도록 제한하려면 어떻게 해야 합니까?

사용자가 자신의 홈 디렉터리에만 액세스하도록 제한하려면 어떻게 해야 합니까?

자신의 홈 디렉터리에 있는 모든 항목에만 액세스할 수 있는 사용자를 만들어야 합니다. 예를 들어 사용자 이름이 인 경우 stash해당 사용자는 내에서만 액세스할 수 있습니다 /home/stash.

Linux(Raspbian)에서 실행됩니다.

나는 이 사용자를 위해 홈 디렉터리 외부의 모든 파일과 디렉터리에서 권한을 제거하는 그룹을 만들려고 생각하고 있지만 Linux에서 권한 작업에 익숙하지 않습니다.

답변1

SSH를 사용하여 로그인하는 경우 chroot를 선택할 수 있습니다.테스트 사용자홈 디렉토리 역할을 할 것입니다/var/chroot/home/testusr:

위 명령은 루트로 실행되어야 합니다.

# Create the needed dirs
mkdir -p /var/chroot/{lib,lib64,etc,home,usr}
# Create the user account 
useradd -d /var/chroot/home/testusr testusr
echo "testusr:testusr" | chpasswd 
cd /var/chroot
# Create some basic dev nodes that will be needed by the terminal
mknod -m 666 null c 1 3
mknod -m 666 tty c 5 0
mknod -m 666 zero c 1 5
mknod -m 666 random c 1 8
#Make available the needed libraries
mount -o bind /lib /var/chroot/lib
mount -o bind /lib64 /var/chroot/lib64
mount -o bind /usr /var/chroot/usr
# Set the correct permissions
chown root:root /var/chroot
chmod 755 /var/chroot
# Set the jail on sshd daemon
cat <<EOF >> /etc/ssh/sshd_config
Match user testusr
    ChrootDirectory /var/chroot
EOF
# Restart sshd daemon
systemctl restart sshd
# Set the default shell for the user &  copy the content of /etc/group and /etc/passwd to the jail
usermod -s /usr/bin/bash testusr
cp /etc/{passwd,group} /var/chroot

또한 바인드 마운트는 테스트 목적이 아닌 경우 영구적이어야 합니다(/etc/fstab에 추가).

관련 정보