Linuxで他のユーザーにフォルダ権限を付与する方法は?

Linuxで他のユーザーにフォルダ権限を付与する方法は?

user12つのユーザーアカウントを持つLinuxシステムを検討してください。私のホームディレクトリにあるフォルダへの読み取り/書き込みアクセス権を持ちたいuser2です。user2user1

これまで、2人のユーザーのグループが作成され、2人のユーザーが追加されました。

groupadd twousers
usermod -a -G twousers user1
usermod -a -G twousers user2

次に、グループとパスを変更し、権限を変更します。

chgrp twousers /home/user1/folder
chmod g+rwx /home/user1/folder

残念ながら、user2フォルダにはまだアクセスできません/home/user1/folder。これは簡単に見えますが、なんだか迷子になりました。私は何を見逃していますか?

答え1

現在経験している問題は予想される問題です。実際、他のユーザーのフォルダ内のフォルダを共有しようとしていますhome。セキュリティ上の理由から、フォルダは所有者だけがアクセスできる必要があります(そしてroot、しかしこれは別の話です)。

問題を解決するには、潜在的な親フォルダが両方のユーザーに対して同じ権限を持つ別のフォルダを作成する必要があります(例:)/data/shared_folder

以下は簡単なステップバイステップの例です。

  • 親フォルダを作成します(必須ではありませんが、例として使用します)。

     # cd /
     # mkdir data
    
  • 共有サブフォルダを作成する:

     # cd data
     # mkdir shared_folder
    
  • オプション:この手順では、将来の共有フォルダのコンテンツをにコピーできますshared_folder

     # cp -p  /path/to/folder/* /data/shared_folder/
    
  • グループsharedと2人のユーザーを作成して追加しますbobalice

     # groupadd shared
     # usermod -aG shared bob
     # usermod -aG shared alice
    
  • グループフォルダの所有権を再帰的に変更します。

     # chgrp -R shared /data
    
  • グループに読み取り、書き込み、および実行(すでに実行可能ファイルのみ)権限を追加しますshared

     # chmod -R g+rwX /data
    
  • Bob今フォルダAlice内で欲しいものは何でもできますが。shareddata

ユースケースによっては1つのレベルしかありませんが、この例では、親フォルダ権限がファイルシステムのより深いフォルダにどのように影響し、より大きなスケーラビリティと粒度を可能にするかを示します。

答え2

パラドックスへの答え実際に最高の答えです。しかし、ルートフォルダを作成する理由は完全に説明されていないようです。

共有フォルダがある場合は、/home/user1/sharedfolderそのフォルダにもアクセスする必要があります/home/user1(説明)。ただし、これは/home/user1user1が所有するユーザー/グループであることに注意してください。 user2はuser1グループに属している必要があります(または/home/user1751以上の権限が必要であり、「他のユーザー」に実行権限を付与することはお勧めできません)。共有フォルダにアクセスするには、実行可能なアクセス権が必要です/home/user1/home/user1必要です。時々コマンドもプログラムであるという事実を忘れてしまうことがあります。"cd"user2とcd入力できない場合は/home/user1どうすればアクセスできますか/home/user1/sharedFolder

したがって、user2がuser1が自分のホームフォルダからアクセスできるすべてのアイテムにアクセスできるようにしない限り、自宅ではなく「公開会議」の場所を使用することをお勧めします。私の言葉は、こう考えてみてください。まず、アクセス権を付与しないと、自宅で何かを共有できないということです。

セカンダリハードドライブ/マウントされたフォルダがあるとします。複数のユーザーがアクセスできるようにするには、「/mnt/mountedFolder」に入れてから、上記の最上位の回答の手順を使用して、共有グループにMountedFolderを所有させることをお勧めします。

コンテナを使用するとき、または/mnt/mountedFolder同じコンテナ内のルートフォルダにマッピングできます。既定では、コンテナーユーザーはその共有グループに属している必要があります。コンテナは異なるユーザーIDを持つ新しいユーザーを作成できます...コンテナ内のそのユーザーが自分の権限でフォルダ/ファイルを作成する場合、そのフォルダ/ファイルへのアクセス権を持つユーザーはそのフォルダ/ファイルにアクセスできません。そのユーザーはコンテナ化されたユーザーグループに属し、コンテナ化されたユーザーはグループ権限を使用してファイル/フォルダを作成します。/data/config/mnt/mountedFolderg+rwx

これが最善の回答の後でも理解できない人に良い説明を追加したいと思います。権限を扱うのは単純なようですが、実際に考慮する必要があるものが多いので、答えることができます。権限について不満があるときは、愚かなことをしないでください。すべてに必要なものよりも高い権限を与えようとします。何か落ちたかもしれません。

答え3

user1グループにuser2を追加し、その特定のフォルダのグループ部分に読み取りおよび書き込み権限を付与する必要があります。

関連情報