Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 479384
Collapse All | Expand All

(-)/mnt/portage/portage/eclass/user.eclass (-8 / +20 lines)
Lines 16-21 Link Here
16
if [[ ${___ECLASS_ONCE_USER} != "recur -_+^+_- spank" ]] ; then
16
if [[ ${___ECLASS_ONCE_USER} != "recur -_+^+_- spank" ]] ; then
17
___ECLASS_ONCE_USER="recur -_+^+_- spank"
17
___ECLASS_ONCE_USER="recur -_+^+_- spank"
18
18
19
DEPEND="sys-auth/pambase
20
		sys-apps/shadow"
21
RDEPEND="${DEPEND}"
22
19
# @FUNCTION: _assert_pkg_ebuild_phase
23
# @FUNCTION: _assert_pkg_ebuild_phase
20
# @INTERNAL
24
# @INTERNAL
21
# @USAGE: <calling func name>
25
# @USAGE: <calling func name>
Lines 92-100 Link Here
92
		grep "${key}:\*:" /etc/${db}
96
		grep "${key}:\*:" /etc/${db}
93
		;;
97
		;;
94
	*)
98
	*)
95
		# ignore output if nscd doesn't exist, or we're not running as root
99
		# If we are installing to a root other than / the normal getent
96
		nscd -i "${db}" 2>/dev/null
100
		# won't work so we'll have to grep the database instead.
97
		getent "${db}" "${key}"
101
		if [[ -n ${ROOT} ]] && [[ ${ROOT} != "/" ]]; then
102
			[[ -f ${ROOT}/etc/${db} ]] && grep "${key}:*:" ${ROOT}/etc/${db}
103
		else
104
			# ignore output if nscd doesn't exist, or we're not running as root
105
			nscd -i "${db}" 2>/dev/null
106
			getent "${db}" "${key}"
107
		fi
98
		;;
108
		;;
99
	esac
109
	esac
100
}
110
}
Lines 118-126 Link Here
118
128
119
	# lets see if the username already exists
129
	# lets see if the username already exists
120
	if [[ -n $(egetent passwd "${euser}") ]] ; then
130
	if [[ -n $(egetent passwd "${euser}") ]] ; then
131
		einfo "User '${euser}' already present [at ${ROOT}]..."
121
		return 0
132
		return 0
122
	fi
133
	fi
123
	einfo "Adding user '${euser}' to your system ..."
134
	einfo "Adding user '${euser}' to your system [at ${ROOT}]..."
124
135
125
	# options to pass to useradd
136
	# options to pass to useradd
126
	local opts=()
137
	local opts=()
Lines 247-253 Link Here
247
		;;
258
		;;
248
259
249
	*)
260
	*)
250
		useradd -r "${opts[@]}" "${euser}" || die
261
		useradd -R ${ROOT} -r "${opts[@]}" "${euser}" || die
251
		;;
262
		;;
252
	esac
263
	esac
253
264
Lines 278-286 Link Here
278
289
279
	# see if group already exists
290
	# see if group already exists
280
	if [[ -n $(egetent group "${egroup}") ]] ; then
291
	if [[ -n $(egetent group "${egroup}") ]] ; then
292
		einfo "Group '${egroup}' already present [at ${ROOT}]..."
281
		return 0
293
		return 0
282
	fi
294
	fi
283
	einfo "Adding group '${egroup}' to your system ..."
295
	einfo "Adding group '${egroup}' to your system [at ${ROOT}]..."
284
296
285
	# handle gid
297
	# handle gid
286
	local egid=$1; shift
298
	local egid=$1; shift
Lines 340-346 Link Here
340
			opts="-g ${egid}"
352
			opts="-g ${egid}"
341
		fi
353
		fi
342
		# We specify -r so that we get a GID in the system range from login.defs
354
		# We specify -r so that we get a GID in the system range from login.defs
343
		groupadd -r ${opts} "${egroup}" || die
355
		groupadd -R ${ROOT} -r ${opts} "${egroup}" || die
344
		;;
356
		;;
345
	esac
357
	esac
346
}
358
}
Lines 454-460 Link Here
454
		;;
466
		;;
455
467
456
	*)
468
	*)
457
		usermod -d "${ehome}" "${euser}" && return 0
469
		usermod -R ${ROOT} -d "${ehome}" "${euser}" && return 0
458
		[[ $? == 8 ]] && eerror "${euser} is in use, cannot update home"
470
		[[ $? == 8 ]] && eerror "${euser} is in use, cannot update home"
459
		eerror "There was an error when attempting to update the home directory for ${euser}"
471
		eerror "There was an error when attempting to update the home directory for ${euser}"
460
		eerror "Please update it manually on your system (as root):"
472
		eerror "Please update it manually on your system (as root):"

Return to bug 479384