그래서 지금 나는파일 검색에는 파일 컨텍스트가 .ssh
필요합니다 .ssh_home_t
, 이제 SELinux 규칙을 중첩하는 방법을 알아내야 합니다.
첫 번째 문제는 의도된 용도를 설명하는 SELinux 파일 컨텍스트 목록을 찾을 수 없다는 것입니다. 그래서 나는 여기서 나가야 할지도 모른다. 내 생각엔 다음 세 가지 일을 순서대로 해야 한다고 생각해요.
- 각 디렉터리 일치 항목을
/exports/home/$USER
다음으로 설정합니다.nfs_t
아니요또한 일치합니다$USER
. 이는 내 NFS 서버에 홈 디렉토리를 합법적으로 내보낼 수 있음을 알려줍니다. - 모든 것을
/exports/home/$USER/.*
...뭔가로 설정하시겠습니까? 여기서는 설명이 포함된 포괄적인 목록이 유용할 것입니다. SELinux에는 일반적으로 사용자 홈 디렉터리의 파일을 지정하는 파일 컨텍스트가 있습니까? - 모든 것을 일치하도록 설정
/exports/home/$USER/\.ssh(/.*)
오직로ssh_home_t
SSHD를 사용할 수 있도록 허용합니다authorized_keys
.
NFS 서버에서 세 가지 규칙을 모두 호출해야 합니다. 또한 두 번째와 세 번째 규칙을 호출해야 합니다.개인 사용자로서홈 디렉토리가 설치된 모든 호스트에서 해당 개별 사용자의 파일에 액세스합니다. 분명히 내가 원하기 때문에 이러한 홈 디렉토리 중 하나가 설치된 모든 호스트에서 루트 디렉토리를 압축할 것입니다. 사용자는 NFS 서버가 아닌 호스트에서 SSH 파일을 포함한 파일을 생성할 가능성이 높습니다.
고쳐 쓰다
올바른 파일 컨텍스트를 찾은 것 같습니다. 이제 올바른 정규식을 알아내면 됩니다.
# semanage fcontext -a nfs_t '<regexp 1>'
# semanage fcontext -a user_home_t '<regexp 2>'
# semanage fcontext -a ssh_home_t '<regexp 3>'
어디
<regexp 1>
잡아서/exports/home/$USER
더 이상 가지 마세요.<regexp 2>
잡다/exports/home/$USER\.*
와는 별개로exports/home/$USER/\.ssh(/.*)?
.<regexp 3>
캡처exports/home/$USER/\.ssh(/.*)?
.
$USER
문자열(즉, 모든 사용자)과 아무 관련이 없습니다 .POSIX 확장 정규식허용되지 않는 것 같습니다.
답변1
간단하고 충격적인 대답은 다음과 같습니다.
SELinux에는 이미 기본 규칙 "/export/home/*"이 있습니다. "s"를 삭제하면 문제가 해결됩니다.