UbuntuサーバーのSFTPのデフォルトのアクセス権を設定するにはどうすればよいですか?


16

Ubuntu 10.04サーバーがあります。SFTPまたはSSH経由で作成(またはコピー)された新しいファイルにg + rwおよびg + rwxのアクセス許可(適切な場合)が設定されるように設定するにはどうすればよいですか?

また、setgid(chmod g + s)を使用して、適切なグループ所有者を継承しています。

回答:


12

/ etc / ssh / sshd_configでは、次のように(-u 0002)でフラグと値を渡して、umask値を設定できます。

Subsystem sftp /usr/lib/openssh/sftp-server -u 0002

構成ファイルの既存のサブシステムsftp行に-u 0002を追加します。

その後、変更を有効にするためにsshを再起動する必要があります。

service ssh restart

これはOpenSSHの新しいバージョンにのみ適用されますが、可能な場合は推奨されるソリューションです。
アンドリューB

2
これは、クライアントによって設定されているものよりも制限の厳しいアクセス許可が必要な場合にのみ機能します。
ヨースト

Joostが言ったように、これはグループ書き込み許可を強制するのに役立ちません。グループ書き込みを禁止するのに役立ちます。
フライト

最近のドキュメントによると、と同じオプションを使用できますSubsystem sftp internal-sftp
underscore_d

10

/ etc / ssh / sshd_configで、次を変更します。

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

に:

Subsystem sftp /bin/sh -c 'umask 0002; exec /usr/libexec/openssh/sftp-server'

ソース:http ://jeff.robbins.ws/articles/setting-the-umask-for-sftp-transactions


1
execfinalの前にを置くと、/usr/.../sftp-server無駄なshプロセスが横たわることがなくなります。
user1686

また、umaskは単なる数字です。0002として短く書くことができます02
user1686

umaskは8進数だと思っていましたが、execの部分に感謝します。
wag2639

2
はい、umask 8進数です。これは、3つの先行ゼロが必要という意味ではありません-1つで十分です。(実際には、umaskコマンドは必要ありません任意の先行ゼロを、それは常に8進数として引数を読み込みます。)...しかし、考え直しに、多分0002理解することは明確です。
user1686

2
これは私にはうまくいきません。g + wパーミッションは強制されません。
フライト
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.