``/proc`` might be mounted with ``hidepid=2``.
This makes ``/proc/1/…`` appear absent for non-root users.
When using the templates or the nvidia hook as a non-root user
(e.g., when creating unprivileged containers) the error
"/proc/1/uid_map: No such file or directory" is printed.
Since the script works correctly despite the error, this error
message might be confusing for users.
Signed-off-by: Lukas Pirl <git@lukas-pirl.de>
echo $fields | grep -q " 0 1$" && { echo userns-root; return; } || true
done < /proc/self/uid_map
- [ "$(cat /proc/self/uid_map)" = "$(cat /proc/1/uid_map)" ] && \
- { echo userns-root; return; }
+ if [ -e /proc/1/uid_map ]; then
+ if [ "$(cat /proc/self/uid_map)" = "$(cat /proc/1/uid_map)" ]; then
+ echo userns-root
+ return
+ fi
+ fi
echo yes
}
fi
done < /proc/self/uid_map
- [ "$(cat /proc/self/uid_map)" = "$(cat /proc/1/uid_map)" ] && { echo userns-root; return; }
+ if [ -e /proc/1/uid_map ]; then
+ if [ "$(cat /proc/self/uid_map)" = "$(cat /proc/1/uid_map)" ]; then
+ echo userns-root
+ return
+ fi
+ fi
echo yes
}
fi
done < /proc/self/uid_map
- [ "$(cat /proc/self/uid_map)" = "$(cat /proc/1/uid_map)" ] && { echo userns-root; return; }
+ if [ -e /proc/1/uid_map ]; then
+ if [ "$(cat /proc/self/uid_map)" = "$(cat /proc/1/uid_map)" ]; then
+ echo userns-root
+ return
+ fi
+ fi
echo yes
}
fi
done < /proc/self/uid_map
- [ "$(cat /proc/self/uid_map)" = "$(cat /proc/1/uid_map)" ] && { echo userns-root; return; }
- echo yes
+ if [ -e /proc/1/uid_map ]; then
+ if [ "$(cat /proc/self/uid_map)" = "$(cat /proc/1/uid_map)" ]; then
+ echo userns-root
+ return
+ fi
+ fi
+ echo yes
}
usage() {
fi
done < /proc/self/uid_map
- [ "$(cat /proc/self/uid_map)" = "$(cat /proc/1/uid_map)" ] && { echo userns-root; return; }
+ if [ -e /proc/1/uid_map ]; then
+ if [ "$(cat /proc/self/uid_map)" = "$(cat /proc/1/uid_map)" ]; then
+ echo userns-root
+ return
+ fi
+ fi
echo yes
}