시작 시 /var/log에 대한 권한 재설정

시작 시 /var/log에 대한 권한 재설정

/var/log재부팅 시 아래 나열된 각 릴리스/버전에 대한 권한이 기본값으로 다시 재설정되는 것을 테스트하고 확인했습니다 . 문제는 왜인가?

  • 운영체제 7
  • 우분투>= 15.04
  • 데비안 8/9

내가 아는 한 CentOS 7 및 Debian 8/9의 기본 권한은 755, 입니다 root:root. Ubuntu 15.04+의 기본 권한은 775, 입니다 root:syslog. PPA에서 업스트림 rsyslog를 설치하면 기본 권한이 변경됩니다 755(Ubuntu 16.04에서 확인되었으며 아마도 15.04에서 16.04 사이의 Ubuntu 버전에서도 확인됨).

/var/log기본 권한을 변경하려고 시도 하면 재설정이 발생합니다(아마도 다음 부팅 시). 관련 게시물에서 rsyslog 설정이 작동 중일 수 있다는 누군가의 제안을 읽었지만 기대에 맞게 설정을 전환했으며 작동하지 않는 일부(예: 700)를 사용했지만 여전히 동일한 결과가 나왔습니다. 재설정 기본값으로 돌아갑니다.

그런 다음 rsyslog(재고 rsyslog가 설치된 VM과 업스트림 rsyslog가 설치된 VM)를 제거했는데 권한이 여전히 재설정되었으므로 rsyslog에서 재설정이 수행되지 않은 것 같습니다.

이것은 systemd에만 해당되는 것입니까? 이것이 실제로 재정의하고 재부팅 사이에 "지속"할 수 있는 설정입니까?

도움을 주셔서 미리 감사드립니다.

폴리스티렌

내 테스트는 LVM을 사용하여 배포판을 간단하게 설치하는 것이었지만 볼륨을 사용하여 lv의 설치 옵션 관련 문제를 배제하려고 했습니다.

답변1

아직 세부 사항을 조사 중이지만 /var/log시작 시 다음 파일이 권한 관리에 역할을 하는 것 같습니다.

  • /usr/lib/tmpfiles.d/var.conf
  • /usr/lib/tmpfiles.d/00rsyslog.conf

grep -ri '/var/log' /var/log아이러니하게도 Ubuntu 16.04 시스템에서 실행 중일 때 이를 발견했고 다음 메시지를 보았습니다.

./syslog.1:Jul 9 21:18:15 ubuntu-virtual-machine systemd-tmpfiles[616]: [/usr/lib/tmpfiles.d/var.conf:14] 중복 경로 "/var/log" 확인 ", 무시해.

파일을 찾아보니 이런 내용이 있더군요.

# 이 파일은 systemd의 일부입니다.
#
# systemd는 무료 소프트웨어이므로 재배포하거나 수정할 수 있습니다.
# GNU Lesser General Public License의 조건에 따라
# 자유 소프트웨어 재단 라이센스 버전 2.1, 또는
# (원하는 대로) 더 높은 버전.

# 자세한 내용은 tmpfiles.d(5)를 참조하세요.

q /var 0755 - - -

L /var/run - - - - ../run

d /var/log 0755 - - -
f /var/log/wtmp 0664 루트 utmp -
f /var/log/btmp 0600 루트 utmp -

d /var/cache 0755 - - -

d /var/lib 0755 - - -

d /var/spool 0755 - - -

해당 줄의 값을 조정하기 시작했지만 d /var/log 0755 - - -눈에 띄는 변화는 없었으며 디렉토리를 더 자세히 살펴보고 파일 을 찾았습니다 /usr/lib/tmpfiles.d/00rsyslog.conf.

이 파일에서:

# /var/log를 쓰기 가능하게 만들기 위해 systemd의 기본 tmpfiles.d/var.conf를 재정의합니다.
# rsyslog가 사용자로 실행될 수 있도록 syslog 그룹입니다.
# 자세한 내용은 tmpfiles.d(5)를 참조하세요.

# 경로 패턴 UID GID 연령 매개변수 입력
d /var/log 0775 루트 시스템 로그 -

root@ubuntu-virtual-machine:/usr/lib/tmpfiles.d# dpkg -S /usr/lib/tmpfiles.d/00rsyslog.conf

rsyslog:/usr/lib/tmpfiles.d/00rsyslog.conf

따라서 rsyslog 패키지는 conf 파일에 설정된 값을 재정의하려고 시도하는 conf 포함 파일을 제공합니다 tmpfiles.d/var.conf.

tmpfiles.d/var.confrsyslog를 제거하면 conf 파일 설정이 적용되는 것으로 나타났습니다. 이 경우 0755.

tmpfiles.d이것이 패키지 관리자에게만 적용되는지, 아니면 시스템 관리자도 이 영역 내에서 파일을 관리해야 하는지 더 자세히 조사해야 합니다 .

편집하다:

세 개의 디렉터리가 있으며 첫 번째 디렉터리가 가장 높은 우선 순위를 가집니다(관리자가 다른 두 디렉터리의 설정을 재정의하는 데 사용함).

  1. /etc/tmpfiles.d/*.conf
  2. /run/tmpfiles.d/*.conf
  3. /usr/lib/tmpfiles.d/*.conf

추가 정보:

관련 정보