Linuxをファイルサーバーとして使用して小規模なホームネットワークを設定しようとしたが、解決できないフォルダ権限の問題が発生しました。設定:
- Sambaで構成されたUbuntu 14.04 Linuxファイルサーバー。
- 複数のWindows 7クライアントコンピュータ。
家族全員にLinuxファイルサーバーのユーザー名/パスワードが付与されており、SSH / Puttyなどを使用してサーバーにログインできます。
LinuxファイルサーバーのSambaは、書き込み可能モードでWindowsに複数のディレクトリを共有するように構成されており、すべてのクライアントコンピュータはこのディレクトリを表示してファイルを読み書きできます。たとえば、/media/data/photos が \fs01\photos として共有されているとします。すべてのWindowsユーザーはこのフォトディレクトリに書き込むことができ、うまく機能します。サブディレクトリの作成や画像の配置などの操作を行うことができ、すべてがうまく機能します。
問題は、これらの共有(およびその下のすべてのディレクトリ)が誰にでも無料で提供されることです。すべてのユーザーは編集/名前の変更/移動/コピー/削除を行うことができなければなりません。どのこれはフォルダー内のファイルです。あるユーザーが別のユーザーが作成したファイルを移動/構成/削除/名前を変更しようとすると問題が発生します。したがって、ユーザーAが/media/data/photos/2014NewYearsEveを作成し、ユーザーBが実際に/media/data/photos/2014/NewYearsEveになる必要があると判断したとします。今設定した方法では、権限エラーが発生し続けます。
Linuxでは、基本的にファイルを作成したユーザーがファイルの所有者であることがわかっているので、エラーがどこで発生するのかを理解し、それを手動で修正する方法も知っています(chownとchmod、それですべてのユーザーがファイルを操作できる)は大丈夫です) 。ただし、共有(例:/media/data/photos)は「汎用」なので、ファイルやディレクトリを作成するときに権限が自動的に反映したいと思います。 Windowsの背景では(これは私の最初の実際のLinux設定です)、私はこの問題を解決する方法について非常に混乱しています。
これは私が試したことです(インターネット、stackexchangeなどに関する多くの記事に基づいています)。
/media/data/photosディレクトリのグループを "nogroup"に変更しました(sudo chown none:nogroup /media/data/photos)。 /media/data/photosディレクトリにsetgidフラグを設定しました(sudo chmod g + s /メディア/データ/写真)。
その後、共有に入れたファイルは正しいグループ割り当てを受け取ったように見えます(ls -lは新しいファイルとサブディレクトリのグループがないことを示します)。ただし、ファイルを移動するために必要な実行権限がグループから欠落しているようです(これが必要であると仮定しますか?)(ls -lの権限はファイルの場合は-rwxrw-rw-、ディレクトリの場合はdrwxr-sr-x +です)。
Linuxにファイルとディレクトリグループにxビットを自動的に追加させる方法は?または、より一般的に株式を無料にするにはどうすればよいですか?
答え1
家族という新しいグループを作成します。 Samba共有に関連付けられているすべてのフォルダにFamily RWX権限(777)を付与し、familyをフォルダの所有グループにします。次に、各ファミリーメンバーをグループファミリーに追加します。
groupadd family
chown -Rv root:family /linux/path/to/samba/share
useradd -G family *username for mom*
useradd -G family *username for dad*
- すべての家族が家に帰るまで、手順3と4を繰り返します。
chmod -Rv 0777 /linux/path/to/samba/share
新しいプロジェクトは所有者の権限を継承しますが、所有者がメンバーであるかどうかfamily
は重要ではありません。