이 디렉토리를 삭제하는 방법은 무엇입니까?

이 디렉토리를 삭제하는 방법은 무엇입니까?

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

관련 정보