commit:     4524dea9689c94b7b6250d64f4917f7fc9b3a879
Author:     Benda Xu <heroxbd <AT> gentoo <DOT> org>
AuthorDate: Mon Nov 20 03:34:53 2017 +0000
Commit:     Benda XU <heroxbd <AT> gentoo <DOT> org>
CommitDate: Sun Nov 26 01:05:41 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4524dea9

user.eclass: gracefully return when unprivileged

  enewgroup and enewuser does not apply when executed as a normal
  user, e.g. under Gentoo Prefix.

 eclass/user.eclass | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/eclass/user.eclass b/eclass/user.eclass
index 86bcd282479..97e417a7be9 100644
--- a/eclass/user.eclass
+++ b/eclass/user.eclass
@@ -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

Reply via email to