user.eclass: gracefully return when unprivileged
authorBenda Xu <heroxbd@gentoo.org>
Mon, 20 Nov 2017 03:34:53 +0000 (12:34 +0900)
committerBenda Xu <heroxbd@gentoo.org>
Sun, 26 Nov 2017 01:05:41 +0000 (10:05 +0900)
  enewgroup and enewuser does not apply when executed as a normal
  user, e.g. under Gentoo Prefix.

eclass/user.eclass

index 86bcd282479f24ad4ea28d9371e8e7f40f9dbdfe..97e417a7be9de6b7eec1712a844aef739edb8ff6 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: user.eclass
@@ -103,6 +103,10 @@ egetent() {
 # Default uid is (pass -1 for this) next available, default shell is
 # /bin/false, default homedir is /dev/null, and there are no default groups.
 enewuser() {
+       if [[ ${EUID} != 0 ]] ; then
+               einfo "Insufficient privileges to execute ${FUNCNAME[0]}"
+               return 0
+       fi
        _assert_pkg_ebuild_phase ${FUNCNAME}
 
        # get the username
@@ -262,6 +266,10 @@ enewuser() {
 # do the rest.  You may specify the gid for the group or allow the group to
 # allocate the next available one.
 enewgroup() {
+       if [[ ${EUID} != 0 ]] ; then
+               einfo "Insufficient privileges to execute ${FUNCNAME[0]}"
+               return 0
+       fi
        _assert_pkg_ebuild_phase ${FUNCNAME}
 
        # get the group