/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.conf
rsyslog를 제거하면 conf 파일 설정이 적용되는 것으로 나타났습니다. 이 경우 0755
.
tmpfiles.d
이것이 패키지 관리자에게만 적용되는지, 아니면 시스템 관리자도 이 영역 내에서 파일을 관리해야 하는지 더 자세히 조사해야 합니다 .
편집하다:
세 개의 디렉터리가 있으며 첫 번째 디렉터리가 가장 높은 우선 순위를 가집니다(관리자가 다른 두 디렉터리의 설정을 재정의하는 데 사용함).
/etc/tmpfiles.d/*.conf
/run/tmpfiles.d/*.conf
/usr/lib/tmpfiles.d/*.conf
추가 정보: