Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

User per PHP in Linux adden

Empfohlene Antworten

Veröffentlicht

Hallo,

folgendes Problem:

ich muss einen User in Linux anlegen per PHP ohne zu grosse Sicherheitslücken aufzureissen.

Folgende Möglichkeiten habe ich schon überdacht/ausprobiert:

1. Das Suid Bit auf das Script setzen, leider funktioniert das nur bei ausführbaren Programmen (soweit ich das verstanden und probiert hatte)

2. sudo ...

ich habe die sudoers meiner meinung richtig editiert:

Cmnd_Alias USERVERWALTUNG = /usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/passwd

root ALL=(ALL) ALL

otto ALL = NOPASSWD: USERVERWALTUNG

der user kann auch erfolgreich einen user anlegen (zwar ist einmal die passwort eingabe erforderlich aber das werd ich auch noch hinbekommen)

sogleich versuchte ich dieses mit einem php script im www verzeichnis des user durchzuführen


<?PHP
echo '<pre>';
$last_line = system('sudo /usr/sbin/useradd', $retval);
echo '</pre>
<hr>Last line of the output: '.$last_line.'
<hr>Return value: '.$retval;
?>
[/PHP]

useradd habe ich extra ohne parameter benutzt, mit parameter kommt das gleiche ergebnis:

ich bekomme eine return value von 1

sonst passiert nichts.

mittlerweile bin ich auf den trichter gekommen das der befehl als user "apache" ausgeführt wird, also habe ich ihn auch im sudoers file geaddet, er hat also die rechte für das command, aber er führt das command nicht wirklich aus.

falls jemand eine einfachere lösung einfallen sollte einen user in linux anzulegen per php immer her damit

danke im vorraus und gruß

pico

  • Autor

hat sich erledigt

hab das ganze mit einem kleinen c programm gelöst worauf der user 'apache' mit sudo rechte drauf hat, brauch nur noch per exec das programm ausführen in php

gruß

pico

  • 1 Jahr später...

also ich hab einfach

Cmnd_Alias USERVERWALTUNG = /usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/passwd

root ALL=(ALL) ALL

und dann dem user für apache standardt ('wwwrun')

wwwrun ALL = NOPASSWD: USERVERWALTUNG

im script dann

system (sudo useradd -g users -d /home/$username -s /bin/false -m -k /www/default $username);

das läuft auch ohne c programm

Bist nur etwas spät dran mit dem Post. Der Thread ist schon über ein Jahr alt ;)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.