]> git.proxmox.com Git - mirror_lxc.git/commitdiff
suppress false-negative error in templates and nvidia hook
authorLukas Pirl <git@lukas-pirl.de>
Mon, 22 Jul 2019 12:29:52 +0000 (14:29 +0200)
committerLukas Pirl <git@lukas-pirl.de>
Mon, 22 Jul 2019 12:39:23 +0000 (14:39 +0200)
``/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>
hooks/nvidia
templates/lxc-busybox.in
templates/lxc-download.in
templates/lxc-local.in
templates/lxc-oci.in

index fa943e387a53b2d9e46103bf19d4c48ea998a96e..c105148087ae93171a3ac93f87d5f1410b691b79 100755 (executable)
@@ -58,8 +58,12 @@ in_userns() {
         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
 }
 
index c9f39872e3a04abacfa720827d8ebe3ac69aecc5..2e5906440858106f18ccc43a3c698d62b94ba834 100644 (file)
@@ -42,7 +42,12 @@ in_userns() {
     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
 }
 
index 413b85f35bb65a9beaffe5d08e4a534741986fa0..d05b995d113056818ffbda22c0aefca32aad0152 100644 (file)
@@ -179,7 +179,12 @@ in_userns() {
     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
 }
 
index 552a4946de4903fe21690f79efae1086bba07fc6..d0d739aae677761b68db22cf8c2ae220d8de8ed8 100644 (file)
@@ -51,8 +51,13 @@ in_userns() {
     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() {
index 110d03cb623d369ec932d62b4acca95a417b5b85..8017c38c1ee548f50ba45515d2139580ca9510ee 100644 (file)
@@ -62,7 +62,12 @@ in_userns() {
     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
 }