mirror of
https://github.com/netblue30/firejail.git
synced 2026-05-15 14:16:14 -06:00
refactor nodejs applications (npm & yarn) (#3876)
* add yarn & reorder * add node-gyp & yarn files * Create nodejs-common.profile * Create yarn.profile * refactor npm.profile * add new profile: yarn * read-only's for npm/yarn Thanks to the [suggestion](https://github.com/netblue30/firejail/pull/3876#pullrequestreview-564682989) from @kmk3. * ignore read-only's for npm As [suggested](https://github.com/netblue30/firejail/pull/3876#pullrequestreview-564682989) by @kmk3. * ignore read-only for yarn As suggested in https://github.com/netblue30/firejail/pull/3876#pullrequestreview-564682989 by @kmk3. * remove quiet from nodejs-common.profile quiet should go into the caller profiles instead * add quiet to npm.profile Thanks @rusty-snake for the review. * re-ordering some options * re-ordering
This commit is contained in:
parent
2c85ded2b0
commit
37452ef1a7
7 changed files with 109 additions and 49 deletions
|
|
@ -195,4 +195,4 @@ Stats:
|
||||||
|
|
||||||
### New profiles:
|
### New profiles:
|
||||||
|
|
||||||
spectacle, chromium-browser-privacy, gtk-straw-viewer, gtk-youtube-viewer, gtk2-youtube-viewer, gtk3-youtube-viewer, straw-viewer, lutris, dolphin-emu, authenticator-rs, servo, tutanota-desktop, npm, marker
|
spectacle, chromium-browser-privacy, gtk-straw-viewer, gtk-youtube-viewer, gtk2-youtube-viewer, gtk3-youtube-viewer, straw-viewer, lutris, dolphin-emu, authenticator-rs, servo, tutanota-desktop, npm, marker, yarn
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,15 @@ noblacklist ${HOME}/.git-credentials
|
||||||
noblacklist ${HOME}/.gradle
|
noblacklist ${HOME}/.gradle
|
||||||
noblacklist ${HOME}/.java
|
noblacklist ${HOME}/.java
|
||||||
|
|
||||||
|
# Node.js
|
||||||
|
noblacklist ${HOME}/.node-gyp
|
||||||
|
noblacklist ${HOME}/.npm
|
||||||
|
noblacklist ${HOME}/.npmrc
|
||||||
|
noblacklist ${HOME}/.yarn
|
||||||
|
noblacklist ${HOME}/.yarn-config
|
||||||
|
noblacklist ${HOME}/.yarncache
|
||||||
|
noblacklist ${HOME}/.yarnrc
|
||||||
|
|
||||||
# Python
|
# Python
|
||||||
noblacklist ${HOME}/.pylint.d
|
noblacklist ${HOME}/.pylint.d
|
||||||
noblacklist ${HOME}/.python-history
|
noblacklist ${HOME}/.python-history
|
||||||
|
|
@ -25,7 +34,3 @@ noblacklist ${HOME}/.cargo/registry
|
||||||
noblacklist ${HOME}/.cargo/.crates.toml
|
noblacklist ${HOME}/.cargo/.crates.toml
|
||||||
noblacklist ${HOME}/.cargo/.crates2.json
|
noblacklist ${HOME}/.cargo/.crates2.json
|
||||||
noblacklist ${HOME}/.cargo/.package-cache
|
noblacklist ${HOME}/.cargo/.package-cache
|
||||||
|
|
||||||
# npm
|
|
||||||
noblacklist ${HOME}/.npm
|
|
||||||
noblacklist ${HOME}/.npmrc
|
|
||||||
|
|
|
||||||
|
|
@ -310,6 +310,7 @@ read-only ${HOME}/.msmtprc
|
||||||
read-only ${HOME}/.mutt/muttrc
|
read-only ${HOME}/.mutt/muttrc
|
||||||
read-only ${HOME}/.muttrc
|
read-only ${HOME}/.muttrc
|
||||||
read-only ${HOME}/.nano
|
read-only ${HOME}/.nano
|
||||||
|
read-only ${HOME}/.npmrc
|
||||||
read-only ${HOME}/.pythonrc.py
|
read-only ${HOME}/.pythonrc.py
|
||||||
read-only ${HOME}/.reportbugrc
|
read-only ${HOME}/.reportbugrc
|
||||||
read-only ${HOME}/.tmux.conf
|
read-only ${HOME}/.tmux.conf
|
||||||
|
|
@ -318,6 +319,7 @@ read-only ${HOME}/.viminfo
|
||||||
read-only ${HOME}/.vimrc
|
read-only ${HOME}/.vimrc
|
||||||
read-only ${HOME}/.xmonad
|
read-only ${HOME}/.xmonad
|
||||||
read-only ${HOME}/.xscreensaver
|
read-only ${HOME}/.xscreensaver
|
||||||
|
read-only ${HOME}/.yarnrc
|
||||||
read-only ${HOME}/_exrc
|
read-only ${HOME}/_exrc
|
||||||
read-only ${HOME}/_gvimrc
|
read-only ${HOME}/_gvimrc
|
||||||
read-only ${HOME}/_vimrc
|
read-only ${HOME}/_vimrc
|
||||||
|
|
|
||||||
|
|
@ -761,6 +761,7 @@ blacklist ${HOME}/.neverball
|
||||||
blacklist ${HOME}/.newsbeuter
|
blacklist ${HOME}/.newsbeuter
|
||||||
blacklist ${HOME}/.newsboat
|
blacklist ${HOME}/.newsboat
|
||||||
blacklist ${HOME}/.nicotine
|
blacklist ${HOME}/.nicotine
|
||||||
|
blacklist ${HOME}/.node-gyp
|
||||||
blacklist ${HOME}/.npm
|
blacklist ${HOME}/.npm
|
||||||
blacklist ${HOME}/.npmrc
|
blacklist ${HOME}/.npmrc
|
||||||
blacklist ${HOME}/.nv
|
blacklist ${HOME}/.nv
|
||||||
|
|
@ -849,6 +850,10 @@ blacklist ${HOME}/.xmr-stak
|
||||||
blacklist ${HOME}/.xonotic
|
blacklist ${HOME}/.xonotic
|
||||||
blacklist ${HOME}/.xournalpp
|
blacklist ${HOME}/.xournalpp
|
||||||
blacklist ${HOME}/.xpdfrc
|
blacklist ${HOME}/.xpdfrc
|
||||||
|
blacklist ${HOME}/.yarn
|
||||||
|
blacklist ${HOME}/.yarn-config
|
||||||
|
blacklist ${HOME}/.yarncache
|
||||||
|
blacklist ${HOME}/.yarnrc
|
||||||
blacklist ${HOME}/.zoom
|
blacklist ${HOME}/.zoom
|
||||||
blacklist /tmp/akonadi-*
|
blacklist /tmp/akonadi-*
|
||||||
blacklist /tmp/ssh-*
|
blacklist /tmp/ssh-*
|
||||||
|
|
|
||||||
54
etc/profile-m-z/nodejs-common.profile
Normal file
54
etc/profile-m-z/nodejs-common.profile
Normal file
|
|
@ -0,0 +1,54 @@
|
||||||
|
# Firejail profile for Node.js
|
||||||
|
# Description: Common profile for npm/yarn
|
||||||
|
# This file is overwritten after every install/update
|
||||||
|
# Persistent local customizations
|
||||||
|
include nodejs-common.local
|
||||||
|
# Persistent global definitions
|
||||||
|
# added by caller profile
|
||||||
|
#include globals.local
|
||||||
|
|
||||||
|
blacklist /tmp/.X11-unix
|
||||||
|
blacklist ${RUNUSER}
|
||||||
|
|
||||||
|
ignore noexec ${HOME}
|
||||||
|
|
||||||
|
noblacklist ${PATH}/bash
|
||||||
|
noblacklist ${PATH}/dash
|
||||||
|
noblacklist ${PATH}/sh
|
||||||
|
|
||||||
|
include disable-common.inc
|
||||||
|
include disable-exec.inc
|
||||||
|
include disable-passwdmgr.inc
|
||||||
|
include disable-programs.inc
|
||||||
|
include disable-shell.inc
|
||||||
|
include disable-xdg.inc
|
||||||
|
|
||||||
|
include whitelist-runuser-common.inc
|
||||||
|
include whitelist-usr-share-common.inc
|
||||||
|
include whitelist-var-common.inc
|
||||||
|
|
||||||
|
caps.drop all
|
||||||
|
ipc-namespace
|
||||||
|
machine-id
|
||||||
|
netfilter
|
||||||
|
no3d
|
||||||
|
nodvd
|
||||||
|
nogroups
|
||||||
|
nonewprivs
|
||||||
|
noroot
|
||||||
|
nosound
|
||||||
|
notv
|
||||||
|
nou2f
|
||||||
|
novideo
|
||||||
|
protocol unix,inet,inet6,netlink
|
||||||
|
seccomp
|
||||||
|
seccomp.block-secondary
|
||||||
|
shell none
|
||||||
|
|
||||||
|
disable-mnt
|
||||||
|
private-dev
|
||||||
|
private-etc alternatives,ca-certificates,crypto-policies,host.conf,hostname,hosts,ld.so.cache,ld.so.conf,ld.so.conf.d,ld.so.preload,locale,locale.alias,locale.conf,localtime,login.defs,mime.types,nsswitch.conf,pki,protocols,resolv.conf,rpc,services,ssl,xdg
|
||||||
|
private-tmp
|
||||||
|
|
||||||
|
dbus-user none
|
||||||
|
dbus-system none
|
||||||
|
|
@ -1,64 +1,29 @@
|
||||||
# Firejail profile for npm
|
# Firejail profile for npm
|
||||||
# Description: The Node.js Package Manager
|
# Description: The Node.js Package Manager
|
||||||
|
quiet
|
||||||
# This file is overwritten after every install/update
|
# This file is overwritten after every install/update
|
||||||
# Persistent local customizations
|
# Persistent local customizations
|
||||||
include npm.local
|
include npm.local
|
||||||
# Persistent global definitions
|
# Persistent global definitions
|
||||||
include globals.local
|
include globals.local
|
||||||
|
|
||||||
blacklist /tmp/.X11-unix
|
ignore read-only ${HOME}/.npm-packages
|
||||||
blacklist ${RUNUSER}
|
ignore read-only ${HOME}/.npmrc
|
||||||
|
|
||||||
|
noblacklist ${HOME}/.node-gyp
|
||||||
noblacklist ${HOME}/.npm
|
noblacklist ${HOME}/.npm
|
||||||
noblacklist ${HOME}/.npmrc
|
noblacklist ${HOME}/.npmrc
|
||||||
|
|
||||||
noblacklist ${PATH}/bash
|
# If you want whitelisting, change ${HOME}/Projects below to your npm projects directory
|
||||||
noblacklist ${PATH}/dash
|
|
||||||
noblacklist ${PATH}/sh
|
|
||||||
|
|
||||||
ignore noexec ${HOME}
|
|
||||||
|
|
||||||
include disable-common.inc
|
|
||||||
include disable-exec.inc
|
|
||||||
include disable-passwdmgr.inc
|
|
||||||
include disable-programs.inc
|
|
||||||
include disable-shell.inc
|
|
||||||
include disable-xdg.inc
|
|
||||||
|
|
||||||
# If you want whitelisting, change the line below to your npm projects directory
|
|
||||||
# and uncomment the lines below.
|
# and uncomment the lines below.
|
||||||
|
#mkdir ${HOME}/.node-gyp
|
||||||
#mkdir ${HOME}/.npm
|
#mkdir ${HOME}/.npm
|
||||||
#mkfile ${HOME}/.npmrc
|
#mkfile ${HOME}/.npmrc
|
||||||
|
#whitelist ${HOME}/.node-gyp
|
||||||
#whitelist ${HOME}/.npm
|
#whitelist ${HOME}/.npm
|
||||||
#whitelist ${HOME}/.npmrc
|
#whitelist ${HOME}/.npmrc
|
||||||
#whitelist ${HOME}/Projects
|
#whitelist ${HOME}/Projects
|
||||||
#include whitelist-common.inc
|
#include whitelist-common.inc
|
||||||
include whitelist-runuser-common.inc
|
|
||||||
include whitelist-usr-share-common.inc
|
|
||||||
include whitelist-var-common.inc
|
|
||||||
|
|
||||||
caps.drop all
|
# Redirect
|
||||||
ipc-namespace
|
include nodejs-common.profile
|
||||||
machine-id
|
|
||||||
netfilter
|
|
||||||
no3d
|
|
||||||
nodvd
|
|
||||||
nogroups
|
|
||||||
nonewprivs
|
|
||||||
noroot
|
|
||||||
nosound
|
|
||||||
notv
|
|
||||||
nou2f
|
|
||||||
novideo
|
|
||||||
protocol unix,inet,inet6,netlink
|
|
||||||
seccomp
|
|
||||||
seccomp.block-secondary
|
|
||||||
shell none
|
|
||||||
|
|
||||||
disable-mnt
|
|
||||||
private-dev
|
|
||||||
private-etc alternatives,ca-certificates,crypto-policies,host.conf,hostname,hosts,ld.so.cache,ld.so.conf,ld.so.conf.d,ld.so.preload,locale,locale.alias,locale.conf,localtime,login.defs,mime.types,nsswitch.conf,pki,protocols,resolv.conf,rpc,services,ssl,xdg
|
|
||||||
private-tmp
|
|
||||||
|
|
||||||
dbus-user none
|
|
||||||
dbus-system none
|
|
||||||
|
|
|
||||||
29
etc/profile-m-z/yarn.profile
Normal file
29
etc/profile-m-z/yarn.profile
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
# Firejail profile for yarn
|
||||||
|
# Description: Fast, reliable, and secure dependency management
|
||||||
|
quiet
|
||||||
|
# Persistent local customizations
|
||||||
|
include yarn.local
|
||||||
|
# Persistent global definitions
|
||||||
|
include globals.local
|
||||||
|
|
||||||
|
ignore read-only ${HOME}/.yarnrc
|
||||||
|
|
||||||
|
noblacklist ${HOME}/.yarn
|
||||||
|
noblacklist ${HOME}/.yarn-config
|
||||||
|
noblacklist ${HOME}/.yarncache
|
||||||
|
noblacklist ${HOME}/.yarnrc
|
||||||
|
|
||||||
|
# If you want whitelisting, change ${HOME}/Projects below to your yarn projects directory and uncomment the lines below.
|
||||||
|
#mkdir ${HOME}/.yarn
|
||||||
|
#mkdir ${HOME}/.yarn-config
|
||||||
|
#mkdir ${HOME}/.yarncache
|
||||||
|
#mkfile ${HOME}/.yarnrc
|
||||||
|
#whitelist ${HOME}/.yarn
|
||||||
|
#whitelist ${HOME}/.yarn-config
|
||||||
|
#whitelist ${HOME}/.yarncache
|
||||||
|
#whitelist ${HOME}/.yarnrc
|
||||||
|
#whitelist ${HOME}/Projects
|
||||||
|
#include whitelist-common.inc
|
||||||
|
|
||||||
|
# Redirect
|
||||||
|
include nodejs-common.profile
|
||||||
Loading…
Add table
Add a link
Reference in a new issue