그룹에 속해 있는 동안에는 640 권한이 있는 파일을 분류할 수 없습니다.

그룹에 속해 있는 동안에는 640 권한이 있는 파일을 분류할 수 없습니다.

왜 제대로 진행되지 않는지 찾으려고 몇 시간을 보냈지만 이제 포기하고 여기에 있습니다.

내 설정/문제: SSH를 통해 연결하는 원격 VPS가 있습니다(pub/priv 키, 비밀번호 없음).
사용자는 데비안입니다.
이 VPS에서는 도커 컨테이너를 실행합니다 postgres:14.3-alpine.

이 도커에는 /home/debian에 두 개의 볼륨이 마운트되어 있습니다:
postgres-certs
postgres-data

Docker에 있는 사용자의 사용자/그룹 ID는 70입니다. 추가 정보여기:
아시다시피 인증서에 대한 보안 규칙이 있으므로 위 링크에 설명된 대로 postgres-certs폴더에 대한 권한을 640으로 설정했습니다.

drw-r-----  2    0   70 4096 jun  7 22:45 postgres-certs
drwxr----- 19   70 1000 4096 jun 11 20:40 postgres-data

보시다시피 두 폴더 모두 그룹 읽기 권한이 있습니다.
내 그룹을 찾아주세요:

debian@db-dev:~$ id
uid=1000(debian) gid=1000(debian) groups=1000(debian),70(docker-pg-alpine),998(docker)

보시다시피 저는 두 폴더에 정의된 것과 동일한 그룹 70과 1000에 속해 있습니다.
이 폴더 중 하나에 파일을 분류하려고 하면 다음과 같은 결과가 나타납니다(물론 sudo를 사용하면 작동합니다).

debian@db-dev:~$ cat postgres-certs/server.crt 
cat: postgres-certs/server.crt: Permission denied

파일이 그의 디렉토리와 동일한 권한을 가지고 있음을 증명하기 위해:

debian@db-dev:~$ sudo ls -ln postgres-certs/server.crt 
-rw-r----- 1 0 70 2903 jun  7 22:44 postgres-certs/server.crt

예, 로그아웃했습니다(ssh 연결 끊기, 심지어 재부팅). 문제가 발생하지 않는지 확인하기 위해 컨테이너도 중지했습니다.
폴더에 그룹 읽기 권한이 있고 내가 그룹에 속해 있는데 왜 이 폴더에 있는 파일을 분류할 수 없는지 이해가 안 됩니다...
여러분이 무엇이 잘못되었는지 찾을 수 있다면 정말 좋을 것입니다.

답변1

x파일에 액세스하려면 디렉터리에 대한 설정이 필요합니다 .

  • 파일의 경우 (x)를 사용하면 파일이 프로그램인 경우 실행할 수 있습니다.

  • 디렉터리의 경우 (x)를 사용하면 디렉터리를 입력하고 파일에 액세스할 수 있습니다.


에 따르면chmod페이지, (x)는 디렉토리에 대한 검색 권한을 허용합니다.

rwxXst 문자는 영향을 받는 사용자에 대한 파일 모드 비트를 선택합니다. 읽기(r), 쓰기(w), 실행(또는 디렉터리 검색)(x), 파일이 디렉터리이거나 이미 일부에 대한 실행 권한이 있는 경우에만 실행/검색합니다. 사용자(X), 실행 시 사용자 또는 그룹 ID 설정, 제한된 삭제 플래그 또는 고정 비트(t).

이에 따르면유닉스 파일 시스템 문서, (x)를 사용하면 디렉터리에 들어가 파일에 액세스할 수 있습니다.

디렉토리의 경우 실행 권한을 사용하면 디렉토리에 들어갈 수 있고(예: CD로 들어갈 수 있음) 해당 파일에 액세스할 수 있습니다.


나중에 참고할 수 있도록, 다음을 사용할 수 있습니다.

sudo chmod g+x ~/postgres-certs

디렉토리의 그룹에 대한 (x) 권한을 추가합니다.

그러나 권한을 650으로 변경하는 대신 다음을 사용해야 합니다.

sudo cat postgres-certs/server.crt

대신 디렉터리에 설정된 기본 권한을 유지할 수 있습니다.

관련 정보