
という名前のフォルダを作成し、このフォルダがデフォルトのフォルダ内にあるため、/home/projects
それを使用する必要があります。sudo mkdir /home/projects
最初にフォルダには次の権限があります。
drwxr-xr-x 4 root root 4096 Dec 29 16:53 projects
その後、2人のユーザーを追加しました。ユーザー1そしてユーザー2グループへ開発者。
その後、フォルダの所有者を次のように変更しました。ユーザー1フォルダの所有者でない場合は、変更が機能しない可能性があることを読んだためです。私はこれを使ってこれをしました。
sudo chown -R user1 /home/projects
その後、フォルダの所有権を持つグループを変更しました(ユーザー1)開発者に次のように伝えます。
sudo chgrp -R developers /home/projects
出力はls -la
次のとおりです
drwxr-xr-x 4 user1 developers 4096 Dec 29 16:45 projects
どちらのユーザーもこのグループの一部です。以下を確認しました。
groups {username}
これらすべてにもかかわらず、ユーザー2それでもフォルダやファイルを作成できません/home/projects
。ユーザーはフォルダに入ってすべてのコンテンツを表示できますが、他のコンテンツは表示できません。
最も奇妙なことはユーザー2彼はUbuntuが突然権限拒否エラーを表示し始める前に、約1週間にわたってファイルとフォルダを作成/アップロードおよび削除することができました/home/projects
。
設定したらユーザー2ユーザーはフォルダの直接所有者としてすべての操作を実行できますが、もちろん他のユーザーは実行できません。
ここで何が起こっているのでしょうか?
編集:Zetaユーザーはグループにw
アクセスを許可することを提案し、フォルダは次のようになりました。
drwxrwxr-x 4 user1 developers 4096 Dec 29 16:45 projects
権限が拒否されるのではなく、次のエラーが発生します。
mkdir /home/projects/New directory: received failure with description 'Failure'
オペレーティングシステムはGnu / Linux(Ubuntu 18.10)です。
答え1
共有ディレクトリが最善のアプローチであると確信している限り(Githubのようなバージョン管理の多くのユースケースでははるかに優れています)、次のことをしたいと思います。
- ユーザー1として、
chmod g+ws /home/projects
これにより、ディレクトリに書き込み権限が与えられ、setgidビットが設定され、ディレクトリ内に作成されたすべてのファイルとディレクトリが自動的に正しいグループに移動されます。
- 2 人のユーザーとして
umask g+rwx
シェル起動ファイルに追加します。このようにして、1人のユーザーが作成したファイルは、デフォルトでグループのすべてのメンバーがアクセスして書き込むことができます。
答え2
書くグループがないので、そのグループは書くことができません。
ファイルアクセス制御リスト(setfact
/ getfacl
)も参照してください。すべての新しいファイル/ディレクトリが開発者グループに追加されるようにデフォルトグループを設定します。
aclutilsのインストール
DebianやUbuntuなどの派生製品を使用している場合apt-get install acl
。