데비안에서 손상된 권한을 수정하는 방법

데비안에서 손상된 권한을 수정하는 방법

내 Debian 11 시스템에는 분명히 권한이 손상된 폴더가 있습니다. 루트로서 폴더가 사용자 ansible(소유자)에게 속해 있고 올바른 권한 세트(0644)를 가지고 있으므로 사용자가 파일을 쉽게 볼 수 있어야 함을 알 수 있습니다.

ansible@BACKUP:~$ sudo -s
root@BACKUP:/home/ansible# cd /opt/docker/config/opensearch/
root@BACKUP:/opt/docker/config/opensearch# ls -al
total 32
drw-r--r-- 3 ansible root  4096 Jun  8 15:38 .
drwxr-xr-x 7 ansible root  4096 Jun  8 13:28 ..
drw-r--r-- 2 ansible root  4096 Jun  8 14:14 certs
-rw-r--r-- 1 ansible root 14150 Jun  8 15:38 custom-opensearch.yml
-rw-r--r-- 1 ansible root   536 Jun  8 13:28 internal_users.yml

사용자 ansible로 돌아가지만 폴더에 액세스할 수 없습니다.

ansible@BACKUP:~$ whoami
ansible
ansible@BACKUP:~$ cd /opt/docker/config/opensearch/
-bash: cd: /opt/docker/config/opensearch/: Permission denied

또한 디렉터리를 나열하려고 할 때 파일 이름을 볼 수 있다는 점에서 이상한 출력이 표시되지만 그게 전부입니다.

ansible@BACKUP:~$ ls -al /opt/docker/config/opensearch/
ls: cannot access '/opt/docker/config/opensearch/custom-opensearch.yml': Permission denied
ls: cannot access '/opt/docker/config/opensearch/certs': Permission denied
ls: cannot access '/opt/docker/config/opensearch/.': Permission denied
ls: cannot access '/opt/docker/config/opensearch/internal_users.yml': Permission denied
ls: cannot access '/opt/docker/config/opensearch/..': Permission denied
total 0
d????????? ? ? ? ?            ? .
d????????? ? ? ? ?            ? ..
d????????? ? ? ? ?            ? certs
-????????? ? ? ? ?            ? custom-opensearch.yml
-????????? ? ? ? ?            ? internal_users.yml

운영 체제 버전:

ansible@BACKUP:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:        11
Codename:       bullseye

이러한 권한을 수정하려면 어떻게 해야 합니까? 일반적인 용의자를 루트로 시도했습니다.

root@BACKUP:/home/ansible# chown -R ansible:root /opt/docker/config/opensearch/
root@BACKUP:/home/ansible# chmod -R 0644 /opt/docker/config/opensearch/

이들 사이에는 차이가 없습니다.

//편집 1: ls -alZ출력 추가

root@BACKUP:/opt/docker/config/opensearch# ls -laZ
total 36
drw-r--r-- 3 ansible root ?  4096 Jun  8 15:59 .
drwxr-xr-x 7 ansible root ?  4096 Jun  8 13:28 ..
drw-r--r-- 2 ansible root ?  4096 Jun  8 14:14 certs
-rw-r--r-- 1 root    root ?   399 Jun  8 15:59 config.yml
-rw-r--r-- 1 ansible root ? 14150 Jun  8 15:38 custom-opensearch.yml
-rw-r--r-- 1 ansible root ?   536 Jun  8 13:28 internal_users.yml

답변1

이유는 다음과 같습니다.

root@BACKUP:/opt/docker/config/opensearch# ls -al
total 32
drw-r--r-- 3 ansible root  4096 Jun  8 15:38 .  <--- 'x' permissions missing
drwxr-xr-x 7 ansible root  4096 Jun  8 13:28 ..
drw-r--r-- 2 ansible root  4096 Jun  8 14:14 certs  <--- 'x' permissions missing

디렉토리 및 디렉토리에 x권한이 없습니다 ./opt/docker/config/opensearchcerts

일반 파일의 경우 x권한은 다음을 의미합니다.구현하다. 디렉토리의 경우 이는 다음을 의미합니다.콘텐츠에 액세스. r디렉터리 에 대한 권한이 없으면 x그 안에 있는 파일 및 하위 디렉터리의 이름을 읽을 수 있지만 이와 관련된 메타데이터는 읽을 수 없습니다. 결과적으로 ls -l해당 디렉터리 목록은 다음과 같습니다.

d????????? ? ? ? ?            ? .
d????????? ? ? ? ?            ? ..
d????????? ? ? ? ?            ? certs
-????????? ? ? ? ?            ? custom-opensearch.yml
-????????? ? ? ? ?            ? internal_users.yml

기술적으로 파일 이름은 디렉토리 자체의 일부이므로 볼 수 있지만 액세스 권한이 없기 때문에인덱스 노드파일 및 하위 디렉터리를 나타내면 소유권/권한/타임스탬프/크기 정보를 볼 수 없습니다.

수리하다:

chmod a+x /opt/docker/config/opensearch /opt/docker/config/opensearch/certs

x때로는 권한은 있지만 권한은 없는 디렉토리를 갖는 것이 바람직할 수 있습니다 r. 따라서 사용자는 액세스해야 하는 파일 또는 하위 디렉토리의 정확한 이름을 미리 알고 있는 경우에만 그 안에 있는 파일에 액세스할 수 있습니다. 그러나 그 반대의 경우, r권한은 있지만 해당 권한이 없는 디렉토리 x(내가 아는 한)는 일반적인 사용에 실제로 유용하지 않습니다.

관련 정보