特定のフォルダへのアクセス権を持つSSHユーザーを追加する方法は?
useradd -d /var/www/xyz.com.tr/musteri -s /bin/bash -g sshd musteri
というユーザーを作成しましたmusteri
。ホームフォルダとグループを設定しました。だからmusteri
ユーザーを "/var/www/xyz.com.tr/musteri"に統合したいと思います。他のフォルダにアクセスしたくありません。
答え1
müşterilerが実際にシェルを提供せずにフォルダへのファイル転送アクセス権を持つことを望むようです。これはいいことだからビンフォースは指摘した。、制限されたアクセス権を持つシェルを人々に提供するのは難しいです。シェルを実行するには、システム全体に分散したさまざまなアイテムへのアクセスが必要なためです。
特定のフォルダにSFTPアクセスを許可するには:
- 「sftponly」などの新しいグループをシステムに追加します。
- このグループに対して制限された権限を持つ必要があるユーザーをシステムに追加します。 / bin / trueなどの制限付きシェルを提供することもできますが、必須ではありません。
/etc/ssh/sshd_config
SSH構成ファイルを変更するには、次の行を使用してください(通常)。
サブシステム SFTP 内部 SFTP 競争グループ sftponly Chroot ディレクトリ %h TCP転送を許可しますか? X11 着信番号 ForceCommand 内部 SFTP
これにより、SSH内のsftpサブシステムがアクティブになり、システムグループのメンバーがログインしたときにそのシステムのみを使用するように強制されます。また、ホームディレクトリにルートを指定します。これをホームディレクトリのサブフォルダに変更して、残りのChrootDirectory %h/musteri_sftp
システムファイルを表示することはできませんが、ホームフォルダの特殊サブフォルダに直接ログインできるようにすることができます。
コールゼラチン。
答え2
私の考えでは、これは非常に困難であっても不可能だと思います。ユーザーがSSH経由で接続している場合は、少なくともシェルが必要ですbash
。実行するには/bin/bash
アクセスが必要です/bin
。それ自体は(たとえば)何かを読むbash
必要があるため、ユーザーはこのディレクトリに滞在したいだけでなく、ファイルを実行したいと思うかもしれません。ちょっとしたデモです。ユーザーがアクセス権を持っていないか実際にはわからないなど、いくつかの依存関係があります。/etc
/etc/bash.bashrc
/etc
vim
/usr/bin
/tmp
あなたの意図を考えなければなりません。誰かがWebサービスの一部に対して読み取り/書き込みアクセス権を持つことを望みますか?その後、FTPなどを設定して特定のディレクトリをそのユーザーにエクスポートできます。したがって、SSHアクセスなしでこのファイルを読み書きできます。
もう一つの良い解決策はリポジトリです。たとえば、GITリポジトリを設定し、ユーザーがそれを複製できるようにします。彼はローカルで変更を適用し、パッチを送信することができます。パッチを適用するかどうかを決定すると、問題のあるパッチを簡単にロールバックできます。