aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar netblue30 <netblue30@protonmail.com>2022-03-24 08:27:33 -0400
committerLibravatar GitHub <noreply@github.com>2022-03-24 08:27:33 -0400
commitbb9d651b30d5b1334b7e0ec1ffee8a9f54a2d39a (patch)
treef7dd15b0d9699c01f563dff639a5c36e3170f44f
parentMerge pull request #5052 from kmk3/docs-private-bug (diff)
parentnodejs-common: fix note (diff)
downloadfirejail-bb9d651b30d5b1334b7e0ec1ffee8a9f54a2d39a.tar.gz
firejail-bb9d651b30d5b1334b7e0ec1ffee8a9f54a2d39a.tar.zst
firejail-bb9d651b30d5b1334b7e0ec1ffee8a9f54a2d39a.zip
Merge pull request #5058 from glitsj16/nodejs-nvm
Node.js stack refactoring
-rw-r--r--etc/inc/allow-nodejs.inc2
-rw-r--r--etc/profile-a-l/curl.profile4
-rw-r--r--etc/profile-m-z/node-gyp.profile (renamed from etc/profile-m-z/nvm.profile)8
-rw-r--r--etc/profile-m-z/nodejs-common.profile12
-rw-r--r--etc/profile-m-z/npx.profile11
-rw-r--r--etc/profile-m-z/semver.profile11
-rw-r--r--etc/profile-m-z/sha256sum.profile3
-rw-r--r--etc/profile-m-z/tar.profile3
-rw-r--r--etc/profile-m-z/webstorm.profile2
-rw-r--r--etc/profile-m-z/webui-aria2.profile1
-rw-r--r--etc/profile-m-z/wget.profile4
11 files changed, 53 insertions, 8 deletions
diff --git a/etc/inc/allow-nodejs.inc b/etc/inc/allow-nodejs.inc
index 351c94ab8..f69d9eee2 100644
--- a/etc/inc/allow-nodejs.inc
+++ b/etc/inc/allow-nodejs.inc
@@ -2,6 +2,8 @@
2# Persistent customizations should go in a .local file. 2# Persistent customizations should go in a .local file.
3include allow-nodejs.local 3include allow-nodejs.local
4 4
5ignore read-only ${HOME}/.nvm
6noblacklist ${HOME}/.nvm
5noblacklist ${PATH}/node 7noblacklist ${PATH}/node
6noblacklist /usr/include/node 8noblacklist /usr/include/node
7 9
diff --git a/etc/profile-a-l/curl.profile b/etc/profile-a-l/curl.profile
index 448d8b655..7d7863b6a 100644
--- a/etc/profile-a-l/curl.profile
+++ b/etc/profile-a-l/curl.profile
@@ -18,6 +18,10 @@ noblacklist ${HOME}/.curlrc
18blacklist /tmp/.X11-unix 18blacklist /tmp/.X11-unix
19blacklist ${RUNUSER} 19blacklist ${RUNUSER}
20 20
21# If you use nvm, add the below lines to your curl.local
22#ignore read-only ${HOME}/.nvm
23#noblacklist ${HOME}/.nvm
24
21include disable-common.inc 25include disable-common.inc
22include disable-exec.inc 26include disable-exec.inc
23include disable-programs.inc 27include disable-programs.inc
diff --git a/etc/profile-m-z/nvm.profile b/etc/profile-m-z/node-gyp.profile
index 80da22834..015607087 100644
--- a/etc/profile-m-z/nvm.profile
+++ b/etc/profile-m-z/node-gyp.profile
@@ -1,13 +1,11 @@
1# Firejail profile for nvm 1# Firejail profile for node-gyp
2# Description: Node Version Manager - Simple bash script to manage multiple active node.js versions 2# Description: Part of the Node.js stack
3quiet 3quiet
4# This file is overwritten after every install/update 4# This file is overwritten after every install/update
5# Persistent local customizations 5# Persistent local customizations
6include nvm.local 6include node-gyp.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10ignore noroot
11
12# Redirect 10# Redirect
13include nodejs-common.profile 11include nodejs-common.profile
diff --git a/etc/profile-m-z/nodejs-common.profile b/etc/profile-m-z/nodejs-common.profile
index ab69136f6..dd3080ad9 100644
--- a/etc/profile-m-z/nodejs-common.profile
+++ b/etc/profile-m-z/nodejs-common.profile
@@ -7,7 +7,14 @@ include nodejs-common.local
7# added by caller profile 7# added by caller profile
8#include globals.local 8#include globals.local
9 9
10blacklist /tmp/.X11-unix 10# NOTE: gulp, node-gyp, npm, npx, semver and yarn are all node scripts
11# using the `#!/usr/bin/env node` shebang. By sandboxing node the full
12# node.js stack will be firejailed. The only exception is nvm, which is implemented
13# as a sourced shell function, not an executable binary. Hence it is not
14# directly firejailable. You can work around this by sandboxing the programs
15# used by nvm: curl, sha256sum, tar and wget. We have comments in these
16# profiles on how to enable nvm support via local overrides.
17
11blacklist ${RUNUSER} 18blacklist ${RUNUSER}
12 19
13ignore read-only ${HOME}/.npm-packages 20ignore read-only ${HOME}/.npm-packages
@@ -25,13 +32,13 @@ noblacklist ${HOME}/.yarncache
25noblacklist ${HOME}/.yarnrc 32noblacklist ${HOME}/.yarnrc
26 33
27ignore noexec ${HOME} 34ignore noexec ${HOME}
28
29include allow-bin-sh.inc 35include allow-bin-sh.inc
30 36
31include disable-common.inc 37include disable-common.inc
32include disable-exec.inc 38include disable-exec.inc
33include disable-programs.inc 39include disable-programs.inc
34include disable-shell.inc 40include disable-shell.inc
41include disable-X11.inc
35include disable-xdg.inc 42include disable-xdg.inc
36 43
37# If you want whitelisting, change ${HOME}/Projects below to your node projects directory 44# If you want whitelisting, change ${HOME}/Projects below to your node projects directory
@@ -73,6 +80,7 @@ nodvd
73nogroups 80nogroups
74noinput 81noinput
75nonewprivs 82nonewprivs
83noprinters
76noroot 84noroot
77nosound 85nosound
78notv 86notv
diff --git a/etc/profile-m-z/npx.profile b/etc/profile-m-z/npx.profile
new file mode 100644
index 000000000..6d5602c88
--- /dev/null
+++ b/etc/profile-m-z/npx.profile
@@ -0,0 +1,11 @@
1# Firejail profile for npx
2# Description: Part of the Node.js stack
3quiet
4# This file is overwritten after every install/update
5# Persistent local customizations
6include npx.local
7# Persistent global definitions
8include globals.local
9
10# Redirect
11include nodejs-common.profile
diff --git a/etc/profile-m-z/semver.profile b/etc/profile-m-z/semver.profile
new file mode 100644
index 000000000..3e0c19b8b
--- /dev/null
+++ b/etc/profile-m-z/semver.profile
@@ -0,0 +1,11 @@
1# Firejail profile for semver
2# Description: Part of the Node.js stack
3quiet
4# This file is overwritten after every install/update
5# Persistent local customizations
6include semver.local
7# Persistent global definitions
8include globals.local
9
10# Redirect
11include nodejs-common.profile
diff --git a/etc/profile-m-z/sha256sum.profile b/etc/profile-m-z/sha256sum.profile
index 48944ebea..45ddecd2d 100644
--- a/etc/profile-m-z/sha256sum.profile
+++ b/etc/profile-m-z/sha256sum.profile
@@ -7,6 +7,9 @@ include sha256sum.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10# If you use nvm, add the below lines to your sha256sum.local
11#noblacklist ${HOME}/.nvm
12
10private-bin sha256sum 13private-bin sha256sum
11 14
12# Redirect 15# Redirect
diff --git a/etc/profile-m-z/tar.profile b/etc/profile-m-z/tar.profile
index 0817adda8..a9d0a60d1 100644
--- a/etc/profile-m-z/tar.profile
+++ b/etc/profile-m-z/tar.profile
@@ -7,6 +7,9 @@ include tar.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10# If you use nvm, add the below lines to your tar.local
11#noblacklist ${HOME}/.nvm
12
10# Included in archiver-common.profile 13# Included in archiver-common.profile
11ignore include disable-shell.inc 14ignore include disable-shell.inc
12 15
diff --git a/etc/profile-m-z/webstorm.profile b/etc/profile-m-z/webstorm.profile
index 4d849c582..52d2091fe 100644
--- a/etc/profile-m-z/webstorm.profile
+++ b/etc/profile-m-z/webstorm.profile
@@ -18,8 +18,8 @@ include allow-common-devel.inc
18# Allow ssh (blacklisted by disable-common.inc) 18# Allow ssh (blacklisted by disable-common.inc)
19include allow-ssh.inc 19include allow-ssh.inc
20 20
21noblacklist ${PATH}/node
22noblacklist ${HOME}/.nvm 21noblacklist ${HOME}/.nvm
22noblacklist ${PATH}/node
23 23
24include disable-common.inc 24include disable-common.inc
25include disable-devel.inc 25include disable-devel.inc
diff --git a/etc/profile-m-z/webui-aria2.profile b/etc/profile-m-z/webui-aria2.profile
index 2fe727b9c..1aa546a29 100644
--- a/etc/profile-m-z/webui-aria2.profile
+++ b/etc/profile-m-z/webui-aria2.profile
@@ -6,6 +6,7 @@ include webui-aria2.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.nvm
9noblacklist ${PATH}/node 10noblacklist ${PATH}/node
10 11
11include disable-common.inc 12include disable-common.inc
diff --git a/etc/profile-m-z/wget.profile b/etc/profile-m-z/wget.profile
index 4c21d6965..82af30d2a 100644
--- a/etc/profile-m-z/wget.profile
+++ b/etc/profile-m-z/wget.profile
@@ -11,6 +11,10 @@ noblacklist ${HOME}/.netrc
11noblacklist ${HOME}/.wget-hsts 11noblacklist ${HOME}/.wget-hsts
12noblacklist ${HOME}/.wgetrc 12noblacklist ${HOME}/.wgetrc
13 13
14# If you use nvm, add the below lines to your wget.local
15#ignore read-only ${HOME}/.nvm
16#noblacklist ${HOME}/.nvm
17
14blacklist /tmp/.X11-unix 18blacklist /tmp/.X11-unix
15blacklist ${RUNUSER} 19blacklist ${RUNUSER}
16 20