私は、nginxを介して提供される一種のファイルダンプを提供するLinuxMintマシンを持っています。
私の問題は、1人のユーザー(upload_usr)が1つの特定のフォルダー内に新しいファイル/ディレクトリを配置できるはずですが、既存のファイルを置き換えたり変更したりすることは許可されるべきではないということです。
これは次のように機能するはずです。
重要なのは、rootではない他のユーザーがこのディレクトリでr/wできる必要があるということです。
これを達成するための最も簡単な方法は何でしょうか?
(sftp-serverでopensshを想定しています。)
SSHを許可する場合、これはほぼ不可能です。ただし、SFTPのみを許可する場合:
1つの特定のフォルダ内に新しいファイル/ディレクトリを配置できる必要があります
ChrootDirectory
を使用します
その他の要件については、-P blacklisted_requests
および-u umask
で十分です。 (/usr/lib/openssh/sftp-server -Q requests
を実行すると、リクエストの種類を確認できます。)
a.txtを入れて->罰金
allow write
(デフォルトで許可)
a.txtを置く->許可しない
-u 0222
を指定してsftp-serverを実行し、setstat
fsetstat
を許可しないでください。
cata.txt->罰金
allow read
(デフォルトで許可)
b.txtを置く->罰金
allow write
(デフォルトで許可)
rma.txt->禁止
remove
(およびrmdir
?)を禁止します
TLDRユーザーをChrootDirectory
で制限し、sftp-server
を-u 0222 -P remove,rmdir,setstat,fsetstat
で実行します