AppArmor에 대한 최상위 심볼릭 링크를 가르치는 방법

AppArmor에 대한 최상위 심볼릭 링크를 가르치는 방법

"루트" 파티션을 두 개로 나눕니다. 하나는 대부분의 파일을 포함하는 일반 파티션이고 다른 하나는 "성장"할 수 있는 영역입니다. 구체적으로 이는 다음과 같은 심볼릭 링크가 있음을 의미합니다.

/var/log   -> /part1/log
/var/cache -> /part1/cache
/var/spool -> /part1/spool

이것은 내가 AppArmor를 사용하기 전까지는 잘 작동했는데, AppArmor는 /part1/log/cups/에 있는 파일을 보는 cupd와 같은 것에 대해 계속 불평했습니다.

현재 AppArmor로 보호되는 각 애플리케이션에 대한 항목을 추가하여 이 문제를 해결하고 있지만 이는 지루한 작업입니다.

/var/log/FOO액세스가 허용 되면 /part1/log/FOO허용되어야 한다고 AppArmor에 단번에 알릴 수 있는 방법이 있습니까 ?

답변1

이 작업은 /etc/apparmor.d/tunables/alias다음과 같이 수행할 수 있습니다.

# Alias rules can be used to rewrite paths and are done after variable
# resolution. For example, if '/usr' is on removable media:
# alias /usr/ -> /mnt/usr/,
#
# Or if mysql databases are stored in /home:
# alias /var/lib/mysql/ -> /home/mysql/,

/var/log   -> /part1/log,
/var/cache -> /part1/cache,
/var/spool -> /part1/spool,

또한보십시오:

답변2

설정을 변경하지 않는 유일한 해결 방법은 모든 구성 파일을 편집하여 새 위치를 가리키도록 하는 것입니다. 이는 패턴 일치를 수행한 다음 다시 확인하여 수행할 수 있습니다. 또한 변경 사항을 계속 적용해야 하기 때문에 업그레이드가 더 복잡해질 수도 있습니다.

가장 간단한 해결책은 이러한 디렉터리에 바인드 마운트를 사용하는 것입니다.

다음을 추가하면 /etc/fstab심볼릭 링크를 대체하기에 충분합니다.

/var/log /part1/log none defaults,bind 0 0
/var/cache /part1/cache none defaults,bind 0 0
/var/spool /part1/spool none defaults,bind 0 0

/part1이 줄이 설치 뒤에 있는지 확인하십시오 .

관련 정보