Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: [OPGELOST] Aanmaken meedere samba users  (gelezen 1702 keer)

Offline diesel1000

  • Lid
  • Steunpunt: Nee
[OPGELOST] Aanmaken meedere samba users
« Gepost op: 2011/01/04, 21:16:26 »
Hallo Allemaal,

Met het onderstaande script kun je meerdere users en samba users in een keer aanmaken die is zeer handig als je ubuntu als server gebruikt en b.v. 100 users aan moet maken.

Het script werkt perfect op Linux Fedora Core 12 maar niet op Ubuntu het probleem zit het in --stdin (zie script)
Dit wordt niet herkent in ubuntu.
Heeft iemand hier misschien een oplossing voor.


kopieer script om meerdere users aan te maken in fedora 14 (account users + smbusers en userfiles).

Als eerste maak je een textfile aan in home/names.txt
De inhoud van deze file is alsvolgt:

piet smbuser 1234
cees smbuser 5678

In rij 1 staat de username.
In rij 2 staat de group (let op deze groep moet wel bestaan maak hem desnoods aan in /etc/group).
In rij 3 staat het password.

Maak het 1e onderstaande script aan en noem het usersadd (chmod -R 777).
Zet het script in /home.

Script 1:

#*************************

#!/bin/bash
#
# Ensure that root is running the script.
##
WHOAMI=`/usr/bin/whoami`
if [ $WHOAMI != "root" ]; then
echo "You must be root to add news users!"
exit 1
fi
#
clear
NEW_USERS="/home/names.txt"

cat ${NEW_USERS} | \
while read USER GROUP SMBPASS ; do

groupadd ${GROUP} 2> /dev/null
adduser ${USER} -g ${GROUP}

(echo $SMBPASS; echo $SMBPASS) | passwd --stdin ${USER} > /dev/null
echo Added user ${USER}

smbpasswd -e ${USER} -w ${SMBPASS} > /dev/null
(echo $SMBPASS; echo $SMBPASS) | smbpasswd -as ${USER}
echo -e "${USER} = ${USER}" >> /etc/samba/smbusers
done

#*************************


Wat gebeurd hier:

Als je het script start maakt hij een account aan + een samba account.

*****

 
« Laatst bewerkt op: 2011/01/05, 13:08:58 door diesel1000 »

Offline Scormen

  • Lid
    • LinuxOntdekt.Be
  • Steunpunt: Nee
Re: Aanmaken meedere samba users
« Reactie #1 Gepost op: 2011/01/04, 23:04:19 »
Wijzig

(echo $SMBPASS; echo $SMBPASS) | passwd --stdin ${USER} > /dev/null
Eens naar

(echo $SMBPASS; echo $SMBPASS) | chpasswd ${USER} > /dev/null
Ik heb het niet getest, maar probeer hier eens iets mee.
Ubuntu gebruiker #18341 | Linux gebruiker #456955
· Mijn persoonlijke Linux blog

Offline diesel1000

  • Lid
  • Steunpunt: Nee
Re: Aanmaken meedere samba users
« Reactie #2 Gepost op: 2011/01/05, 09:45:47 »
Hoi Scormen,

Ik heb het onderstaande getest maar het werkt helaas niet.


Option g is ambiguous (gecos, gid, group)
adduser [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID]
[--firstuid ID] [--lastuid ID] [--gecos GECOS] [--ingroup GROUP | --gid ID]
[--disabled-password] [--disabled-login] [--encrypt-home] USER
   Add a normal user

adduser --system [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID]
[--gecos GECOS] [--group | --ingroup GROUP | --gid ID] [--disabled-password]
[--disabled-login] USER
   Add a system user

adduser --group [--gid ID] GROUP
addgroup [--gid ID] GROUP
   Add a user group

addgroup --system [--gid ID] GROUP
   Add a system group

adduser USER GROUP
   Add an existing user to an existing group

general options:
  --quiet | -q      don't give process information to stdout
  --force-badname   allow usernames which do not match the
                    NAME_REGEX[_SYSTEM] configuration variable
  --help | -h       usage message
  --version | -v    version number and copyright
  --conf | -c FILE  use FILE as configuration file

chpasswd: line 1: missing new password
chpasswd: line 2: missing new password
Added user piet
Unable to create directory /var/run/samba for file mutex.tdb. Error was No such file or directory
tdbsam_open: Converting version 0.0 database to version 4.0.
tdbsam_convert_backup: updated /var/lib/samba/passdb.tdb file.
Failed to add entry for user piet.
Option g is ambiguous (gecos, gid, group)
adduser [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID]
[--firstuid ID] [--lastuid ID] [--gecos GECOS] [--ingroup GROUP | --gid ID]
[--disabled-password] [--disabled-login] [--encrypt-home] USER
   Add a normal user

adduser --system [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID]
[--gecos GECOS] [--group | --ingroup GROUP | --gid ID] [--disabled-password]
[--disabled-login] USER
   Add a system user

adduser --group [--gid ID] GROUP
addgroup [--gid ID] GROUP
   Add a user group

addgroup --system [--gid ID] GROUP
   Add a system group

adduser USER GROUP
   Add an existing user to an existing group

