diff options
-rw-r--r-- | .github/workflows/build-extra.yml | 34 | ||||
-rw-r--r-- | .github/workflows/build.yml | 12 | ||||
-rw-r--r-- | .github/workflows/codeql-analysis.yml | 20 | ||||
-rw-r--r-- | .github/workflows/profile-checks.yml | 14 | ||||
-rw-r--r-- | RELNOTES | 2 | ||||
-rwxr-xr-x | contrib/sort.py | 91 | ||||
-rw-r--r-- | etc/profile-a-l/brave.profile | 2 | ||||
-rw-r--r-- | etc/profile-a-l/email-common.profile | 2 | ||||
-rw-r--r-- | etc/profile-a-l/evince.profile | 13 | ||||
-rw-r--r-- | etc/profile-a-l/lutris.profile | 3 | ||||
-rw-r--r-- | etc/profile-m-z/nicotine.profile | 7 | ||||
-rw-r--r-- | etc/profile-m-z/whalebird.profile | 3 | ||||
-rw-r--r-- | etc/profile-m-z/youtube-viewers-common.profile | 12 |
13 files changed, 145 insertions, 70 deletions
diff --git a/.github/workflows/build-extra.yml b/.github/workflows/build-extra.yml index a319e1ac6..e9ec436a4 100644 --- a/.github/workflows/build-extra.yml +++ b/.github/workflows/build-extra.yml | |||
@@ -4,33 +4,43 @@ on: | |||
4 | push: | 4 | push: |
5 | branches: [ master ] | 5 | branches: [ master ] |
6 | paths-ignore: | 6 | paths-ignore: |
7 | - '.github/ISSUE_TEMPLATE/*' | ||
8 | - 'etc/**' | ||
9 | - 'contrib/vim/**' | ||
10 | - 'src/man/*.txt' | ||
7 | - .git-blame-ignore-revs | 11 | - .git-blame-ignore-revs |
12 | - .github/dependabot.yml | ||
13 | - .github/pull_request_template.md | ||
14 | - .github/workflows/codeql-analysis.yml | ||
8 | - .gitignore | 15 | - .gitignore |
16 | - .gitlab-ci.yml | ||
9 | - CONTRIBUTING.md | 17 | - CONTRIBUTING.md |
10 | - COPYING | 18 | - COPYING |
11 | - README | 19 | - README |
12 | - README.md | 20 | - README.md |
13 | - RELNOTES | 21 | - RELNOTES |
14 | - SECURITY.md | 22 | - SECURITY.md |
15 | - 'etc/**' | 23 | - src/firecfg/firecfg.config |
16 | - 'src/firecfg/firecfg.config' | ||
17 | - '.github/ISSUE_TEMPLATE/*' | ||
18 | - '.github/pull_request_template.md' | ||
19 | pull_request: | 24 | pull_request: |
20 | branches: [ master ] | 25 | branches: [ master ] |
21 | paths-ignore: | 26 | paths-ignore: |
27 | - '.github/ISSUE_TEMPLATE/*' | ||
28 | - 'etc/**' | ||
29 | - 'contrib/vim/**' | ||
30 | - 'src/man/*.txt' | ||
22 | - .git-blame-ignore-revs | 31 | - .git-blame-ignore-revs |
32 | - .github/dependabot.yml | ||
33 | - .github/pull_request_template.md | ||
34 | - .github/workflows/codeql-analysis.yml | ||
23 | - .gitignore | 35 | - .gitignore |
36 | - .gitlab-ci.yml | ||
24 | - CONTRIBUTING.md | 37 | - CONTRIBUTING.md |
25 | - COPYING | 38 | - COPYING |
26 | - README | 39 | - README |
27 | - README.md | 40 | - README.md |
28 | - RELNOTES | 41 | - RELNOTES |
29 | - SECURITY.md | 42 | - SECURITY.md |
30 | - 'etc/**' | 43 | - src/firecfg/firecfg.config |
31 | - 'src/firecfg/firecfg.config' | ||
32 | - '.github/ISSUE_TEMPLATE/*' | ||
33 | - '.github/pull_request_template.md' | ||
34 | 44 | ||
35 | permissions: # added using https://github.com/step-security/secure-workflows | 45 | permissions: # added using https://github.com/step-security/secure-workflows |
36 | contents: read | 46 | contents: read |
@@ -40,7 +50,7 @@ jobs: | |||
40 | runs-on: ubuntu-22.04 | 50 | runs-on: ubuntu-22.04 |
41 | steps: | 51 | steps: |
42 | - name: Harden Runner | 52 | - name: Harden Runner |
43 | uses: step-security/harden-runner@2e205a28d0e1da00c5f53b161f4067b052c61f34 | 53 | uses: step-security/harden-runner@ebacdc22ef6c2cfb85ee5ded8f2e640f4c776dd5 |
44 | with: | 54 | with: |
45 | egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs | 55 | egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs |
46 | 56 | ||
@@ -59,7 +69,7 @@ jobs: | |||
59 | runs-on: ubuntu-22.04 | 69 | runs-on: ubuntu-22.04 |
60 | steps: | 70 | steps: |
61 | - name: Harden Runner | 71 | - name: Harden Runner |
62 | uses: step-security/harden-runner@2e205a28d0e1da00c5f53b161f4067b052c61f34 | 72 | uses: step-security/harden-runner@ebacdc22ef6c2cfb85ee5ded8f2e640f4c776dd5 |
63 | with: | 73 | with: |
64 | egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs | 74 | egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs |
65 | 75 | ||
@@ -74,7 +84,7 @@ jobs: | |||
74 | runs-on: ubuntu-22.04 | 84 | runs-on: ubuntu-22.04 |
75 | steps: | 85 | steps: |
76 | - name: Harden Runner | 86 | - name: Harden Runner |
77 | uses: step-security/harden-runner@2e205a28d0e1da00c5f53b161f4067b052c61f34 | 87 | uses: step-security/harden-runner@ebacdc22ef6c2cfb85ee5ded8f2e640f4c776dd5 |
78 | with: | 88 | with: |
79 | egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs | 89 | egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs |
80 | 90 | ||
@@ -89,7 +99,7 @@ jobs: | |||
89 | runs-on: ubuntu-20.04 | 99 | runs-on: ubuntu-20.04 |
90 | steps: | 100 | steps: |
91 | - name: Harden Runner | 101 | - name: Harden Runner |
92 | uses: step-security/harden-runner@2e205a28d0e1da00c5f53b161f4067b052c61f34 | 102 | uses: step-security/harden-runner@ebacdc22ef6c2cfb85ee5ded8f2e640f4c776dd5 |
93 | with: | 103 | with: |
94 | egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs | 104 | egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs |
95 | 105 | ||
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e383c9ef2..3119f59b9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml | |||
@@ -4,8 +4,13 @@ on: | |||
4 | push: | 4 | push: |
5 | branches: [ master ] | 5 | branches: [ master ] |
6 | paths-ignore: | 6 | paths-ignore: |
7 | - '.github/ISSUE_TEMPLATE/*' | ||
7 | - .git-blame-ignore-revs | 8 | - .git-blame-ignore-revs |
9 | - .github/dependabot.yml | ||
10 | - .github/pull_request_template.md | ||
11 | - .github/workflows/codeql-analysis.yml | ||
8 | - .gitignore | 12 | - .gitignore |
13 | - .gitlab-ci.yml | ||
9 | - CONTRIBUTING.md | 14 | - CONTRIBUTING.md |
10 | - COPYING | 15 | - COPYING |
11 | - README | 16 | - README |
@@ -15,8 +20,13 @@ on: | |||
15 | pull_request: | 20 | pull_request: |
16 | branches: [ master ] | 21 | branches: [ master ] |
17 | paths-ignore: | 22 | paths-ignore: |
23 | - '.github/ISSUE_TEMPLATE/*' | ||
18 | - .git-blame-ignore-revs | 24 | - .git-blame-ignore-revs |
25 | - .github/dependabot.yml | ||
26 | - .github/pull_request_template.md | ||
27 | - .github/workflows/codeql-analysis.yml | ||
19 | - .gitignore | 28 | - .gitignore |
29 | - .gitlab-ci.yml | ||
20 | - CONTRIBUTING.md | 30 | - CONTRIBUTING.md |
21 | - COPYING | 31 | - COPYING |
22 | - README | 32 | - README |
@@ -32,7 +42,7 @@ jobs: | |||
32 | runs-on: ubuntu-22.04 | 42 | runs-on: ubuntu-22.04 |
33 | steps: | 43 | steps: |
34 | - name: Harden Runner | 44 | - name: Harden Runner |
35 | uses: step-security/harden-runner@2e205a28d0e1da00c5f53b161f4067b052c61f34 | 45 | uses: step-security/harden-runner@ebacdc22ef6c2cfb85ee5ded8f2e640f4c776dd5 |
36 | with: | 46 | with: |
37 | egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs | 47 | egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs |
38 | 48 | ||
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 6c8a9bf99..ad19c9530 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml | |||
@@ -9,28 +9,42 @@ on: | |||
9 | push: | 9 | push: |
10 | branches: [ master ] | 10 | branches: [ master ] |
11 | paths-ignore: | 11 | paths-ignore: |
12 | - '.github/ISSUE_TEMPLATE/*' | ||
13 | - 'etc/**' | ||
14 | - 'contrib/vim/**' | ||
15 | - 'src/man/*.txt' | ||
12 | - .git-blame-ignore-revs | 16 | - .git-blame-ignore-revs |
17 | - .github/dependabot.yml | ||
18 | - .github/pull_request_template.md | ||
13 | - .gitignore | 19 | - .gitignore |
20 | - .gitlab-ci.yml | ||
14 | - CONTRIBUTING.md | 21 | - CONTRIBUTING.md |
15 | - COPYING | 22 | - COPYING |
16 | - README | 23 | - README |
17 | - README.md | 24 | - README.md |
18 | - RELNOTES | 25 | - RELNOTES |
19 | - SECURITY.md | 26 | - SECURITY.md |
20 | - 'etc/**' | 27 | - src/firecfg/firecfg.config |
21 | pull_request: | 28 | pull_request: |
22 | # The branches below must be a subset of the branches above | 29 | # The branches below must be a subset of the branches above |
23 | branches: [ master ] | 30 | branches: [ master ] |
24 | paths-ignore: | 31 | paths-ignore: |
32 | - '.github/ISSUE_TEMPLATE/*' | ||
33 | - 'etc/**' | ||
34 | - 'contrib/vim/**' | ||
35 | - 'src/man/*.txt' | ||
25 | - .git-blame-ignore-revs | 36 | - .git-blame-ignore-revs |
37 | - .github/dependabot.yml | ||
38 | - .github/pull_request_template.md | ||
26 | - .gitignore | 39 | - .gitignore |
40 | - .gitlab-ci.yml | ||
27 | - CONTRIBUTING.md | 41 | - CONTRIBUTING.md |
28 | - COPYING | 42 | - COPYING |
29 | - README | 43 | - README |
30 | - README.md | 44 | - README.md |
31 | - RELNOTES | 45 | - RELNOTES |
32 | - SECURITY.md | 46 | - SECURITY.md |
33 | - 'etc/**' | 47 | - src/firecfg/firecfg.config |
34 | schedule: | 48 | schedule: |
35 | - cron: '0 7 * * 2' | 49 | - cron: '0 7 * * 2' |
36 | 50 | ||
@@ -56,7 +70,7 @@ jobs: | |||
56 | 70 | ||
57 | steps: | 71 | steps: |
58 | - name: Harden Runner | 72 | - name: Harden Runner |
59 | uses: step-security/harden-runner@2e205a28d0e1da00c5f53b161f4067b052c61f34 | 73 | uses: step-security/harden-runner@ebacdc22ef6c2cfb85ee5ded8f2e640f4c776dd5 |
60 | with: | 74 | with: |
61 | egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs | 75 | egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs |
62 | 76 | ||
diff --git a/.github/workflows/profile-checks.yml b/.github/workflows/profile-checks.yml index f5de62412..17e756685 100644 --- a/.github/workflows/profile-checks.yml +++ b/.github/workflows/profile-checks.yml | |||
@@ -4,17 +4,17 @@ on: | |||
4 | push: | 4 | push: |
5 | branches: [ master ] | 5 | branches: [ master ] |
6 | paths: | 6 | paths: |
7 | - 'etc/**' | ||
8 | - 'ci/check/profiles/**' | 7 | - 'ci/check/profiles/**' |
9 | - 'src/firecfg/firecfg.config' | 8 | - 'etc/**' |
10 | - 'contrib/sort.py' | 9 | - contrib/sort.py |
10 | - src/firecfg/firecfg.config | ||
11 | pull_request: | 11 | pull_request: |
12 | branches: [ master ] | 12 | branches: [ master ] |
13 | paths: | 13 | paths: |
14 | - 'etc/**' | ||
15 | - 'ci/check/profiles/**' | 14 | - 'ci/check/profiles/**' |
16 | - 'src/firecfg/firecfg.config' | 15 | - 'etc/**' |
17 | - 'contrib/sort.py' | 16 | - contrib/sort.py |
17 | - src/firecfg/firecfg.config | ||
18 | 18 | ||
19 | permissions: # added using https://github.com/step-security/secure-workflows | 19 | permissions: # added using https://github.com/step-security/secure-workflows |
20 | contents: read | 20 | contents: read |
@@ -24,7 +24,7 @@ jobs: | |||
24 | runs-on: ubuntu-latest | 24 | runs-on: ubuntu-latest |
25 | steps: | 25 | steps: |
26 | - name: Harden Runner | 26 | - name: Harden Runner |
27 | uses: step-security/harden-runner@2e205a28d0e1da00c5f53b161f4067b052c61f34 | 27 | uses: step-security/harden-runner@ebacdc22ef6c2cfb85ee5ded8f2e640f4c776dd5 |
28 | with: | 28 | with: |
29 | egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs | 29 | egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs |
30 | 30 | ||
@@ -2,6 +2,8 @@ firejail (0.9.71) baseline; urgency=low | |||
2 | * work in progress | 2 | * work in progress |
3 | * feature: On failing to remount a fuse filesystem, give warning instead of | 3 | * feature: On failing to remount a fuse filesystem, give warning instead of |
4 | erroring out (#5240 #5242) | 4 | erroring out (#5240 #5242) |
5 | * feature: Update syscall tables and seccomp groups (#5188) | ||
6 | * feature: improve force-nonewprivs security guarantees (#5217 #5271) | ||
5 | * feature: restrict namespaces (--restrict-namespaces) implemented as | 7 | * feature: restrict namespaces (--restrict-namespaces) implemented as |
6 | a seccomp filter for both 64 and 32 bit architectures (#4939 #5259) | 8 | a seccomp filter for both 64 and 32 bit architectures (#4939 #5259) |
7 | * feature: support for custom AppArmor profiles (--apparmor=) (#5274 #5316 | 9 | * feature: support for custom AppArmor profiles (--apparmor=) (#5274 #5316 |
diff --git a/contrib/sort.py b/contrib/sort.py index 6f21370ec..638f14516 100755 --- a/contrib/sort.py +++ b/contrib/sort.py | |||
@@ -2,48 +2,61 @@ | |||
2 | # This file is part of Firejail project | 2 | # This file is part of Firejail project |
3 | # Copyright (C) 2014-2022 Firejail Authors | 3 | # Copyright (C) 2014-2022 Firejail Authors |
4 | # License GPL v2 | 4 | # License GPL v2 |
5 | """ | ||
6 | Sort the items of multi-item options in profiles, the following options are supported: | ||
7 | private-bin, private-etc, private-lib, caps.drop, caps.keep, seccomp.drop, seccomp.drop, protocol | ||
8 | 5 | ||
9 | Usage: | 6 | # Requirements: |
10 | $ ./sort.py /path/to/profile [ /path/to/profile2 /path/to/profile3 ... ] | 7 | # python >= 3.6 |
8 | from os import path | ||
9 | from sys import argv, exit as sys_exit, stderr | ||
10 | |||
11 | __doc__ = f"""\ | ||
12 | Sort the arguments of commands in profiles. | ||
13 | |||
14 | Usage: {path.basename(argv[0])} [/path/to/profile ...] | ||
15 | |||
16 | The following commands are supported: | ||
17 | |||
18 | private-bin, private-etc, private-lib, caps.drop, caps.keep, seccomp.drop, | ||
19 | seccomp.drop, protocol | ||
20 | |||
21 | Note that this is only applicable to commands that support multiple arguments. | ||
22 | |||
11 | Keep in mind that this will overwrite your profile(s). | 23 | Keep in mind that this will overwrite your profile(s). |
12 | 24 | ||
13 | Examples: | 25 | Examples: |
14 | $ ./sort.py MyAwesomeProfile.profile | 26 | $ {argv[0]} MyAwesomeProfile.profile |
15 | $ ./sort.py new_profile.profile second_new_profile.profile | 27 | $ {argv[0]} new_profile.profile second_new_profile.profile |
16 | $ ./sort.py ~/.config/firejail/*.{profile,inc,local} | 28 | $ {argv[0]} ~/.config/firejail/*.{{profile,inc,local}} |
17 | $ sudo ./sort.py /etc/firejail/*.{profile,inc,local} | 29 | $ sudo {argv[0]} /etc/firejail/*.{{profile,inc,local}} |
18 | 30 | ||
19 | Exit-Codes: | 31 | Exit Codes: |
20 | 0: No Error; No Profile Fixed. | 32 | 0: Success: No profiles needed fixing. |
21 | 1: Error, one or more profiles were not processed correctly. | 33 | 1: Error: One or more profiles could not be processed correctly. |
22 | 101: No Error; One or more profile were fixed. | 34 | 2: Error: Missing arguments. |
35 | 101: Info: One or more profiles were fixed. | ||
23 | """ | 36 | """ |
24 | 37 | ||
25 | # Requirements: | ||
26 | # python >= 3.6 | ||
27 | from sys import argv, exit as sys_exit | ||
28 | |||
29 | 38 | ||
30 | def sort_alphabetical(raw_items): | 39 | def sort_alphabetical(original_items): |
31 | items = raw_items.split(",") | 40 | items = original_items.split(",") |
32 | items.sort(key=lambda s: s.casefold()) | 41 | items.sort(key=str.casefold) |
33 | return ",".join(items) | 42 | return ",".join(items) |
34 | 43 | ||
35 | 44 | ||
36 | def sort_protocol(protocols): | 45 | def sort_protocol(original_protocols): |
37 | """sort the given protocols into this scheme: unix,inet,inet6,netlink,packet,bluetooth""" | 46 | """ |
47 | Sort the given protocols into the following order: | ||
48 | |||
49 | unix,inet,inet6,netlink,packet,bluetooth | ||
50 | """ | ||
38 | 51 | ||
39 | # shortcut for common protocol lines | 52 | # shortcut for common protocol lines |
40 | if protocols in ("unix", "unix,inet,inet6"): | 53 | if original_protocols in ("unix", "unix,inet,inet6"): |
41 | return protocols | 54 | return original_protocols |
42 | 55 | ||
43 | fixed_protocols = "" | 56 | fixed_protocols = "" |
44 | for protocol in ("unix", "inet", "inet6", "netlink", "packet", "bluetooth"): | 57 | for protocol in ("unix", "inet", "inet6", "netlink", "packet", "bluetooth"): |
45 | for prefix in ("", "-", "+", "="): | 58 | for prefix in ("", "-", "+", "="): |
46 | if f",{prefix}{protocol}," in f",{protocols},": | 59 | if f",{prefix}{protocol}," in f",{original_protocols},": |
47 | fixed_protocols += f"{prefix}{protocol}," | 60 | fixed_protocols += f"{prefix}{protocol}," |
48 | return fixed_protocols[:-1] | 61 | return fixed_protocols[:-1] |
49 | 62 | ||
@@ -53,7 +66,7 @@ def fix_profile(filename): | |||
53 | lines = profile.read().split("\n") | 66 | lines = profile.read().split("\n") |
54 | was_fixed = False | 67 | was_fixed = False |
55 | fixed_profile = [] | 68 | fixed_profile = [] |
56 | for lineno, line in enumerate(lines): | 69 | for lineno, line in enumerate(lines, 1): |
57 | if line[:12] in ("private-bin ", "private-etc ", "private-lib "): | 70 | if line[:12] in ("private-bin ", "private-etc ", "private-lib "): |
58 | fixed_line = f"{line[:12]}{sort_alphabetical(line[12:])}" | 71 | fixed_line = f"{line[:12]}{sort_alphabetical(line[12:])}" |
59 | elif line[:13] in ("seccomp.drop ", "seccomp.keep "): | 72 | elif line[:13] in ("seccomp.drop ", "seccomp.keep "): |
@@ -69,8 +82,8 @@ def fix_profile(filename): | |||
69 | if fixed_line != line: | 82 | if fixed_line != line: |
70 | was_fixed = True | 83 | was_fixed = True |
71 | print( | 84 | print( |
72 | f"{filename}:{lineno + 1}:-{line}\n" | 85 | f"{filename}:{lineno}:-{line}\n" |
73 | f"{filename}:{lineno + 1}:+{fixed_line}" | 86 | f"{filename}:{lineno}:+{fixed_line}" |
74 | ) | 87 | ) |
75 | fixed_profile.append(fixed_line) | 88 | fixed_profile.append(fixed_line) |
76 | if was_fixed: | 89 | if was_fixed: |
@@ -84,22 +97,30 @@ def fix_profile(filename): | |||
84 | 97 | ||
85 | 98 | ||
86 | def main(args): | 99 | def main(args): |
100 | if len(args) < 1: | ||
101 | print(__doc__, file=stderr) | ||
102 | return 2 | ||
103 | |||
104 | print(f"sort.py: checking {len(args)} profile(s)...") | ||
105 | |||
87 | exit_code = 0 | 106 | exit_code = 0 |
88 | print(f"sort.py: checking {len(args)} {'profiles' if len(args) != 1 else 'profile'}...") | ||
89 | for filename in args: | 107 | for filename in args: |
90 | try: | 108 | try: |
91 | if exit_code not in (1, 101): | 109 | if exit_code not in (1, 101): |
92 | exit_code = fix_profile(filename) | 110 | exit_code = fix_profile(filename) |
93 | else: | 111 | else: |
94 | fix_profile(filename) | 112 | fix_profile(filename) |
95 | except FileNotFoundError: | 113 | except FileNotFoundError as err: |
96 | print(f"[ Error ] Can't find `{filename}'") | 114 | print(f"[ Error ] {err}", file=stderr) |
97 | exit_code = 1 | 115 | exit_code = 1 |
98 | except PermissionError: | 116 | except PermissionError as err: |
99 | print(f"[ Error ] Can't read/write `{filename}'") | 117 | print(f"[ Error ] {err}", file=stderr) |
100 | exit_code = 1 | 118 | exit_code = 1 |
101 | except Exception as err: | 119 | except Exception as err: |
102 | print(f"[ Error ] An error occurred while processing `{filename}': {err}") | 120 | print( |
121 | f"[ Error ] An error occurred while processing '{filename}': {err}", | ||
122 | file=stderr, | ||
123 | ) | ||
103 | exit_code = 1 | 124 | exit_code = 1 |
104 | return exit_code | 125 | return exit_code |
105 | 126 | ||
diff --git a/etc/profile-a-l/brave.profile b/etc/profile-a-l/brave.profile index 09548c761..071a279b0 100644 --- a/etc/profile-a-l/brave.profile +++ b/etc/profile-a-l/brave.profile | |||
@@ -13,6 +13,8 @@ ignore noexec /tmp | |||
13 | # you will need to uncomment the 'brave + tor' rule in /etc/apparmor.d/local/firejail-default. | 13 | # you will need to uncomment the 'brave + tor' rule in /etc/apparmor.d/local/firejail-default. |
14 | # Alternatively you can add 'ignore apparmor' to your brave.local. | 14 | # Alternatively you can add 'ignore apparmor' to your brave.local. |
15 | ignore noexec ${HOME} | 15 | ignore noexec ${HOME} |
16 | # Causes slow starts (#4604) | ||
17 | ignore private-cache | ||
16 | 18 | ||
17 | noblacklist ${HOME}/.cache/BraveSoftware | 19 | noblacklist ${HOME}/.cache/BraveSoftware |
18 | noblacklist ${HOME}/.config/BraveSoftware | 20 | noblacklist ${HOME}/.config/BraveSoftware |
diff --git a/etc/profile-a-l/email-common.profile b/etc/profile-a-l/email-common.profile index 2b26b3727..89c44bf76 100644 --- a/etc/profile-a-l/email-common.profile +++ b/etc/profile-a-l/email-common.profile | |||
@@ -65,7 +65,7 @@ tracelog | |||
65 | # disable-mnt | 65 | # disable-mnt |
66 | private-cache | 66 | private-cache |
67 | private-dev | 67 | private-dev |
68 | private-etc alternatives,ca-certificates,crypto-policies,dconf,fonts,gcrypt,gnupg,groups,gtk-2.0,gtk-3.0,hostname,hosts,hosts.conf,ld.so.cache,ld.so.preload,machine-id,mailname,nsswitch.conf,passwd,pki,resolv.conf,selinux,ssl,xdg | 68 | private-etc alternatives,ca-certificates,crypto-policies,dconf,fonts,gcrypt,gnupg,groups,gtk-2.0,gtk-3.0,hostname,hosts,hosts.conf,ld.so.cache,ld.so.preload,localtime,machine-id,mailname,nsswitch.conf,passwd,pki,resolv.conf,selinux,ssl,xdg |
69 | private-tmp | 69 | private-tmp |
70 | # encrypting and signing email | 70 | # encrypting and signing email |
71 | writable-run-user | 71 | writable-run-user |
diff --git a/etc/profile-a-l/evince.profile b/etc/profile-a-l/evince.profile index 21bf7eabf..eec9f86db 100644 --- a/etc/profile-a-l/evince.profile +++ b/etc/profile-a-l/evince.profile | |||
@@ -6,9 +6,9 @@ include evince.local | |||
6 | # Persistent global definitions | 6 | # Persistent global definitions |
7 | include globals.local | 7 | include globals.local |
8 | 8 | ||
9 | # WARNING: using bookmarks possibly exposes information, including file history from other programs. | 9 | # WARNING: This exposes information like file history from other programs. |
10 | # Add the next line to your evince.local if you need bookmarks support. This also needs additional dbus-user filtering (see below). | 10 | # You can add a blacklist for it in your evince.local for additional hardening if you can live with some restrictions. |
11 | #noblacklist ${HOME}/.local/share/gvfs-metadata | 11 | noblacklist ${HOME}/.local/share/gvfs-metadata |
12 | 12 | ||
13 | noblacklist ${HOME}/.config/evince | 13 | noblacklist ${HOME}/.config/evince |
14 | noblacklist ${DOCUMENTS} | 14 | noblacklist ${DOCUMENTS} |
@@ -59,9 +59,8 @@ private-etc alternatives,fonts,group,ld.so.cache,ld.so.preload,machine-id,passwd | |||
59 | private-lib evince,gcc/*/*/libgcc_s.so.*,gcc/*/*/libstdc++.so.*,gconv,gdk-pixbuf-2.*,gio,gvfs/libgvfscommon.so,libarchive.so.*,libdjvulibre.so.*,libgconf-2.so.*,libgraphite2.so.*,libpoppler-glib.so.*,librsvg-2.so.*,libspectre.so.* | 59 | private-lib evince,gcc/*/*/libgcc_s.so.*,gcc/*/*/libstdc++.so.*,gconv,gdk-pixbuf-2.*,gio,gvfs/libgvfscommon.so,libarchive.so.*,libdjvulibre.so.*,libgconf-2.so.*,libgraphite2.so.*,libpoppler-glib.so.*,librsvg-2.so.*,libspectre.so.* |
60 | private-tmp | 60 | private-tmp |
61 | 61 | ||
62 | # dbus-user filtering might break two-page-view on some systems | ||
63 | dbus-user filter | 62 | dbus-user filter |
64 | # Add the next two lines to your evince.local if you need bookmarks support. | 63 | dbus-user.talk ca.desrt.dconf |
65 | #dbus-user.talk org.gtk.vfs.Daemon | 64 | dbus-user.talk org.gtk.vfs.Daemon |
66 | #dbus-user.talk org.gtk.vfs.Metadata | 65 | dbus-user.talk org.gtk.vfs.Metadata |
67 | dbus-system none | 66 | dbus-system none |
diff --git a/etc/profile-a-l/lutris.profile b/etc/profile-a-l/lutris.profile index 0562cf430..80cecd056 100644 --- a/etc/profile-a-l/lutris.profile +++ b/etc/profile-a-l/lutris.profile | |||
@@ -69,7 +69,8 @@ notv | |||
69 | nou2f | 69 | nou2f |
70 | novideo | 70 | novideo |
71 | protocol unix,inet,inet6,netlink | 71 | protocol unix,inet,inet6,netlink |
72 | seccomp | 72 | seccomp !modify_ldt |
73 | seccomp.32 !modify_ldt | ||
73 | 74 | ||
74 | # Add the next line to your lutris.local if you do not need controller support. | 75 | # Add the next line to your lutris.local if you do not need controller support. |
75 | #private-dev | 76 | #private-dev |
diff --git a/etc/profile-m-z/nicotine.profile b/etc/profile-m-z/nicotine.profile index bb2a41457..22c8b1782 100644 --- a/etc/profile-m-z/nicotine.profile +++ b/etc/profile-m-z/nicotine.profile | |||
@@ -8,8 +8,12 @@ include globals.local | |||
8 | 8 | ||
9 | noblacklist ${HOME}/.nicotine | 9 | noblacklist ${HOME}/.nicotine |
10 | 10 | ||
11 | # Allow /bin/sh (blacklisted by disable-shell.inc) | ||
12 | include allow-bin-sh.inc | ||
13 | |||
11 | # Allow python (blacklisted by disable-interpreters.inc) | 14 | # Allow python (blacklisted by disable-interpreters.inc) |
12 | include allow-python2.inc | 15 | include allow-python2.inc |
16 | include allow-python3.inc | ||
13 | 17 | ||
14 | include disable-common.inc | 18 | include disable-common.inc |
15 | include disable-devel.inc | 19 | include disable-devel.inc |
@@ -37,6 +41,7 @@ nodvd | |||
37 | nogroups | 41 | nogroups |
38 | noinput | 42 | noinput |
39 | nonewprivs | 43 | nonewprivs |
44 | noprinters | ||
40 | noroot | 45 | noroot |
41 | nosound | 46 | nosound |
42 | notv | 47 | notv |
@@ -47,7 +52,7 @@ seccomp | |||
47 | tracelog | 52 | tracelog |
48 | 53 | ||
49 | disable-mnt | 54 | disable-mnt |
50 | private-bin nicotine,python2* | 55 | #private-bin nicotine,python2* |
51 | private-cache | 56 | private-cache |
52 | private-dev | 57 | private-dev |
53 | private-tmp | 58 | private-tmp |
diff --git a/etc/profile-m-z/whalebird.profile b/etc/profile-m-z/whalebird.profile index 92ebebdae..8a9614fb0 100644 --- a/etc/profile-m-z/whalebird.profile +++ b/etc/profile-m-z/whalebird.profile | |||
@@ -10,6 +10,7 @@ include globals.local | |||
10 | ignore include whitelist-runuser-common.inc | 10 | ignore include whitelist-runuser-common.inc |
11 | ignore include whitelist-usr-share-common.inc | 11 | ignore include whitelist-usr-share-common.inc |
12 | 12 | ||
13 | ignore apparmor | ||
13 | ignore dbus-user none | 14 | ignore dbus-user none |
14 | ignore dbus-system none | 15 | ignore dbus-system none |
15 | 16 | ||
@@ -21,7 +22,7 @@ whitelist ${HOME}/.config/Whalebird | |||
21 | no3d | 22 | no3d |
22 | 23 | ||
23 | private-bin electron,electron[0-9],electron[0-9][0-9],whalebird | 24 | private-bin electron,electron[0-9],electron[0-9][0-9],whalebird |
24 | private-etc alternatives,fonts,ld.so.cache,ld.so.preload,machine-id | 25 | private-etc alternatives,ca-certificates,crypto-policies,fonts,ld.so.cache,ld.so.preload,machine-id,nsswitch.conf,pki,resolv.conf,ssl |
25 | 26 | ||
26 | # Redirect | 27 | # Redirect |
27 | include electron.profile | 28 | include electron.profile |
diff --git a/etc/profile-m-z/youtube-viewers-common.profile b/etc/profile-m-z/youtube-viewers-common.profile index 8582e2462..28c219377 100644 --- a/etc/profile-m-z/youtube-viewers-common.profile +++ b/etc/profile-m-z/youtube-viewers-common.profile | |||
@@ -19,6 +19,13 @@ include allow-perl.inc | |||
19 | include allow-python2.inc | 19 | include allow-python2.inc |
20 | include allow-python3.inc | 20 | include allow-python3.inc |
21 | 21 | ||
22 | # The lines below are needed to find the default Firefox profile name, to allow | ||
23 | # opening links in an existing instance of Firefox (note that it still fails if | ||
24 | # there isn't a Firefox instance running with the default profile; see #5352) | ||
25 | noblacklist ${HOME}/.mozilla | ||
26 | whitelist ${HOME}/.mozilla/firefox/profiles.ini | ||
27 | read-only ${HOME}/.mozilla/firefox/profiles.ini | ||
28 | |||
22 | include disable-common.inc | 29 | include disable-common.inc |
23 | include disable-devel.inc | 30 | include disable-devel.inc |
24 | include disable-exec.inc | 31 | include disable-exec.inc |
@@ -55,5 +62,8 @@ private-dev | |||
55 | private-etc alsa,alternatives,asound.conf,ca-certificates,crypto-policies,fonts,gtk-2.0,gtk-3.0,host.conf,hostname,hosts,ld.so.cache,ld.so.preload,machine-id,mime.types,nsswitch.conf,passwd,pki,pulse,resolv.conf,ssl,X11,xdg | 62 | private-etc alsa,alternatives,asound.conf,ca-certificates,crypto-policies,fonts,gtk-2.0,gtk-3.0,host.conf,hostname,hosts,ld.so.cache,ld.so.preload,machine-id,mime.types,nsswitch.conf,passwd,pki,pulse,resolv.conf,ssl,X11,xdg |
56 | private-tmp | 63 | private-tmp |
57 | 64 | ||
58 | dbus-user none | 65 | dbus-user filter |
66 | # allow D-Bus communication with firefox for opening links | ||
67 | dbus-user.talk org.mozilla.* | ||
68 | |||
59 | dbus-system none | 69 | dbus-system none |