すべての権限を持っているディレクトリの所有者(ユーザーまたはグループ)を変更できませんか?


4

TL; DR:操作が許可されないのはなぜですか?そして、どうすればこれを解決できますか?


私は解決できない問題に直面しています。ユーザーa:group a)としてディレクトリを作成しています。これをユーザーb:group aに変更します。この操作が許可されない理由がわかりません。これが何が起こっているかです:

user a@foo:~$ mkdir /home/user b/foo/test             
uber a@foo:~$ chmod 0777 /home/user b/foo/test
user a@foo:~$ ls -alF /home/user b/foo/ | grep test
drwxrwxrwx 2 user a            group a 4096 Jan  6 19:53 test/
user a@foo:~$ chown user b:group a /home/user b/foo/test
chown: changing ownership of `/home/user b/foo/test': Operation not permitted

(簡単にするために、ユーザー名とグループ名を変更しました)

関連する可能性のあるその他の事項:

  • ユーザーAはグループAとグループBにいます。
  • ユーザーBはグループBにいます。
  • / home / user bのディレクトリfooには0750があり、ユーザーB:Group Aに所有されています。

この操作が許可されない理由と、これを解決する方法(sudoを使用しないソリューションはプラスです)として理解したいと思いますか?


chownコマンドの前にsudoを試してください
-kobaltz

「foo」フォルダーの権限は何ですか?
TheCompWiz

回答:


11

rootである(またはCAP_CHOWN Posix機能を持っている)場合にのみ、ファイルの所有権を変更できます。これは、ファイルを配布するとセキュリティ上の問題が発生するためです(たとえば、ディスククォータが有効になっている場合、ユーザーbのクォータを埋めることができます)。

許可されている場合は、sudo chownを使用すると動作します。

ただし、所有グループを自分がメンバーであるグループに変更できるため、「グループb」「/ home / user b / foo / test」をchgrpできるようになります。これは、ユーザーとファイルを共有する代わりに使用できます。達成しようとしているものに応じて、ルートになることなくb。

より柔軟なアクセス許可を得るには、ACLを調べてください。


ご説明ありがとうございます。今のところ、私はsudo非常に小さなコマンドのサブセットを選びました。chgrpを見ていきます。
ビヨン

いいえ、次は私には機能しません:You can however change the owning group to a group you're a member of, so you should be able to chgrp "group b" "/home/user b/foo/test"-同じ「操作は許可されていません」問題。
アイラート

0

パートA:
所有者とルート(TBOMK)のみであるため、操作は許可されません。

パートB:答えは明らかです。ユーザーbに実行させるか、弾丸を噛んでsudoを使用する必要があります。sudoを使用したくない場合は、rootを持っていないため、他の誰かにそれを行わせる必要があると思いますが、それらは2つの解決策のようです。

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