ディレクトリを別のユーザーと共有するにはどうすればよいですか?


8

システム上の誰もが共有フォルダにアクセスできるようにしたくないのですが、制限されたユーザーだけがアクセスできるようにしたいのです。

どうすればいいですか?

回答:


9

Morbius1によるUbuntuフォーラムのこの素晴らしい投稿から引用。

この種のことを行う古典的なLinuxの方法は、次のようになります。

  1. 共有フォルダを作成します。

    sudo mkdir /home/Shared
    
  2. 新しいユーザーのグループを作成します。

    sudo addgroup newgroup
    
  3. 共有フォルダの所有権を新しいグループに変更します。

    sudo chown :newgroup /home/Shared
    
  4. 目的のユーザーをそのグループに追加します。

    sudo adduser user1 newgroup
    

すべてのユーザーに対して繰り返します。

これで、これらのユーザーが実行できるようにすることについて、いくつかの決定を下すことができました。

  • [a]すべてのグループユーザーは、フォルダーに追加したりフォルダーから削除したりできます。また、他のファイルへの読み取りおよび書き込みはできません。

    sudo chmod 0770 /home/Shared
    
  • [b]上記と同じですが、ファイルの所有者のみがファイルを削除できます。

    sudo chmod 1770 /home/Shared
    
  • [c]すべてのグループユーザーは、フォルダーに追加したりフォルダーから削除したり、お互いのファイルを読み書きしたりできます。

    sudo chmod 2770 /home/Shared
    
  • [d] [c ]と同じですが、ファイルの所有者のみが削除できます。

    sudo chmod 3770 /home/Shared
    

1chmodコマンドの最初の位置では、スティッキービット所有者以外の誰にもファイルの削除を防止します。

2chmodコマンドの最初の位置のA は、すべての新規ファイルまたはコピーされたファイルにそのフォルダーのグループを強制するsetgidビットです。

3chmodコマンドの最初の位置のA は、スティッキー1+2)ビットとsetgid()ビットの組み合わせです。

setgidビットに関する限り、これらすべてに1つの注意点があります。で作成されたすべての新しいファイルとそのフォルダにコピーされたすべてのファイルは、実際にはフォルダのグループを継承します。ただし、ファイルはそのフォルダーに移動されません。移動したファイルは、どこから移動したかに関わらず、所有権を保持します。この問題を回避する1つの方法は、bindfsを使用することです。

最後に、グループ外の他のユーザーがファイルを表示できるようにしたいが変更しない場合は、chmodコマンドの最後の0を5に変更します。例:

sudo chmod 0775 /home/Shared
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.