사용할 수 없는 디렉토리가 있습니다 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