ユーザーMY_USERを作成しました。彼のホームディレクトリを/ var/www/RESTRICTED_DIRに設定します。これは、彼が制限されるべきパスです。次に、sshd_configを編集して設定します。
Match user MY_USER
ChrootDirectory /var/www/RESTRICTED_DIR
その後、sshを再起動しました。 RESTRICTED_DIRのMY_USER所有者(およびグループ所有者)を作成し、それを755にchmodしました。
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をrootに変更しようとしました(誰かがこの同じ問題を解決することをどこかで読んだので)。運が悪い.
the man
ページ から:
ChrootDirectory
認証後にchroot(2)するディレクトリのパス名を指定します。 パス名のすべてのコンポーネントは、他のユーザーまたはグループが書き込みできないルート所有のディレクトリである必要があります。 chrootの後で、sshd(8)は作業ディレクトリをユーザーのホームディレクトリに変更します。
パス上の1つ以上のディレクトリがこれらの要件を満たしていないと思います(私の疑いはwww
はrootではなくWebユーザーが所有または書き込み可能である)。
戻って指示に従い、上記の要件が太字斜体であることを確認します会った。
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/*
注:Apacheを設定している場合は、htdocsフォルダへのアクセスのみを許可することをお勧めします。
今日いくつかのトラブルシューティングを行った後、ルートにもディレクトリへのwriteが可能でなければならないことに気付きました。
以下は機能しませんでした:
$ 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/