特定のディレクトリのsftpユーザーへの読み取り専用権限


10

のすべてのフォルダとサブフォルダのみを読み取る権限を持つ特定のSFTPユーザーを作成したい/var/www/vhosts。これについて何か助けはありますか?

回答:


11

Unixシステムには、ユーザーを「上位」のファイルやディレクトリにアクセスできないファイルシステム階層内のディレクトリにchrootリセットできるコマンドが用意さ/れています。

ただし、あなたのケースでは、リモートシェルサービスによって実装された仮想chrootを提供することが適切です。sftpは、ローカルユーザーをファイルシステムの特定のサブセットに制限するように簡単に構成できます。

したがって、あなたのケースでchrootは、ユーザーfoouserを/var/www/vhosts/ディレクトリに入れるとしましょう。

ユーザーがchrootディレクトリを設定して、それらをの/var/www/vhosts/ようにサブディレクトリに限定することができます/etc/ssh/sshd_config

fooパスワードでユーザーを作成

sudo useradd foo
sudo passwd foo

SFTP専用グループ用に作成

$ sudo groupadd sftp_users 

fooSFTPのみのグループのユーザーに追加する

$ sudo usermod -G sftp_users foo 

読み取り/書き込み権限があるため、所有者を変更します

sudo chown root.root /var/www/vhosts/

権限を追加

sudo chmod 755 /var/www/vhosts/

編集する /etc/ssh/sshd_config

sudo vi /etc/ssh/sshd_config

コメントアウトして、以下のような行を追加します

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

最後に追加

Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory /var/www/vhosts/
  ForceCommand internal-sftp

(注:Matchブロックはファイルの終わりにある必要がありsshd_configます。)

sshサービスを再開

sudo service ssh restart

この構成では、SSHでフォルダーに移動ubuntuしてファイルを取得できます。できないputdelete

正しいフォルダでsftpするにはedit /etc/passwd。ユーザーの行をfooこのように変更します

$ sudo vi /etc/passwd

..
foo:x:1001:1001::/var/www/vhosts/:
..

これにより、ユーザーのfooホームフォルダーがsftpサーバーフォルダーに変更されます。


だから私Match Group sftp ChrootDirectory /var/www/vhosts AllowTcpForwarding no はあなたと同じようにIn sshd_config を追加して ユーザーとグループを作成しましたが、ユーザーfooはすべてのフォルダに対する権限を持っています:(
Delirium

@デリリウムは私の最新の答えを参照してください
Rahul

あなたのasnwerをどうもありがとうございました。しかし、いくつかの間違いがあるはずです。追加しましたSubsystem sftp internal-sftp Match Group sftp ChrootDirectory /var/www/vhosts AllowTcpForwarding no ForceCommand internal-sftpが、sshを再起動するときにエラーが発生します/etc/ssh/sshd_config line 92: Directive 'UsePAM' is not allowed within a Match block
Delirium

2
@デリリウム私はファイルMatch.....終わりにセクションを置くことを明確に述べました。そのコードをファイルの最後に置き、再起動します。
Rahul

1
盲目で申し訳ありませんが、うまくいきますので、本当にありがとうございました。
せん妄2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.