web-dev-qa-db-ja.com

SFTP刑務所とファイルの所有権を同じに保つ/フォルダごとのファイルの所有者

別のユーザーのホームフォルダーのサブフォルダー用にジェイルされたSFTPアカウントを設定したいが、sftpユーザーによってアップロードおよび作成された新しいファイルやフォルダーを含め、そのサブフォルダー内のすべての所有者は同じままで、 SFTPユーザーが親ユーザーであるかのように、そのサブフォルダーのファイルとフォルダー。

rawny bawb-sftp/home/rawny <-rawnyがこれを所有しています/ home/rawny/sftp <-rawnyもこれを所有していますが、bawb-sftpはそれにアップロードしたり、ファイルを編集したりできます。

bawb-sftpがファイルをアップロードする/home/rawny/sftp/lol.txtrawnyがファイルをアップロードしたのは、bawb-sftpが最初に作成したかのように、rawnyがファイルを所有している必要があります。

基本的に、私は別のユーザーの非常に制限されたパススルー/パペットとして機能するsftp刑務所を求めていると思いますか?

2
Dragonshadow

Linuxを想定すると、グループを使用することがここに行く1つの方法です。 rawnybawb-sftpの両方を含むグループを作成し、chgrp thatgroup /home/rawny/sftpを使用します(空のディレクトリから開始すると仮定し、それ以外の場合は再帰的に-Rを追加します)。

次に、ディレクトリにsuidビットとsgidビットの両方を設定し、ユーザーとグループの両方にrwxアクセスを許可します。chmod 677? /home/rawny/sftp(?をワールドアクセスにしたいものに置き換えます。一般的な選択肢は5(rx)1(x)です。と0、他の誰かにこれにアクセスしてもらいたいかどうかによって異なります。)フォルダが空でない場合は、しないでください-Rを使用してください、suid/sgid/xビットを各フォルダーに個別に適用する必要があります。

Linuxのディレクトリでsuid/sgidビットを使用すると、新しく作成されたファイルとサブディレクトリがディレクトリと同じように自動的に所有/グループ化されるため(サブディレクトリもsuid/sgidになります)、/home/rawny/sftpで作成されたすべてのファイルがrawnythatgroupが所有しているため、bawb-sftpはそれらにアクセスできます。グループ書き込み権限を持つファイルを作成するには、umaskを変更する必要がある場合があることに注意してください( ここを参照してください。ただし、umask 00で使用しますか? ここで、?は2 6または7で、前の選択肢と一致します)

1
DerfK