Lines 130-150
Link Here
|
130 |
if [[ -n ${euid} && ${euid} != -1 ]] ; then |
130 |
if [[ -n ${euid} && ${euid} != -1 ]] ; then |
131 |
if [[ ${euid} -gt 0 ]] ; then |
131 |
if [[ ${euid} -gt 0 ]] ; then |
132 |
if [[ -n $(egetent passwd ${euid}) ]] ; then |
132 |
if [[ -n $(egetent passwd ${euid}) ]] ; then |
133 |
euid="next" |
133 |
euid="next available; requested uid taken" |
134 |
fi |
134 |
fi |
135 |
else |
135 |
else |
136 |
eerror "Userid given but is not greater than 0 !" |
136 |
eerror "Userid given but is not greater than 0 !" |
137 |
die "${euid} is not a valid UID" |
137 |
die "${euid} is not a valid UID" |
138 |
fi |
138 |
fi |
139 |
else |
139 |
else |
140 |
euid="next" |
140 |
euid="next available" |
141 |
fi |
141 |
fi |
142 |
if [[ ${euid} == "next" ]] ; then |
|
|
143 |
for ((euid = 101; euid <= 999; euid++)); do |
144 |
[[ -z $(egetent passwd ${euid}) ]] && break |
145 |
done |
146 |
fi |
147 |
opts+=( -u ${euid} ) |
148 |
einfo " - Userid: ${euid}" |
142 |
einfo " - Userid: ${euid}" |
149 |
|
143 |
|
150 |
# handle shell |
144 |
# handle shell |
Lines 217-225
Link Here
|
217 |
einfo " - GECOS: ${comment}" |
211 |
einfo " - GECOS: ${comment}" |
218 |
fi |
212 |
fi |
219 |
|
213 |
|
|
|
214 |
# Some targets need to find the next available UID manually |
215 |
_enewuser_next_uid() { |
216 |
if [[ ${euid} == *[!0-9]* ]] ; then |
217 |
# Non numeric |
218 |
for ((euid = 101; euid <= 999; euid++)) ; do |
219 |
[[ -z $(egetent passwd ${euid}) ]] && break |
220 |
done |
221 |
fi |
222 |
} |
223 |
|
220 |
# add the user |
224 |
# add the user |
221 |
case ${CHOST} in |
225 |
case ${CHOST} in |
222 |
*-darwin*) |
226 |
*-darwin*) |
|
|
227 |
_enewuser_next_uid |
223 |
### Make the user |
228 |
### Make the user |
224 |
dscl . create "/users/${euser}" uid ${euid} |
229 |
dscl . create "/users/${euser}" uid ${euid} |
225 |
dscl . create "/users/${euser}" shell "${eshell}" |
230 |
dscl . create "/users/${euser}" shell "${eshell}" |
Lines 240-251
Link Here
|
240 |
;; |
245 |
;; |
241 |
|
246 |
|
242 |
*-openbsd*) |
247 |
*-openbsd*) |
|
|
248 |
_enewuser_next_uid |
243 |
# all ops the same, except the -g vs -g/-G ... |
249 |
# all ops the same, except the -g vs -g/-G ... |
244 |
useradd -u ${euid} -s "${eshell}" \ |
250 |
useradd -u ${euid} -s "${eshell}" \ |
245 |
-d "${ehome}" -g "${egroups}" "${euser}" || die |
251 |
-d "${ehome}" -g "${egroups}" "${euser}" || die |
246 |
;; |
252 |
;; |
247 |
|
253 |
|
248 |
*) |
254 |
*) |
|
|
255 |
if [[ ${euid} == *[!0-9]* ]] ; then |
256 |
: # Non numeric; let useradd figure out a UID for us |
257 |
else |
258 |
opts+=( -u "${euid}" ) |
259 |
fi |
249 |
useradd -r "${opts[@]}" "${euser}" || die |
260 |
useradd -r "${opts[@]}" "${euser}" || die |
250 |
;; |
261 |
;; |
251 |
esac |
262 |
esac |