これを行う最良の方法は、ユーザーのchroot刑務所を作成することです。帰宅したらここで回答を整理しますが、解決策をブログに投稿しました。
https://thefragens.com/chrootd-sftp-on-mac-os-x-server/
以下は、上記の投稿からのほとんどの指示です。
まず、Workgroup Adminで新しいユーザーを作成し、Server Adminを介してSSHのアクセス権限を割り当てるか、SSHアクセス権限を持つグループに割り当てます。さらなる議論は以下にあります。
ターミナルから、右から始めます。
sudo cp /etc/sshd_config /etc/sshd_config.bkup
sudo chown root /
sudo chmod 755 /
sudo mkdir -p /chroot/user/scratchpad
sudo chown -R root /chroot
sudo chown user /chroot/user/scratchpad
sudo chmod -R 755 /chroot
追加されるすべての新しいユーザーは、次の行に沿ったものになります。
sudo mkdir -p /chroot/user2/scratchpad
sudo chown root /chroot/user2
sudo chown user2 /chroot/user2/scratchpad
sudo chmod -R 755 /chroot/user2
chroot jailへのパスであるすべてのフォルダーは、によって所有されてroot
いる必要があります。フォルダがどのグループに属しているかは問題ではないと思います。上記でしたことは
- バックアップ
/etc/sshd_config
- ルートディレクトリの所有権を変更します
root
- ルートディレクトリのアクセス許可を755に変更します
- chrootフォルダーを作成します
- chrootフォルダー内にユーザーフォルダーを作成する
- ユーザーが変更できるユーザーフォルダー内にフォルダーを作成します
- 所有権と許可を設定する
次に/etc/sshd_config
、以下を編集します。
#Subsystem sftp /usr/libexec/sftp-server
Subsystem sftp internal-sftp
Match User user
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/user
これは、ユーザがログインがフォルダにドロップする時期というchroot監獄作成し/chroot/user
、そのフォルダに、彼らはに物事を追加できるフォルダです/chroot/user/scratchpad
。
「Chrootユーザー」のワークグループ管理でグループを作成する場合は、ワークグループ管理で作成した新しいユーザーを、/etc/sshd_config
ファイルの編集を続ける必要のないグループに追加します。上記の代わりに、以下を追加します。Server Adminで「Chroot Users」グループをSSHアクセスACLに追加してください。
Match Group chrootusers
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/%u
上記が機能しているかどうかをテストするには、ターミナルから次を発行します。
$ sftp user@domain.com
Password:
sftp>