サーバーの共有ディレクトリに対する権限の問題

サーバーの共有ディレクトリに対する権限の問題

設定は、Debian Squeezeを実行しているVPSがあり、ファイルを共有できる共有ディレクトリを設定したことです。これまで私はこのガイドに従いました。

http://www.cyberciti.biz/faq/linux-setup-shared-directory/

また、umaskを002に正しく設定しているので(該当するガイドの説明を参照)、サーバーから直接ファイルとディレクトリを作成できるようになりました。両方に読み取り/書き込みアクセス権があります。

唯一の問題は、多くのファイルがローカルコンピュータ(両方Ubuntu 10.10を実行)で作成され、次にサーバーにダンプされることです。これにより、ファイル/ディレクトリ作成者のみが書き込み権限を持ち、このフォルダを共有するように設定したグループの他のメンバーのみが読み取り権限を持ちます。

次に考えたのは、ローカルコンピュータのデフォルトのumaskを変更することでしたが、そうすることはやや極端なように見え、セキュリティリスクがあるかどうかはわかりません。

私が達成しようとする目標を達成するためのより良い解決策があるのか​​、それとも実際に行くべき道なのかを誰かが教えてもらえますか?

事前にありがとう

答え1

別のアプローチを使用し、次のようにファイルを共有します。アクセス制御リストディレクトリに。

まず、ディレクトリを含むファイルシステムでアクセス制御リストが有効になっていることを確認します(4番目の列にそのエントリが/etc/fstab含まれていることを確認してください)。aclまた、aclユーティリティがインストールされていることを確認してください(Debianではこのaclパッケージをインストールしてください)。その後、両方のユーザーにディレクトリへの継承可能な書き込み権限を付与します。

setfacl -m user:other_user:rwx /path/to/directory
setfacl -d -m user:other_user:rwx /path/to/directory

ユーザーが3人以上の場合は、各ユーザーに対してこのコマンドを繰り返すか(ACLはディレクトリを作成したユーザーに対して暗黙的です)、ユーザーをグループに入れて(すでに行ったように)、使用した項目を-m group:group_name:rwx追加しますsetfacl

答え2

申し訳ありません。レビューが厚すぎます。 SFTPサーバーはrootによって実行され、rootのumaskを取得できます。/etc/ssh/sshd_configファイルを編集して行を変更すると、この問題を解決できます。

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

到着

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

答え3

Ianの答え(操作する必要があります)(ただし、丸い引用符に注意してください。以下の警告を参照)に加えて、上部に次のものがあります/etc/init.d/ssh

### BEGIN INIT INFO
# Provides:     sshd
# Required-Start:   $remote_fs $syslog
# Required-Stop:    $remote_fs $syslog
# Default-Start:    2 3 4 5
# Default-Stop:     
# Short-Description:    OpenBSD Secure Shell server
### END INIT INFO

...

umask 022

ここで値を変更できます。

警告する:

多くのS / FTPクライアントは、新しくアップロードされたファイルのアクセス許可をローカルシステムのアクセス許可と一致させるように設定しようとするため、これが発生していることを確認してください。その場合は、通常、アップロードに使用されるクライアント設定でこのオプションを無効にできます。

編集する:

別の提案として、このような設定を作成するときは、常にグループ所有権の固定部分を使用して(たとえば、すべてのディレクトリ権限を2775に設定)、新しく作成されたファイルとディレクトリが正しいグループ所有権を継承するようにします。

関連情報