web-dev-qa-db-ja.com

所有しているディレクトリの名前を変更できません

サブディレクトリがたくさんあるディレクトリがあります。私はそれらすべてを所有しており、権限はすべて777です。

Pascal@azazel /box $ ls -al
total 147872
drwxr-xr-x 293 root   root      12288 aoû 22 19:44 .
drwxr-xr-x  25 root   root       4096 jun 28 18:49 ..
drwxrwxrwx   7 Pascal pascal     4096 aoû  4  2010 131082
[...]

ディレクトリの名前を変更したい:

Pascal@azazel /box $ mv 131073 NewName
mv: impossible de déplacer « 131073 » vers « NewName »: Permission non accordée

メッセージはフランス語で、基本的にディレクトリの名前を変更(移動)する権限がないと書かれています。

何が起こっている?

6
Johnny5

ファイルの名前を変更すると(ディレクトリを含むそのタイプに関係なく)、ファイルが配置されているディレクトリでファイルの名前が変更されます。実際、ファイルシステム内での名前の変更と移動は同じ操作です。ファイルは古い名前から切り離され、新しい名前に添付されます。これには、ソースディレクトリと宛先ディレクトリの両方を変更する必要があります(1つのディレクトリ内で名前を変更する場合、ソースディレクトリとターゲットディレクトリは同じです)。結果として、含まれているディレクトリ、例では/boxに対する書き込み権限が必要になります。

ちなみに、これらはファイルをコピーしてから元のファイルを削除するために必要なアクセス許可とまったく同じです。