特定のフォルダにアクセスする権限しか持たないsshユーザーを追加するにはどうすればよいですか?
useradd -d /var/www/xyz.com.tr/musteri -s /bin/bash -g sshd musteri
musteri
というユーザーを作成しました。ホームフォルダとグループを設定しました。ですから、musteri
ユーザーを "/var/www/xyz.com.tr/musteri"に統合したいと思います。別のフォルダにアクセスしたくありません。
Müşterilerに、実際にはシェルを与えずにフォルダーへのファイル転送アクセスを許可したいようです。 binfalseが指摘 のように、シェルが実行するためにシステム上に散在するあらゆる種類のものにアクセスする必要があるため、アクセスが制限されたシェルをユーザーに提供するのは難しいので、これは良いことです。
SFTPに特定のフォルダへのアクセスを許可するには、次のようにします。
/etc/ssh/sshd_config
)を変更しますサブシステムsftp internal-sftp 一致グループsftponly ChrootDirectory%h AllowTCPForwarding no X11Forwarding no ForceCommand internal-sftp
これにより、SSH内のsftpサブシステムがアクティブになり、そのシステムグループのメンバーがログイン時にそのシステムのみを使用するようになります。また、ホームディレクトリにchrootします。それをChrootDirectory %h/musteri_sftp
などのホームディレクトリのサブフォルダに変更して、残りのシステムファイルを選択できなくても、ホームフォルダの特別なサブフォルダに直接ログインできるようにすることができます。 。
コレイゲルシン。
私の意見では、これは不可能ではないにしても非常に困難です。ユーザーがSSH経由で接続する場合、少なくともシェルが必要です。あなたの場合はbash
です。 /bin/bash
を実行するには、/bin
へのアクセス許可が必要です。 bash
自体は/etc
から一部を読み取る必要があるため(たとえば、/etc/bash.bashrc
)、ユーザーは/etc
にもアクセスする必要があります。ユーザーがこのディレクトリにいるだけでなく、ファイルを読みたいと思うかもしれませんが、たとえばvim
を実行するには、/usr/bin
へのアクセスも必要です。
これはほんの少しのデモンストレーションであり、さらにいくつかの依存関係があります。ユーザーが/tmp
..にアクセスできない場合、どうなるかわかりません。
あなたは自分の意図について考えるべきです。誰かにWebサービスの一部への読み取り/書き込みアクセス権を与えたいですか?次に、FTPなどを設定して、特定のディレクトリをこのユーザーにエクスポートします。そのため、SSHアクセスなしでこのファイルを読み書きできます。
もう1つの素晴らしい解決策はリポジトリです。たとえば、GITリポジトリをセットアップして、ユーザーがそれを複製できるようにします。彼はローカルで変更を行い、パッチを送信できます。このパッチを適用するかどうかを決定できます。バグのあるパッチのロールバックも非常に簡単です。