폴더의 소유자이지만 폴더에 액세스할 수 없습니다

폴더의 소유자이지만 폴더에 액세스할 수 없습니다

내부에는 시스템에 대한 메모가 담긴 폴더가 있습니다.

나는 user1로 로그인했습니다

cd masternotes다음을 생산합니다:

bash: cd: mastersnotes: permission denied

whoami다음을 생산합니다:user1

ls -l다음을 생산합니다:

drw-rw-rw-. 2 user1 user1        4096 Mar 26 20:47 masternotes

ls -l디렉토리 내부에서는 다음을 생성합니다.

-rw-rw-rw-. 7 user1 user1   345 Oct  7  2006 crontab
-rw-rw-rw-. 7 user1 user1   348 Oct  7  2006 crontab~
-rw-rw-rw-. 7 user1 user1  3702 Oct  7  2006 grep_usage.txt
-rw-rw-rw-. 7 user1 user1 91868 Oct  7  2006 lvm-layout-10-14-03.tif
-rw-rw-rw-. 7 user1 user1    30 Oct  7  2006 mysql
-rw-rw-rw-. 7 user1 user1 35764 Oct  7  2006 notes

chmod -R 666 masternotes폴더를 실행해봤습니다 .

chown나는 루트로 실행 하고 chgrp루트로 갔다가 다시 user1로 돌아갔습니다.

루트는 내려와 폴더에 들어가서 파일을 열 수 있습니다.

user1은 할 수 없습니다.

여기서 무슨 일이 일어나고 있는지에 대한 단서가 있습니까?

답변1

이것은권한문제가 아니라 소유권 문제입니다.

실행 권한( 에 약어 로 x표시됨 )은 귀하가 표시한 권한에 눈에 띄게 없습니다.-rw-

실행 권한은 일반 파일과 디렉터리에 대해 매우 다르게 작동합니다. 디렉토리의 경우 실행 권한은 다음 기능을 제공합니다.디렉토리를 입력하세요(즉, cd파일 관리자에서 열거나 파일 관리자에서 열 수 있음) 또한 디렉터리에 있는 파일에 액세스하려고 시도하는 기능도 제공합니다(성공할지 여부는 액세스되는 파일의 권한을 포함하여 다른 권한에 따라 달라지기도 함).

root일반적인 방식으로 실제로 권한에 묶여 있지 않기 때문에 디렉터리에 들어갈 수 있습니다. 여러 가지 방법으로 실행되는 명령과 응용 프로그램은 root사용자의 희망 사항을 따르기 위해 권한을 존중하려고 합니다. 그러나 root모든 파일이나 디렉터리에서 모든 작업(OS가 수행할 수 있는 작업)을 수행할 수 있는 권한이 있습니다. root셸 에서 cd실행 권한이 없는 디렉터리에 대한 ing은 성공합니다.

해결책문제는 다음을 실행하는 것입니다.

chmod u+x masternotes

그러면 ( ) 에게 디렉터리에 대한 ( ) 실행 권한( ) +의 소유자가 부여됩니다.masternotesux

그런 다음 일반 사용자로서 디렉터리에 들어가서 거기에 있는 파일에 액세스하려고 시도할 수 있습니다.

그룹 소유자의 구성원도 이 작업을 수행할 수 있도록 하려면 대신 다음을 실행할 수 있습니다.

chmod ug+x masternotes

그러나 아마도 귀하는 폴더를 소유한 사용자별 그룹의 유일한 구성원일 것입니다.

chmod여기 명령 은~ 아니다다음 과 같이 실행해야 합니다 root. 의도적으로~ 아니다두 명령 중 하나에 포함됩니다 sudo. 너소유하다폴더에 대한 권한을 직접 변경할 수 있으므로 직접 root변경할 필요는 없습니다.

만약 당신이 관심이 있다면실행 권한을 숫자로 설정, 추가하는 각 숫자에 대해 다음을 기억하세요(0부터 시작):

  • 읽기용 4개.
  • 쓰기용 2개.
  • 실행의 경우 1입니다.

예를 들어, 모든 사람이 읽고 실행할 수 있도록 하려는 경우some-file하지만 소유자만 쓸 수 있으려면 다음을 사용합니다.

chmod 755 some-file

나는 추천한다커뮤니티 문서의 FilePermissions, 실행 가능 비트와 폴더에 대한 특별한 의미를 포함하여 Ubuntu의 파일 권한에 대한 자세한 내용을 읽어보세요.

관련 정보