테스트 서버를 준비하고 있습니다. 루트로 로그인하여 문제를 해결하세요.
cd /
chmod go-r *
물론 내가 만든 사용자의 쓰기 권한을 취소했습니다.
mysql, httpd, ftp 등의 프로세스에 대해 생성된 모든 그룹에서 권한(r/w/x)을 취소했습니까, 아니면 권한을 부여했습니까?
어떻게 확인하나요?
[업데이트] mysql과 apache를 다시 시작했습니다. mysqld가 루트로 실행되고 있지 않습니다. 로그에 쓰는 중입니다. 또 어떤 점을 확인해 보는 것이 좋을까요?
답변1
먼저 chmod go-r
쓰기 권한은 제거되지 않지만 읽기 권한은 제거됩니다. 의 내용은 /
주로 디렉토리입니다. 디렉토리에 대한 읽기 권한은 이를 나열할 수 있음을 의미합니다. 예를 들어 ls /bin
이제 거부 권한이 부여됩니다(디렉토리 소유자와 루트는 제외, 물론 이 경우 소유자는 루트입니다).
이것이 오타이고 의도한 것이라면 chmod go-w
쓰기 권한을 제거한 것입니다. 쓰기 권한이 있는 유일한 디렉토리일 수 있음G그룹 또는오예 /tmp
, 이 문제를 해결해야 합니다.
-R
고맙게도 에 (재귀)를 포함 하지 않았기 chmod
때문에 이 문제는 쉽게 해결할 수 있습니다. ls -l /
테스트 서버를 유사한 서버와 ls -l /
비교하기 만 하면 됩니다. chmod
권한을 원래 상태로 다시 설정하는 데 사용됩니다 .
chmod는 심볼릭 링크를 따르므로 루트 디렉터리에 심볼릭 링크가 있는 경우 별도로 확인해야 합니다.
마지막으로, 당신은 Unix 권한 모델을 이해하지 못하는 것 같습니다. 모든 파일과 디렉토리에는하나사용자(소유자)와하나그룹. 소유자는 파일/디렉토리에 대한 읽기, 쓰기 및/또는 실행 권한을 가질 수 있습니다. 이것이 chmod u=...
설정입니다. 그룹의 모든 구성원은 동일한 권한 집합을 가질 수 있습니다( chmod g=...
). 마지막으로 다른 모든 사람(다른 사람)은 동일한 세트( chmod o=...
)를 얻습니다.
예:
$ ls -l /etc/exim4/passwd.client
-rw-r----- 1 root Debian-exim 204 Oct 15 2006 /etc/exim4/passwd.client
|^^^^^^^^^| |||| ^^^^^^^^^^^
| perms | |||| group
t | owner
acl
t
파일 유형: 공백은 일반 파일, d
디렉토리, l
기호 링크, c
문자 장치, p
명명된 파이프, b
블록 장치 및 아마도 잊어버린 몇 가지를 의미합니다.
acl
+
이 파일에 ACL이 있으면 이를 사용하여 볼 수 있습니다 getfacl
.
내가 1
표시하지 않은 것은 링크 수입니다. 파일에 대한 하드 링크를 만든 경우 두 이름 모두에 2가 표시됩니다. 다른 이름을 추가하면 3 등이 표시됩니다.
권한 필드는 소유자(사용자)를 나타내는 세 문자입니다. 세 문자는 그룹을 나타냅니다. 소유자(사용자)는 다음을 수행할 수 있습니다.아르 자형에드와승파일에 쓰지만 실행하지는 않습니다( -
대신에 이 있기 때문입니다 x
). 이 그룹의 구성원은 Debian-exim
파일을 읽을 수 있지만 다른 권한은 없습니다. Debian-exim의 소유자도 아니고 회원도 아닌 사람은 이 파일에 대한 권한이 없습니다.
답변2
chmod go-r *
특수 그룹에는 전혀 영향을 미치지 않습니다. 이는 지배 집단과 '타인'의 권리에만 영향을 미칩니다. 의 모든 항목에 대한 기본 그룹은 /
이어야 합니다 root
. 따라서 루트는 어쨌든 원하는 모든 작업을 수행할 수 있으므로 이는 전혀 변경되지 않습니다.
/
다른 계정은 일반적으로 해당 경로를 알고 있기 때문에 디렉터리의 내용을 읽지 않습니다 . 이러한 경로는 여전히 액세스 가능합니다(권한으로 인해 x
).
생성한 그룹이 여전히 이러한 디렉터리에 대한 명시적 읽기 권한을 갖고 있는지 여부는 ACL 사용 여부에 따라 다릅니다. ACL이 있는 경우 ls -l
출력은 다음에서 발생합니다.
drwxr-xr-x
도착하다
drwxr-xr-x+
ACL 내용은 를 통해 볼 수 있습니다 getfacl
.
주요 질문은 그룹이 디렉토리를 읽지 못하도록 차단하는 이유는 무엇입니까 /
?