web-dev-qa-db-ja.com

Unix / Linuxでファイルを別のディレクトリに移動するために必要な権限

名前を変更せずに、ファイルAをディレクトリBからディレクトリCに移動するために必要な権限(コマンドは「mv B/A C/A」になると思います)を明確にしたいと思います。

以下が必要だと思いますか?

  1. 移動を行うユーザー/グループには、ディレクトリBへの書き込み権限が必要です(またはBには、すべてのユーザー/グループが書き込みを許可するための権限フラグが設定されている必要があります)。
  2. 移動を行うユーザー/グループには、ディレクトリCに対する書き込み権限が必要です(またはCには、すべてのユーザー/グループが書き込みを許可するように設定された権限フラグが必要です)。
  3. 移動を行うユーザー/グループには、ファイルAに対する書き込み権限が必要です(またはAには、すべてのユーザー/グループが書き込みを許可するための権限フラグセットが必要です)。

ありがとうございました。

15
Andy

実際には、ファイルの移動は、単一のファイルシステム上のファイルの名前を変更するか、コピーを作成して元のファイルを削除します(通常、移動が1つのファイルシステムから別のファイルシステムへの移行である場合にのみ行われます)。

どちらの場合でも、実行およびもちろん、ターゲットディレクトリとソースへの書き込み権限が必要です。ディレクトリ。ただし、単一のファイルシステムで単にrename(および1つのディレクトリから別のディレクトリに移動するだけでもかまいません)の場合notファイル自体に対するany権限が必要です。すべての権限をクリアでき、それでも移動(名前変更)できます(ディレクトリにwriteおよびexecute権限がある限り)。

実際のコピーの場合(ファイルを別のファイルシステムに移動するときに必要になるため)、ファイル自体に対するread権限が必要です。 書き込みなしファイルを削除してもファイルには書き込まれません(ただし、元のディレクトリには書き込まれます)ため、元の権限が必要です。

27
Alfe