[UNIX] useradd naar een ander passwd bestand laten schrijven

Pagina: 1
Acties:
  • 608 views sinds 30-01-2008
  • Reageer

  • aaajeetee
  • Registratie: Augustus 2002
  • Laatst online: 09:31
Mbv. useradd maak ik in mijn scriptje een nieuwe unix-gebruiker aan.
Dit commando schrijft (standaard) naar het /etc/passwd bestand.

Is er ook een mogelijkheid om dit commando (of een ander soortgelijk commando) naar een ander passwd bestand te laten schrijven?

Op de server staan namelijk een aantal sites en elke site heeft weer zijn eigen passwd bestand. Nou kan ik wel een "globale" user aanmaken (dus in /etc/passwd), maar ik wil dus echt per site (bijv /var/site1/etc/passwd).

Heeft iemand enig idee of dit mogelijk is? Ik heb op google al het command
useradd -D [domainname]
gevonden, maar dat werkt niet omdat de -D optie niet beschikbaar is (voor de domainname).

Ook heb ik al een alternatief bedacht, namelijk het wegschrijven van een nieuwe regel in datzelfde bestand (/var/site1/etc/passwd). Helaas wordt dat veel geklooi met inlezen van het bestand, controleren of username al bestaat etc. etc.

Alvast bedankt :)


Edit: Unix systeem:
Linux x.x.x 2.6.10-1.771_FC2 #1 Mon Mar 28 00:50:14 EST 2005 i686 i686 i386 GNU/Linux

[ Voor 7% gewijzigd door aaajeetee op 16-01-2008 13:59 ]


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 30-01 19:20

deadinspace

The what goes where now?

Vertel eens iets meer over de situatie; waarvoor zijn die meerdere passwd files? Andere systemen? Gebruikt apache ze voor website authenticatie? Iets anders?

Verwijderd

useradd in een jailroot uitvoeren? :)

  • benoni
  • Registratie: November 2003
  • Niet online
ajt schreef op woensdag 16 januari 2008 @ 13:50:
Op de server staan namelijk een aantal sites en elke site heeft weer zijn eigen passwd bestand. Nou kan ik wel een "globale" user aanmaken (dus in /etc/passwd), maar ik wil dus echt per site (bijv /var/site1/etc/passwd).
Heb je jailed user homes met scponly of zo?
Als je dan voor een gebruiker het wachtwoord alleen in /home/*/etc/passwd hebt, en niet in /etc/passwd, krijgen de users dan wel authenticatie als ze met ssh willen inloggen?

Anyway, ik maak zelf de passwords in /etc/passwd aan, en gebruik een setup script om die naar de /home/*/etc/passwd te kopiëren van de jailed home directories, hier het betreffende stukje:

Bash:
1
2
3
4
5
6
7
8
9
# Setup user config files
echo "Setting user config files..."
cd /home/"${userName}"/
passwdLine=`cat /etc/passwd | grep "${userName}:x:"`
if [ -d "etc" ]; then
    if [ -f "etc/passwd" ]; then
        echo $passwdLine > "etc/passwd"
    fi
fi

Verwijderd

Hmm, je draait een zeer oude versie van Fedora (FC2) dus mocht je deze machine aan het internet willen hangen dan raad ik je met klem aan een nieuwere versie van Fedora te gebruiken. Voor jou versie van Fedora zijn er namelijk geen security updates meer.

Verder kan je inderdaad web users via /etc/passwd laten autoriseren maar dit is een methode die erg weinig wordt toegepast en in het verleden zelfs gevaarlijk was. De twee meest gebruikte methodes zijn:

a) mod_mysql_auth: dus user autorisatie via mysql. Zie: http://www.howtoforge.com/mod_auth_mysql_apache2_debian

b) mod_auth: waarbij users in een plaintext file staan. Zie: http://httpd.apache.org/docs/2.0/howto/auth.html

  • aaajeetee
  • Registratie: Augustus 2002
  • Laatst online: 09:31
Het is idd een oude versie, en op deze server staan al vele websites :p (tis niet mijn eigen ding).

Voor wat betreft dit topic: ik was zelf ook bezig om de boel van /etc/passwd te kopieren naar het betreffende passwd file, dus de post van benoni is zeer welkom :)

Ook zal ik naar de de links van Stacheldraht kijken.


Allemaal wel bedankt :)
Pagina: 1