Commit graph

17 commits

Author SHA1 Message Date
Kelvin M. Klann
0060b5105b
profiles: rename disable-X11.inc to disable-x11.inc (#6294)
That is, make "X11" lowercase so that the order of the includes in the
disable- section remain the same when sorted with `LC_ALL=C`, as is the
case for most of the other sections.  That is also likely to be the
default in text editors (such as in vim on Arch), so this should make
the disable- section more consistent and easier to sort when editing the
profile.

Also, keep the old include as a redirect to the new one for now to avoid
breakage.

Commands used to search and replace:

    git mv etc/inc/disable-X11.inc etc/inc/disable-x11.inc
    git grep -Ilz 'disable-X11' -- etc | xargs -0 \
      perl -pi -e 's/disable-X11/disable-x11/'

Relates to #4462 #4854 #6070 #6289.

This is a follow-up to #6286.
2024-03-27 12:13:47 +00:00
glitsj16
30c30f57fe
profiles: Extend node stack support for pnpm (#6063)
* nodejs-common: add pnpm support

* disable-programs.inc: add pnpm support

* Create pnpm.profile

* Create pnpx.profile
2023-10-24 23:53:15 +00:00
glitsj16
63b306179f
profiles: Miscellaneous cleanups (#5918) 2023-07-25 19:32:12 +00:00
netblue30
5d0822c52c private-etc: big profile changes 2023-02-05 10:17:26 -05:00
smitsohu
e4f0f91ebd add restrict-namespaces to (almost) all profiles 2022-12-20 01:39:53 +01:00
rusty-snake
8049562ef2 Remove shell none from profiles
Command: sed -i "/^shell none/d" etc/*/*

TODO:

```
etc/profile-a-l/beaker.profile:ignore shell none
etc/profile-a-l/default.profile:# shell none
etc/profile-a-l/fdns.profile:#shell none
etc/profile-a-l/gnome-nettool.profile:#shell none
etc/profile-a-l/jitsi-meet-desktop.profile:ignore shell none
etc/profile-m-z/pidgin.profile:# shell none
etc/profile-m-z/rocketchat.profile:ignore shell none
etc/profile-m-z/server.profile:# shell none
etc/templates/profile.template:#   OPTIONS (caps*, net*, no*, protocol, seccomp*, shell none, tracelog)
etc/templates/profile.template:#shell none
```

- manpage
- RELNOTES
- fbuilder
2022-06-19 20:53:39 +02:00
glitsj16
376c100779
nodejs-common: fix note 2022-03-21 03:15:06 +00:00
glitsj16
bc185a94c8
nodejs-common: add comment & minor hardening 2022-03-20 07:33:25 +00:00
rusty-snake
ca8603c09d
Move disable-passwordmgr.inc into disable-common.inc/disable-programs.inc (#4461)
See #4454
2021-08-12 17:25:47 +00:00
Kelvin M. Klann
f43382f1e9 Revert "move whitelist/blacklist to allow/deny"
This reverts commit fe0f975f44.

Note: This only reverts the changes from etc.

The 4 aliases introduced on commit 45f2ba544 are mere, well, aliases.
That is, they fail to address the different usability problems discussed
on [#3447][3447] and in fact only make things more confusing (as has
already been mentioned on [this][4379] and later comments).  The main
reason is that the aliases do not meaningfully map to the original
commands.  For example, the commands from each pair below seem like they
would do the exact same thing:

* `allow` and `nodeny`
* `deny` and `noallow`

Additionally, if these aliases are not the final commands, but only a
test/work-in-progress, then keeping the wide-scale search/replace
changes made on commit fe0f975f4 would only serve to cause confusion, as
users of firejail-git, contributors and downstream projects might start
changing the commands used on their profiles, only to later have to
change them again, potentially to completely different commands.

The sooner this is undone the better, as (besides the above reasons) the
more profile changes there are between the original commit and the
revert, the harder it is to e.g.: `git diff` versions of files across
the following revision ranges: before the commit, after the commit but
before the revert and after the revert.  Note: This is still the case
even if a commit is [ignored by `git blame`][4390].

So let us revert fe0f975f4 and only reapply similar large-scale changes
once we have discussed and settled on better commands.

How the revert was applied: Despite using the auto-generated message
from `git revert`, to ensure correctness and to avoid conflicts the
changes were reverted in different steps: Firstly, revert the files
which can be safely reverted directly ("filestorevert"):

    # Find out which files have been changed on fe0f975f44, but have not
    # been changed afterwards and list them on "filestorevert"
    git show --pretty='' --name-only fe0f975f44 -- etc | LC_ALL=C sort >allfiles
    git diff --name-only fe0f975f44..master -- etc | LC_ALL=C sort >filestoignore
    comm -2 -3 allfiles filestoignore >filestorevert

    # Note: There are 3 extra files on filestoignore because they were
    # added after commit fe0f975f44
    wc -l allfiles filestoignore filestorevert | head -n 3
    #   797 allfiles
    #     8 filestoignore
    #   792 filestorevert

    # Automatically revert files in "filestorevert"
    # See https://stackoverflow.com/a/23401018/10095231
    tr '\n' '\000' <filestorevert | xargs -0 git show fe0f975f44 -- |
    git apply --reverse

    printf 'Total files reverted:\n'
    git diff --name-only | wc -l
    # 792

Secondly, do some search/replace on the rest:

    tr '\n' '\000' <filestoignore | xargs -0 sed -i.bak \
      -e 's/allow  /whitelist /' -e 's/noallow  /nowhitelist /' \
      -e 's/deny  /blacklist /' -e 's/nodeny  /noblacklist /' \
      -e 's/deny-nolog  /blacklist-nolog /'

    find etc -name '*.bak' -print0 | xargs -0 rm

Thirdly, verify the result.  The following command shows the difference
between all the changes in etc from before fe0f975f44 and this commit
(inclusive):

    git diff fe0f975f44~1 -- etc

From the output, it looks like all alias changes are fully reverted and
that the other changes to etc (from after fe0f975f44) remain, so the
revert seems to be done correctly.

[3447]: https://github.com/netblue30/firejail/issues/3447
[4379]: https://github.com/netblue30/firejail/issues/4379#issuecomment-876460222
[4390]: https://github.com/netblue30/firejail/issues/4390
2021-07-18 20:39:14 -03:00
netblue30
fe0f975f44 move whitelist/blacklist to allow/deny 2021-07-05 07:23:31 -04:00
glitsj16
699a803f17
Node.js stack refactoring (#4255)
* Create node.profile

* Create node-gyp.profile

* refactor npm as redirect

* Create npx.profile

* Create nvm.profile

* Create semver.profile

* refactor yarn as redirect

* collect node.js stack configuration in common profile

* add ~/.nvm to node section

* account for node-gyp python dependency

* read-only ~/.nvm for node.js stack

* blacklist ~/.nvm for node.js stack

* move env var comment cfr. profile.template

* Delete node-gyp.profile

node-gyp is a shell script with a node shebang. We've got that covered via node.profile.

* Delete npx.profile

npx is a shell script with a node shebang. We've got that covered via node.profile.

* Delete semver.profile

semver is a shell script that calls node. We've got that covered via node.profile.

* add node and nvm to new profiles section
2021-05-08 15:27:30 +00:00
rusty-snake
0cee0ba5a0 Add noinput to all profiles with private-dev 2021-05-05 06:03:18 +00:00
Ted Robertson
d949366f12
Remove comment line advising to look at inline comments 2021-03-11 12:48:38 -10:00
Ted Robertson
464454a510
Document enabling debugging for Node.js 2021-03-11 11:26:16 -10:00
rusty-snake
f18124baa4 Add new allow include allow-bin-sh.inc
/bin/sh is usually just a symlink to bash. However this is not the case
for every distro, debian for example uses dash. bash,dash and sh have a
blacklist command in disable-shell.inc. An own allow-*.inc for it
enusres usage of all necessary nolacklists.

For private-bin sh is enough because it follows symlinks.
2021-01-16 07:46:45 +00:00
glitsj16
37452ef1a7
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
2021-01-11 17:32:31 +00:00