누군가 이것을 보고 내가 뭔가 잘못하고 있는지 확인할 수 있습니까?
저는 RockyLinux를 실행하고 있으며 syslog 서버를 설정하려고 합니다. 추가 2TB 데이터 드라이브가 연결된 Azure VM에서 실행됩니다.
Rocky에 드라이브를 설치하고 수정했으며 fstab
재부팅 후 드라이브가 존재하는지 확인하고 쓸 수 있습니다.
Rsyslog는 모두 설정 및 구성되어 있으며 기본 설정을 그대로 두고 로그가 /var/log로 전송되도록 허용하면 제대로 작동하지만 데이터 드라이브를 가리키자마자 권한 오류가 발생합니다.
May 24 11:30:20 MyServer rsyslogd[4315]: error during config processing: Could not open dynamic file '/datadrive/syslogs/MyServer/rsyslogd.log' [state -3000] - discarding message [v8>
May 24 11:30:20 MyServer rsyslogd[4315]: error during config processing: omfile: creating parent directories for file '/datadrive/syslogs/MyServer/rsyslogd.log' failed: Permission denied
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 1.6G 148M 1.4G 10% /run
/dev/sda3 7.9G 1.8G 6.1G 23% /
/dev/sda2 994M 430M 564M 44% /boot
/dev/sda1 100M 7.0M 93M 7% /boot/efi
/dev/sdb1 16G 28K 15G 1% /mnt
tmpfs 769M 0 769M 0% /run/user/1000
/dev/sdc1 2.0T 15G 2.0T 1% /datadrive
두 디렉터리 모두 동일한 권한과 소유자를 갖습니다.
[myroot@MyServer log]$ pwd
/var/log
.......
drwx------. 2 root root 31 May 24 11:09 remote-device
[myroot@MyServer /]$ pwd
/
.....
drwx------. 3 root root 21 May 24 10:03 datadrive
유일하게 제가 알아차린 점은 데이터 드라이브에 들어가려고 하는데 작동하지 않을 때 디렉터리를 /datadrive로 변경하기 전에 문제를 발행해야 한다는 cd /datadrive
것 입니다.sudo cd /datadrive
sudo su
이로 인해 문제가 발생할 수 있습니까? 어떤 아이디어라도 크게 감사하겠습니다.
답변1
귀하의 문제는 아마도 AppArmor에 의해 제어되는 ACL이라고 생각합니다.
그러나 나중에 이 답변을 읽는 다른 사람들을 위해 귀하의 로그 권한은 표준이 아닙니다. 로깅이 실행되는 것은 정상이 아닙니다 root
. 일반적으로 이는 그룹 syslog
에 속한 사용자 아래에서 발생합니다. 따라서 사용자 정의 로그 위치를 준비하려면 일반적으로 그룹에서 adm
필요한 디렉터리에 쓸 수 있는지 확인해야 합니다 . syslog
계속 사용하려면 아래 및 명령을 개인적으로 건너뛸 수 있지만 chgrp
다른 사람이 필요할 수도 있습니다.chmod
root
1. 구성
/etc/apparmor.d/usr.sbin.rsyslogd
첫 번째 행 아래에 두 번째 행을 업데이트 하고 추가합니다.
/var/log/** rw,
/datadrive/** rw,
첫 번째 줄은 구성 파일에 이미 존재하는 기본 위치입니다. 두 번째 줄은 데이터 드라이브 마운트 지점입니다. 다른 독자들은 이 위치를 적절하게 수정해야 합니다.
2. 명령
달리기:
sudo chgrp syslog /datadrive/
sudo chmod g+w /datadrive/
sudo systemctl restart apparmor.service
sudo systemctl restart rsyslog.service
첫 번째 명령은 데이터 기반 로그 위치의 그룹 소유권을 syslog
표준인 로 변경하고, 두 번째 명령은 그룹이 디렉터리에 쓸 수 있도록 허용합니다(파일 및 하위 디렉터리 생성 포함). 계속 진행하는 경우 이 두 명령을 직접 건너뛸 수 있지만 root
위에서 언급한 것처럼 표준 설정을 사용하는 다른 사용자에게는 이 명령이 필요합니다.
그런 다음 AppArmor를 다시 시작하여 구성 변경 사항을 적용한 다음 rsyslogd를 다시 시작했습니다.
sudo systemctl status rsyslog
이제 를 실행 하고 실제로 데이터가 위치에 추가되었는지 확인하여 성공을 확인할 수 있습니다 /datadrive
.
추가의
참고로 이는 소유권과 권한을 일반 기본값으로 완전히 재설정합니다. 즉 위에 나열된 특정 수술 변경이 아닌 전반적인 변경입니다.
sudo chown root:syslog /datadrive/
sudo chmod 775 /datadrive/
그리고 그건가능한(그러나 그럴 가능성은 낮습니다) ACL을 구체적으로 제어하기 위해 다음 라인을 따라 무언가를 실행해야 할 수도 있습니다. 그러나 Rocky Linux는 AppArmor를 사용하는 것으로 보이므로 이것이 가장 가능성이 높은 범인입니다.
sudo setfacl -m user:syslog:rwx /datadrive/
참고로 저는 Rocky Linux 사용자는 아니지만 Ubuntu/Debian에서 따라야 했던 단계이므로 둘 다 AppArmor를 사용하므로 원인과 해결책은 동일할 것으로 예상합니다.
더 폭넓게 관찰하자면, 파일 위치를 수정하는 경우 항상 표준 시스템 서비스에 대한 AppArmor 제한 사항을 확인하는 것이 좋습니다. AppArmor가 설치된 시스템에는 일반적으로 해당 프로세스에 대해 엄격한 보안 제어가 정의되어 있기 때문입니다.