フォルダ内のコンテンツの将来の権限を設定する方法

フォルダ内のコンテンツの将来の権限を設定する方法

私はAliceというユーザーであり、パブリックにアクセスできるフォルダがあるとしましょう。/samba/public

パブリックSambaフォルダ()の権限は/samba/public/none:nogroupと0777です。

Aliceが自分のホームフォルダから共有パブリックドライブに何かをコピーしようとしたとき

(たとえばcp ~/Downloads/* /samba/public)、

Aliceは、パブリックSamba共有にアクセスできるすべてのゲストが新しくコピーされたファイルを編集/削除できるようにします。

コピーしたいファイルは誰も所有していません:nogroupと0777に設定されています。

代わりに、新しくコピーされたファイルはalice:aliceが所有し、パブリックドライブのゲストユーザーはこれらのファイルを編集または削除できません。

将来、Aliceのホームフォルダから共有/パブリックSambaフォルダへのコンテンツのコピー/移動操作が誰も所有しないようにするにはどうすればよいですか。 nogroupゲストユーザーがファイル自体の削除/編集をブロックしないようにしますか?

答え1

これで問題が解決したようです(木に触れてください)。

いろいろな種類の修正を試みたので、すべてがうまくいく原因を正確に見つけることは困難ですが、次のステップが役に立つと思います。


  1. ドッカーアプリケーションこれを実行すると、内容が私のホームディレクトリにダウンロードされました(当時は重要ではなかったようです)。

  1. @sourcejediの提案に従った後、私のumaskもの0002
  2. /samba/public/@Isaacのアドバイスに従って、ホームディレクトリからゲストユーザーが自由に名前を変更/編集/削除できるSambaでファイルとディレクトリを作成/コピー/移動できました。

  1. ただし、このDockerアプリケーションを使用してダウンロードしたホームディレクトリのアイテムをコピー/移動しようとすると、Sambaゲストユーザーは自由に名前を変更または編集/削除できません(Dockerアプリケーションはchmod値が755のディレクトリを作成するため)。

  2. その後、umaskDockerアプリケーションを0002に変更しました。 Dockerアプリケーションによって生成された後続のダウンロードとディレクトリはchmoded val 775です。/samba/public/Sambaゲストユーザーは、これらのディレクトリがにコピーされたときに名前を変更/編集/削除できます。


脚注:

  • umaskを目的の値に変更することは、umask XXXXXXXXが目的の値である場所で実行するのと同じくらい簡単です。umask端末に簡単に入力すると、umaskの値を確認できます。

  • 私が使用しているDockerアプリケーションのumaskの変更は、umaskENVという新しいパラメータを追加して設定することによって行われます0002。 Dockerコンテナの起動時にCLIを介してPortianerを使用して実行中のコンテナを管理する場合は、Web UIを介してこのパラメータを渡すことができます。

  • 主な警告:作業プロセスの一環として、最初に提供されたアドバイスに従おうとしました。パブリックフォルダスレッドの権限の設定そして、@Isaacの提案に従う前に、@sourcejediが推奨するUser Private Group(UPG)パターンを試してください。

    後で同様の問題が発生した場合にも関連する可能性はありますか?

答え2

U&Lへようこそ!ファイルがnone:nogroup 0777である必要はありません。申し訳ありません。目的のパターンがGnome / systemd(およびudisk)によって壊れています。少なくともアリスがこれを使うならSambaサーバーを実行しているのと同じコンピュータで

これは質問で議論されています(非常に明確ではありません)一般ユーザーに適した共有、読み書き、写真ディレクトリツリーそしてext4ディスク上の複数のユーザー間でフォルダ/ファイルを共有する

アリスラーメンいいえSambaサーバーを実行しているのと同じマシンでGnome(Gnomeファイルマネージャを含む)またはudisk(ユーザーはリムーバブルファイルシステムをマウントできます)を使用すると、元のバージョンを実際に使用できます。ユーザーのプライベートグループ柄。

IIRC、RedhatシステムはすでにUPGの正しいumaskセットを持っています。 Debian ベースのシステムでは、pam_umask を有効にして設定する必要があります。バラよりhttps://stackoverflow.com/questions/10220531/how-to-set-system-wide-umask

編集:を変更する必要がある場合は、umaskすべてのアクセスモードも変更する必要があります。既存の後で共有したいファイルです。たとえば、chmod -R g+w $HOME/*またはchmod -R g+w /home/*/*。するいいえ使用chmod -R g+w $HOME。モードが変更され、$HOME/.sshログインが無効になることがありますssh


そうでなければ、誰かがこの情報に基づいて解決策を提案するかもしれません。

スレッドに基づいて代替案を提案できます。よく使うフォルダの権限を設定する

ゲストユーザーがこれらのファイルを削除して編集できるようにしたいと思います。これは、ファイルが非常に大きくない可能性があることを意味します。

あなたが提供した情報によれば、AliceはSamba共有を使用してファイルをアップロードするゲストの役割を直接実行できるように見えます。 ...サーバーでSambaディレクトリがどこにあるかをAliceに知らせる必要があります。彼女がそれを見つけるのに十分スマートであれば、コンピュータがバグであり、彼女の完全に論理的なアイデアが理由があるために動作しないという言葉を聞くことができるほどスマートです。

(必要に応じて、LXCなどのコンテナ内でSambaサーバーを実行して「隠す」ことができます。)

AliceがSambaサーバー上のゲストアカウントでない場合は、次のものを使用する必要がありますchmod g+ssmb.conf

create mask = 0775
directory mask = 0775

関連情報