Das Paket shadow-useradd stellt den Befehl "useradd" zur Verfügung. Der Befehl su befindet sich in shadow-su
opkg update; opkg install shadow-useradd shadow-su
OpenWrt ist nicht als Multiuser-System gedacht, es fehlen adduser und addgroup. Dieses Script vereinfacht das Erstellen weiterer User. Man kann es mit oder ohne Parameter aufrufen. Am einfachsten geht es mit:
addusergroup.sh username
Das Script findet selber die nächste uid (beginnend ab 1000). Man kann auch selber die uid bestimmen als 2. Option.
Das Script kann unten herunter geladen werden. Unter OpenWrt installiert man es einfach mit:
cd /usr/bin w get http://www.inetcom.ch/sites/default/files/usergroupadd.script # remove space between w get! mv usergroupadd.script usergroupadd.sh chmod +x usergroupadd.sh
#!/bin/sh
# version 0.1 20121209 iNetCom/Jan Holler
login=$1
uid=$2
passwdf="/etc/passwd"
passwdfmin="/etc/passwd-"
shadowf="/etc/shadow"
shadowfmin="/etc/shadow-"
groupf="/etc/group"
smbpasswdf="/etc/samba/smbpasswd"
homerootdir="/home"
shell="/bin/ash"
echo "Add a new user:"
if [ "$1" != "" ] ; then
login=$1
else
echo -n "login: " ; read login
fi
# change '5000' for the top end of your allowed uids
username=`grep $login $passwdf|awk -F : '{print $1}'`
if [ "$username" = "$login" ]; then
echo "ERROR: The user $login already exists, so please use a different login name."
exit 1
else
echo "using username: $login"
fi
if expr "$2" : '-\?[0-9]\+$' >/dev/null ; then
uid=$2
else
uid="$(awk -F: '{ if (big < $3 && $3 < 5000) big=$3 } END { print big + 1 }' $passwdf)"
# set to new user layout (fedora) starting uids from 1000 on
if [ $uid -lt 1000 ] ; then
uid=1000
fi
fi
userid=`grep $uid $passwdf|awk -F : '{print $1}'`
if [ "$userid" = "$uid" ]; then
echo "ERROR: The userid $uid already exists, so please use a different userid."
exit 1
else
echo "using uid/guid: $uid"
fi
homedir=$homerootdir/$login
# gid=uid as in Fedora
gid=$uid
echo -n "Optional: full name: " ; read fullname
#echo -n "shell: " ; read shell
if [ "$fullname" = "" ] ; then
fullname=$login
fi
echo ${login}:x:${uid}:${gid}:${fullname}:${homedir}:$shell >> $passwdf
echo ${login}:*:${uid}:${gid}:${fullname}:${homedir}:$shell >> $passwdfmin
echo ${login}:*:11647:0:99999:7::: >> $shadowf
echo ${login}:*:11647:0:99999:7::: >> $shadowfmin
echo "${login}:x:${gid}:$login" >> $groupf
if [ ! -d "$homerootdir" ]; then
mkdir $homerootdir
fi
if [ ! -d "$homedir" ]; then
mkdir $homedir
fi
#cp -R /etc/skel/.[a-zA-Z]* $homedir
chmod 755 $homedir
find $homedir -print | xargs chown ${login}:$login
passwd $login
exit 0
Anhang | Größe |
---|---|
usergroupadd.script | 1.83 KB |