저는 맞춤형 보드와 UNIX 계열 운영 체제를 개발 중입니다. SSH를 사용하여 연결할 때 루트가 없으면 다음 SELinux 오류가 발생합니다: 유효한 컨텍스트를 얻을 수 없습니다. 사용자가 루트 사용자가 아닙니다. 내 일지에서 나는 읽었다.
pam_selinux(sshd:session): Unable to get valid context for user
ssh_selinux_getctxbyname: Failed to get default SELinux security
ssh_selinux_getctxbyname: Failed to get default SELinux security
ssh_selinux_setup_pty: security_compute_relabel: Invalid argument
내 껍질에서 나는 읽었습니다 Unable to get valid context for user
.
따라서 저는 이것이 /usr/sbin/sshd
SELinux 컨텍스트라고 생각하며 해당 레이블이 잘못되었습니다. sestatus -v
루트 없이 실행하면 다음과 같습니다.
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: permissive
Policy MLS status: disabled
Policy deny_unknown status: denied
Memory protection checking: actual (secure)
Max kernel policy version: 31
Process contexts:
Current context: system_u:system_r:initrc_t
Init context: system_u:system_r:init_t
File contexts:
Controlling terminal: system_u:object_r:initrc_devpts_t
/etc/passwd system_u:object_r:etc_t
/etc/shadow system_u:object_r:shadow_t
/bin/login system_u:object_r:login_exec_t
/bin/sh system_u:object_r:bin_t
/sbin/init system_u:object_r:init_exec_t
/usr/sbin/sshd system_u:object_r:root_t
/lib/libc.so.6 system_u:object_r:lib_t -> system_u:object_r:lib_t
실행 id -Z
중 /usr/sbin/sshd system_u:system_r:kernel_t
또는 system_u:system_r:initrc_t
. 으로 레이블을 다시 지정 restorecon -v -r /*
하고 /usr/sbin/sshd
프로세스를 사용해 보았 system_u:system_r:kernel_t
더니 /usr/sbin/sshd
파일 컨텍스트가 system_u:system_r:bin_t
.
내 생각에 sshd에 대한 좋은 컨텍스트는 system_u:object_r:sshd_exec_t
. 루트의 chcon을 사용하여 설정을 시도했지만 id -Z
루트 없이 실행하면 컨텍스트에 레이블이 다시 지정되지 않으며 재부팅 후 루트 sshd가 없으면 컨텍스트에 레이블이 지정되지 않습니다.
내 시스템에서는 semange 프로그램을 사용할 수 없으며 설정할 "로그인 부울"이 없습니다. 내 getsebool -a 목록은 매우 짧습니다.
내 /etc/pam.d/sshd
구성에는 다음 줄이 있습니다.
session optional /lib/security/pam_selinux.so close
session optional /lib/security/pam_selinux.so multiple open
위의 pam 구성 파일에서 두 번째 줄을 제거하면 로그 오류만 발생하고 콘솔 오류는 발생하지 않습니다. 또한 이 두 줄을 제거하면 로그 및 콘솔 오류가 발생합니다. 왜?
누구든지 나를 도와줄 수 있나요? 감사해요