私はdigitaloceanにUbuntuサーバーを持っていて、他の人のドメインのために私のサーバーにフォルダを持っていたいと思います。私の問題は、そのユーザーが自分のフォルダやファイルを表示したり、ファイルをフォルダから移動できないようにすることです。
このユーザーを自分のフォルダに制限し、他のファイル/ディレクトリを移動または表示できないようにするにはどうすればよいですか。
ベストアンサー1
私はこのように問題を解決しました。
新しいグループの作成
$ sudo addgroup exchangefiles
chrootディレクトリの作成
$ sudo mkdir /var/www/GroupFolder/
$ sudo chmod g+rx /var/www/GroupFolder/
グループ書き込み可能ディレクトリの作成
$ sudo mkdir -p /var/www/GroupFolder/files/
$ sudo chmod g+rwx /var/www/GroupFolder/files/
どちらも新しいグループに提供
$ sudo chgrp -R exchangefiles /var/www/GroupFolder/
次に、/etc/ssh/sshd_config
ファイルの末尾に以下を追加します。
Match Group exchangefiles
# Force the connection to use SFTP and chroot to the required directory.
ForceCommand internal-sftp
ChrootDirectory /var/www/GroupFolder/
# Disable tunneling, authentication agent, TCP and X11 forwarding.
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
今、私のグループにObamaという新しいユーザーを追加したいと思います。
$ sudo adduser --ingroup exchangefiles obama
これですべての作業が完了したので、SSHサービスを再起動する必要があります。
$ sudo service ssh restart
注:現在、ユーザーはディレクトリfile
外で何もできません。
私は、彼のすべてのファイルがそのフォルダにある必要があることを意味します。