마운트된 드라이브에 쓰려고 할 때 Rsyslog에서 오류가 발생함

마운트된 드라이브에 쓰려고 할 때 Rsyslog에서 오류가 발생함

누군가 이것을 보고 내가 뭔가 잘못하고 있는지 확인할 수 있습니까?

저는 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 /datadrivesudo su

이로 인해 문제가 발생할 수 있습니까? 어떤 아이디어라도 크게 감사하겠습니다.

답변1

귀하의 문제는 아마도 AppArmor에 의해 제어되는 ACL이라고 생각합니다.

그러나 나중에 이 답변을 읽는 다른 사람들을 위해 귀하의 로그 권한은 표준이 아닙니다. 로깅이 실행되는 것은 정상이 아닙니다 root. 일반적으로 이는 그룹 syslog에 속한 사용자 아래에서 발생합니다. 따라서 사용자 정의 로그 위치를 준비하려면 일반적으로 그룹에서 adm필요한 디렉터리에 쓸 수 있는지 확인해야 합니다 . syslog계속 사용하려면 아래 및 명령을 개인적으로 건너뛸 수 있지만 chgrp다른 사람이 필요할 수도 있습니다.chmodroot

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가 설치된 시스템에는 일반적으로 해당 프로세스에 대해 엄격한 보안 제어가 정의되어 있기 때문입니다.

관련 정보