GNU/Linux >> Linux の 問題 >  >> Linux

Ubuntu のフォルダーで複数のユーザーに書き込み権限を付与する

これを行うには 2 つの方法があります。ディレクトリを「誰でも」書き込み可能に設定するか、2 人のユーザー用に新しいグループを作成し、ディレクトリをそのグループに書き込み可能にします。

誰でも書き込み可能にすることは明らかに悪いことなので、2 番目のオプションが望ましいです。

Linux のユーザーは、複数のグループに属することができます。この場合、まったく新しいグループを作成したいので、名前を tomandruser にしましょう。 :

sudo groupadd tomandruser

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

sudo usermod -a -G tomandruser tomcat6
sudo usermod -a -G tomandruser ruser

あとは、ディレクトリにアクセス許可を設定するだけです:

sudo chgrp -R tomandruser /path/to/the/directory
sudo chmod -R 770 /path/to/the/directory

これで、tomandruser グループのメンバーのみが、ディレクトリ内のすべてのものを読み取り、書き込み、または実行できるようになりました。 chmod および chgrp コマンドの -R 引数に注意してください。これは、ターゲット ディレクトリのすべてのサブディレクトリに再帰し、見つかったすべてのファイルとディレクトリを変更するように指示します。

770 を 774 のように変更することもできます。 他の人がファイルを読めるようにしたい場合は、 775 他のユーザーにファイルの読み取りと実行を許可する場合など。グループ割り当ての変更は、ユーザーがログアウトして再度ログインするまで有効になりません。

ユーザーの 1 人がディレクトリ内で作成した新しいファイルをグループ内の他のユーザーが自動的に書き込めるようにしたい (おそらくそうしている) 場合は、こちらを参照してください。


次のスクリプトは、r (read) / w (write) / x (execute) を与える例を示しています。 指定されたフォルダー パスへのアクセス許可 /path/to/the/directory USER1 の場合 そして USER2 .書き込みアクセスのみを許可する場合は、rwx を置き換えてください w で .

#!/bin/bash

# Block others and people in the same group to do `r/w/x` on the give folder:    
sudo chmod 700 /path/to/the/directory 

# Give read/write/execute access to USER1 on give folder:
sudo setfacl -R -m user:USER1:rwx  /path/to/the/directory 

# Give read/write/execute access to USER2 on give folder:
sudo setfacl -R -m user:USER2:rwx  /path/to/the/directory

個人的な回答:

  • 共有フォルダを中央の場所に置くのが好きです。他人のホームフォルダではなく、/srv/common または(容赦なく短いパスの場合...) /repo
  • 新しいグループを定義します (通常は、参加したいすべてのローカル ユーザー用です。ただし、wwwuser のような一部のテクニカル ユーザーは除きます)。 、正当な理由がない限り)
  • root メンバーとして、その共有フォルダの中立的な所有者を持つのは良いことです
  • setGid は非常に重要です。新しいファイルが共通のグループ メンバーになるため、frank:commonfrank:frank ではありません
    sudo groupadd -f common
    usermod -aG common root
    usermod -aG common frank
    usermod -aG common mike

    # sort of hack for instant group refresh w/o logout
    # superuser.com/a/345051
    su - frank

    # sanity test1:
    cat etc/group | grep common
        common:x:1008:root,frank,mike
    # sanity test2:
    groups
        frank adm cdrom ... common
    sudo chown root:common /repo

    # (if you have shareable stuff setting somewhere else,
    #  copy it to here now)

    # no right to the world, the right rights to user and group
    chmod -R ug+rwXs,o-rwx $dest
    # why uppercase X ? → unix.stackexchange.com/a/416885

    # why s ? → superuser.com/a/277785
    # as there is no such thing as an uppercase S (directories only)
    # settings the s attribute on preexisting content would have to happen
    # like so:
    # find /repo -type d -exec chmod g+s {} \\\;

Linux
  1. コンピューター上の複数のユーザーとフォルダーを本当に共有しますか?

  2. DevServer上のApacheWebrootフォルダーのアクセス許可?

  3. Ubuntuサーバー、複数の同時リモートユーザー?

  1. .Trash および .Trash-1000 とは何ですか?

  2. ユーザーを別のユーザー グループに追加するにはどうすればよいですか?

  3. Ubuntuでデフォルトで「その他」がファイルを読み取れるのはなぜですか?

  1. Linux のファイル権限 – 読み取り/書き込み/実行

  2. Linux グループ内のすべてのユーザーを一覧表示する方法は?

  3. Linux、グループ権限があるのに書き込めないのはなぜですか?