general options:
  --quiet | -q      don't give process information to stdout
  --force-badname   allow usernames which do not match the
                    NAME_REGEX[_SYSTEM] configuration variable
  --help | -h       usage message
  --version | -v    version number and copyright
  --conf | -c FILE  use FILE as configuration file

chpasswd: line 1: missing new password
chpasswd: line 2: missing new password
Added user cees
Failed to add entry for user cees.

Offline Thomas de Graaff

  • Lid
  • Steunpunt: Nee
Re: Aanmaken meedere samba users
« Reactie #3 Gepost op: 2011/01/05, 11:42:59 »
Je kan het pakketje expect gebruiken om stdin commando's in te voeren:
sudo apt-get install expect
Vervang vervolgens:
(echo $SMBPASS; echo $SMBPASS) | passwd --stdin ${USER} > /dev/null
door:

send -- "passwd ${USER}\r"
expect "assword:"
send "${SMBPASS}\r"
expect  "assword:"
send "${SMBPASS}\r"
send "\r"
expect eof

Ik heb ooit het pakketje expect ergens anders voor gebruikt, en dat ging prima. Dit heb ik zelf nog niet geprobeerd.

bron: http://bash.cyberciti.biz/security/change-password-shell-script/


Offline Rachid

  • Vertaalteam
    • rachidbm
    • Mijn blog
  • Steunpunt: Nee
Re: Aanmaken meedere samba users
« Reactie #4 Gepost op: 2011/01/05, 12:11:55 »
Thomas, wat bedoel je met assword?
Freudiaanse vertyping? :P
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline Thomas de Graaff

  • Lid
  • Steunpunt: Nee
Re: Aanmaken meedere samba users
« Reactie #5 Gepost op: 2011/01/05, 12:33:23 »
:D

Gewoon copy en paste van de website. Maar ik vraag me nu idd. af of dat wel klopt. Het handigste is het waarschijnlijk om even te kijken in je systeem welke tekst precies bij de vraag om een nieuw wachtwoord staat. Op een Nederlandstalig systeem zijn de (laatste) letters waarschijnlijk niet "assword:".

Offline diesel1000

  • Lid
  • Steunpunt: Nee
Re: Aanmaken meedere samba users
« Reactie #6 Gepost op: 2011/01/05, 12:52:12 »
Hoi Allemaal,

We hebben een werkend script:
Ten eerste het expect script (hiervoor heb ik expect geinstalleerd)

Expect staat in /usr/bin/expect -f

Script 1 scriptnaam setpasswd:

#!/usr/bin/expect -f
# -----------------------------------------------
# Copyright (c) 2006 nixCraft project
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# -------------------------------------------------------------------------
# display usage
if {$argc!=2} {
   send_user "usage: $argv0 username password \n"
   exit
}
# script must be run by root user
set whoami [exec id -u]
if {$whoami!=0} {
   send_user "You must be a root user to run this script\n"
   exit
}
#
set timeout -1
match_max 100000
# store password
set password [lindex $argv 1]
# username
set user [lindex $argv 0]
# opem shell
spawn $env(SHELL)
# send passwd command
send -- "passwd $user\r"
expect "assword:"
send "$password\r"
expect  "assword:"
send "$password\r"
send "\r"
send "exit\r"
expect eof


Script 2 scriptnaam passwdscript:
(Beide scripts staan in /home)

Start Script 2:



#!/bin/bash
#

# Ensure that root is running the script.
WHOAMI=`/usr/bin/whoami`
if [ $WHOAMI != "root" ]; then
echo "You must be root to add news users!"
exit 1
fi
#
clear
NEW_USERS="/home/names.txt"

cat ${NEW_USERS} | \
while read USER GROUP SMBPASS ; do

useradd ${USER}
echo Added user ${USER}
/home/setpasswd ${USER} ${SMBPASS}

smbpasswd -e ${USER} -w ${SMBPASS} > /dev/null
(echo $SMBPASS; echo $SMBPASS) | smbpasswd -as ${USER}
echo -e "${USER} = ${USER}" >> /etc/samba/smbusers
done

Extra Info:

Met het script kun je meerdere users en samba users in een keer aanmaken die is zeer handig als je ubuntu als server gebruikt en b.v. 100 users aan moet maken.

Het script is voor ubuntu geschreven.

Als eerste maak je een textfile aan in home/names.txt
De inhoud van deze file is alsvolgt:

piet 1234
cees 5678

In rij 1 staat de username.
In rij 2 staat het password.

Wat gebeurd er:

Als je het script start (passwdscript) maakt hij een account aan + een samba account.

Met dank aan allen die hierbij geholpen hebben.
« Laatst bewerkt op: 2011/01/06, 09:11:34 door diesel1000 »

Offline diesel1000

  • Lid
  • Steunpunt: Nee
Re: Aanmaken meedere samba users
« Reactie #7 Gepost op: 2011/01/05, 13:10:23 »
:D

Gewoon copy en paste van de website. Maar ik vraag me nu idd. af of dat wel klopt. Het handigste is het waarschijnlijk om even te kijken in je systeem welke tekst precies bij de vraag om een nieuw wachtwoord staat. Op een Nederlandstalig systeem zijn de (laatste) letters waarschijnlijk niet "assword:".


Het Klopt ZEKER  =D