
利用できないディレクトリがありますrmdir
。継続permission denied
エラーが発生します。ただし、(を使用して)ディレクトリを一覧表示すると、次ls -l
の結果が表示されます。
drwxrwxrwx 2 user user 4096 Aug 28 09:34 directory
stat
これが私に与えるものは:
File: `directory/'
Size: 4096 Blocks: 16 IO Block: 32768 directory
Device: 12h/18d Inode: 102368771 Links: 2
Access: (0777/drwxrwxrwx) Uid: ( 1000/ user) Gid: ( 1000/ user)
Access: 2015-08-31 03:00:20.630000002 +0200
Modify: 2015-08-28 09:34:16.772930001 +0200
Change: 2015-08-31 12:25:04.920000000 +0200
では、このディレクトリを削除する方法は?
答え1
ディレクトリを削除しようとすると、権限はfoo/bar/
関連bar
要素ではありません。bar
ディレクトリから名前を削除するのはfoo
正しいことfoo
なので、書き込み権限が必要ですfoo
。
あなたの場合は、現在のディレクトリの権限を確認してくださいls -ld .
あなたは見つけることができます「rmが他のユーザー所有権のファイルを削除できるようになるのはなぜですか?」への答えです。インスピレーションを与える。
答え2
dir
必要な権限を持たないファイルが必要です。所有者をrecursively
すべてに変更してdir
から削除してみてください。
$ sudo chown -R user:user dir/
$ rm -rf dir/
~からman rm
-r, -R, --recursive
remove directories and their contents recursively
-f, --force
ignore nonexistent files, never prompt
答え3
別の可能性は、「不変ビット」がこのディレクトリに設定されていることです。で確認できますls -d <directory>
。設定された権限は出力chattr
に表示されません。stat
stephan@x230 ~ % stat testdir
File: ‘testdir’
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 801h/2049d Inode: 13713629 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 1000/ stephan) Gid: ( 1000/ stephan)
Access: 2015-08-31 14:05:49.957299346 +0200
Modify: 2015-08-31 14:05:25.657267292 +0200
Change: 2015-08-31 14:05:42.685289494 +0200
Birth: -
stephan@x230 ~ % lsattr -d testdir
----i--------e-- testdir`
不変ビットを削除するには、ルートである必要があります。
chattr -i testdir