ユーザーが自分のホームディレクトリにのみアクセスできるように制限するにはどうすればよいですか?

ユーザーが自分のホームディレクトリにのみアクセスできるように制限するにはどうすればよいですか?

自分のホームディレクトリ内のすべてのアイテムにのみアクセスできるユーザーを作成する必要があります。たとえば、ユーザー名がある場合、stashそのユーザーは内からのみアクセスできます/home/stash

Linux(Raspbian)で実行されます。

私はこのユーザーのためにホームディレクトリの外にあるすべてのファイルとディレクトリから権限を削除するグループを作成しようとしていますが、Linuxでは権限操作に慣れていません。

答え1

SSHを使用してログインする場合は、chrootを選択できます。テストユーザーホームディレクトリとして機能します/var/chroot/home/testusr:

上記のコマンドはrootとして実行する必要があります。

# 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に追加)。

関連情報