%EB%8B%B9%20%EC%97%AC%EB%9F%AC%20%ED%94%84%EB%A1%9C%ED%95%84%EC%9D%84%20%EA%B0%80%EC%A7%88%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F%20%ED%86%B5%EC%82%AC%EB%A1%A0%3F.png)
단일 Firefox 설치로 여러 프로필이 실행되는 경우 각 Firefox 프로필에 대해 AppArmor 프로필을 생성하는 방법이 있습니까? 또는 더 일반적으로는 Thunderbird 등 여러 프로필을 지원하는 모든 응용 프로그램의 경우입니다. 일반적으로 이러한 애플리케이션에 대해 내가 찾은 모든 AppArmor 프로필에는 누락된 부분이 없는 한 전체 애플리케이션만 포함됩니다.
일반적으로 명령줄 인수를 사용하여 Firefox 또는 Thunderbird를 실행하여 다른 프로필을 지정합니다. 그러나 AppArmor 구성 파일 구문에서 애플리케이션 매개변수와 일치하는 항목을 찾을 수 없습니다.
나는 libvirt가 각 가상 머신에 대해 AppArmor 프로필을 생성하여 이를 수행한다는 것을 알고 있으므로 어떤 방법이 있어야 합니다.
답변1
AppArmor는 실행 파일을 통해 실행됩니다. Firefox가 다른 프로필을 로드했는지 확인할 수 없으므로 다른 AppArmor 프로필을 사용해야 합니다.
AppArmor는 지원합니다규칙을 바꾸다, 이는 애플리케이션을 허용합니다.적용되는 구성 파일을 변경하십시오.. 의도된 사용 사례는 애플리케이션이 초기화를 완료하고 이 특정 인스턴스에서 액세스해야 하는 항목을 결정한 후 더 제한적인 프로필로 전환할 수 있도록 허용하는 것입니다. 따라서 Firefox가 AppArmor를 인식하는 경우 change_profile
규칙을 지정하고 실행할 프로필을 결정한 후 변환을 적용할 수 있습니다. 내가 아는 한, 이 일은 아직 이루어지지 않았습니다.
프로그래밍이 필요하지 않습니다. 실행 파일의 여러 복사본이나 하드 링크를 만들고 각 파일에 대해 서로 다른 구성 파일을 정의하면 됩니다 firefox-bin
. AppArmor는 실행 파일의 경로를 기반으로 하므로 다른 하드 링크에서 동일한 경로를 사용할 필요가 없습니다. inode 기반의 SELinux와 다른 구성 파일입니다. 이를 위해서는 루트가 필요하고 불편하기 때문에 프로필 변경 기능이 AppArmor에 추가되었습니다.
답변2
확실하지는 않지만 제가 이해한 바에 따르면 다음과 같습니다.아니요.
의류는 서로 다른 것을 구별할 수 있습니다.
- 애플리케이션
- 파일 시스템 경로
- 사용자 그룹
서로 다른 애플리케이션 프로필에 대해 서로 다른 의류 동작을 가지려면 각 의류 동작에 대해 서로 다른 사용자를 생성해야 합니다.
Android 샌드박스와 마찬가지로 모든 앱은 서로 다른 "사용자" 아래에 있습니다.
답변3
사용할 수 있다로컬 파일, 또는별도의 프로필, 또는네임스페이스.
로컬 구성 파일은 다음과 같이 정의됩니다.
profile /usr/bin/firefox//some-name {
…
}
연결되지 않은 프로필은 다음과 같이 정의됩니다.
profile Some.name {
…
}
네임스페이스 구성 파일은 다음과 같이 정의됩니다.
profile :some-namespace:/usr/bin/firefox {
…
}
비표준 프로필을 프로세스에 귀속시키는 것은 프로세스 자체(이미 답변한 대로)를 통해 또는 systemd( 서비스 단위에서 정의할 속성) change_profile
의 도움을 통해 달성할 수 있습니다.AppArmorProfile=
답변4
아주 간단해요, 친구. firefox-(putProfileNameHere)라는 하드 링크를 만듭니다.
cd /data/usr/lib/firefox/
sudo ln firefox /usr/bin/firefox-default
sudo ln firefox /usr/bin/firefox-1b58iygj
#etc etc etc
여러 App Armor 프로필을 만듭니다.
cd /etc/apparmor.d
cp usr.bin.firefox usr.bin.firefox-default
cp usr.bin.firefox usr.bin.firefox-1b58iygj
#etc etc etc
필요에 따라 각 구성 파일을 수정합니다.
/usr//share/applications에 다른 .desktop 파일을 생성하십시오(또는 Alacarte 또는 KDE와 같은 메뉴 관리자를 사용하십시오)??) 사용자 정의 바이너리 + 관련 구성 파일을 실행합니다.
firefox-default
firefox-1b58iygj --profile /home/<yourUserID>/.mozilla/firefox/1b58iygj
#etc etc etc
재미있게 보내세요.