次の動作(Linux、Debian 8.3、ext2ファイルシステム)については少し混乱しています。
test@linux:~$ ls -ld directory/ file
drwxr-xr-x 2 root root 4096 Mar 10 18:51 directory/
-rw-r--r-- 1 root root 8 Mar 10 18:51 file
test@linux:~$ ls -ld target_directory/
drwxr-xr-x 2 test test 4096 Mar 10 18:47 target_directory/
test@linux:~$ mv file target_directory/
test@linux:~$ mv directory/ target_directory/
mv: cannot move ‘directory/’ to ‘target_directory/directory’: Permission denied
directory/
空の場合でも同様です。面白い事実:rmdir directory/
この場合でも動作します。
なぜ?mv
ファイルとディレクトリが書き込み権限を持たないほど異なる動作をする理由を知っておくとよいでしょう。
実は「人に釣り方を教えて…」という精神で、この内容と権限システムを説明する本を躊躇しないでおすすめしてください。正しく(ちょっと豪言言談)私はしばしば次のようなものを見る(有名なLinuxの本から):
$ ls -ld ch3 test -rw-rw-r-- 1 joe sales 4983 Jan 18 22:13 ch3 drwxr-xr-x 2 joe sales 1024 Jan 24 13:47 test
最初の行は、
ch3
ファイルに所有者とグループに対する読み取りおよび書き込み権限があることを示しています。他のすべてのユーザーには読み取り権限があります。つまり、ファイルを見ることはできますが、内容を変更または削除することはできません。
PS /警告:はい、上記の段落の説明は実際に間違っています。私にこの事実を言うのではなく、投稿を「修正」しないでください。私はこのトピックについて知られているものがどれほど少ないかを説明するためにここに引用します。
答え1
ディレクトリの削除またはファイルはディレクトリ権限にのみ関連します。含む削除するファイル/ディレクトリです。ファイル/ディレクトリ自体に対する権限は関係ありません。したがって、次に属していてもdirectory
使用を削除できる理由は次のとおりです。出力には表示されませんが、明らかにディレクトリに対する読み取り、書き込み、および実行権限があります。rmdir
root
含む directory
。
私はこれについて他の場所でもっと書いた。ディレクトリに対する個々の権限で正確に何をすることができますか?。
なぜチェックインできないのかはdirectory
よくtarget_directory
わかりません。私のボックスでこれを再現することはできません。これには、拡張属性の設定からファイルシステムを含むマウントポイントではなく、別のファイルシステムである可能性があるdirectory
マウントポイントまで、さまざまな理由があります。 。 target_directory
directory
ただし、権限だけでは原因にはなりません。
(PS:次に、より良い例の名前を選択してください。「ディレクトリ」と「ファイル」という名前を使用すると、何が起こっているのかを説明するのは本当に迷惑です。)
答え2
おそらくdirectory
に移動しながら内部項目がtarget directory
変更され、 への書き込みが許可されないので許可されないのでしょうか?..
directory
directory
私は私のディレクトリで同じ状況に遭遇しましたが(OPと同様に混乱しました)、所有者の書き込み権限は設定されていません。chmod u+w
ディレクトリに設定するだけで移動を許可できます(同じパーティションではコピーと削除はできません)。この記事を読んで上記の状況に気づきました。ファイルにそのような問題がない理由を詳しく説明します。