summaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2023-05-02 10:44:14 +0200
committerLennart Poettering <lennart@poettering.net>2023-05-02 12:06:03 +0200
commit7243cefec10ecab1248a26f443b797a8655fc14d (patch)
tree95b2aa55fd095bb2916e7590031c7b264cced260 /src/shared
parentab13274a19ee310ed8569612a862b977d054ed6c (diff)
downloadsystemd-7243cefec10ecab1248a26f443b797a8655fc14d.tar.gz
base-filesystem: create /proc, /sys, /dev mount points as 0555
These inodes are going to be overmounted anyway, hence let's create them with access mode 555, so that they are as close to being immutable as regular UNIX access modes allow them to be. In other words: this takes the "w" mode away for root. This of course usually has little effect -- unless CAP_DAC_OVERRIDE is dropped. But at the very least it makes the point clear that inodes should be considered immutable. (I intended to make this 0000 originally, but that doesn't work, as many tools – including our own – have fallback paths that when they see ENOENT in /proc/ they can handle this gracefully. But changing the mode to 000 would turn this to EACCES - something they usually have no fallback path for)
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/base-filesystem.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/shared/base-filesystem.c b/src/shared/base-filesystem.c
index 5890f30383..f2161041c8 100644
--- a/src/shared/base-filesystem.c
+++ b/src/shared/base-filesystem.c
@@ -36,9 +36,9 @@ static const BaseFilesystem table[] = {
{ "usr", 0755, NULL, NULL },
{ "var", 0755, NULL, NULL },
{ "etc", 0755, NULL, NULL },
- { "proc", 0755, NULL, NULL, true },
- { "sys", 0755, NULL, NULL, true },
- { "dev", 0755, NULL, NULL, true },
+ { "proc", 0555, NULL, NULL, true },
+ { "sys", 0555, NULL, NULL, true },
+ { "dev", 0555, NULL, NULL, true },
/* Various architecture ABIs define the path to the dynamic loader via the /lib64/ subdirectory of
* the root directory. When booting from an otherwise empty root file system (where only /usr/ has