koslibpro Δημοσ. 12 Μαρτίου 2012 Δημοσ. 12 Μαρτίου 2012 (επεξεργασμένο) Καλησπερα, εν συνεχεια ενος προηγουμενου thread,θα ηθελα να προσθεσω τον www-data στο sudoers. γενικα,εχω μια φορμα php σε localhost που ενας χρηστης πληκτρολογει το επιθυμητο username & password και παταει submit.οποτε και θελω να δημιουργειται ενας χρηστης.. οι φορμες που εχω ειναι στο spoiler: index.htm > <form method="GET" action="sub.php"> <p>Username: <input type="text" name="user" size="20"></p> <p>Password: <input type="text" name="pass" size="20"></p> <p><input type="submit" value="Submit" name="Submit"></p> </form> και το sub.php > <?php $user = $_GET['user']; $pass = $_GET['pass']; system("sudo useradd -m -p ".$pass." -u ".$user."); ?> μεχρι ωρας με αυτα που εχω κανει δεν γινεται τιποτα γιατι οταν τρεχει το scriptακι,περιμενει επειτα και κωδικο,αφου η εντολη μου αρχιζει με sudo..πως μπορω να προσθεσω λοιπον τον www-data στο sudoers με NOPASSWD για να λειτουργει σωστα αυτο που θελω..? υγ:η σχετικη γραμμη το /etc/sudoers file μου ειναι αυτη >www-data ALL=(root) NOPASSWD: /usr/sbin/useradd ,αν χρησιμευει πουθενα.. ευχαριστω! Επεξ/σία 12 Μαρτίου 2012 από koslibpro
koslibpro Δημοσ. 12 Μαρτίου 2012 Μέλος Δημοσ. 12 Μαρτίου 2012 Για δοκιμασε με %www-data .... στο /etc/sudoers αρχειο δεν λες? το εκανα.και αλλαξα και το sub.php file ωστε να μην εχει sudo πριν το useradd,για να μην περιμενει κωδικο,μιας και δεν χρειαζεται. και παλι ομως δεν εγινε τιποτα..
corrupted Δημοσ. 12 Μαρτίου 2012 Δημοσ. 12 Μαρτίου 2012 Λοιπον, εκανα μερικες διορθωσεις και σε μενα τουλαχιστον παιζει. Δοκιμασε το και πες μας... index.html ><form method="POST" action="sub.php"> <p>Username: <input type="text" name="user" size="20"></p> <p>Password: <input type="text" name="pass" size="20"></p> <p><input type="submit" value="Submit" name="Submit"></p> </form> sub.php ><?php $user = $_GET['user']; $pass = $_GET['pass']; system ("/usr/bin/sudo /usr/sbin/useradd -m -p ".$_POST['pass']." ".$_POST['user'].""); ?> Και στο /etc/sudoers, προσθεσε μια γραμμη: >www-data ALL=(ALL) NOPASSWD: /usr/sbin/useradd Το προβλημα ομως ξερεις πιο ειναι? Οτι τα passwords δεν ειναι κρυπτογραφημενα και δεν αναγνωριζονται απο το /etc/shadow ωστε να γινει login του χρηστη με το password που εχει διαλεξει. Θα πρεπει να τρεχεις την εντολη "passwd <user>" σαν root, για να θετεις εσυ το password του χρηστη (βλεπεις τι εχει διαλεξει σαν password απο το /etc/shadow). Ριξε μια ματια στα /etc/passwd και /etc/shadow...
corrupted Δημοσ. 12 Μαρτίου 2012 Δημοσ. 12 Μαρτίου 2012 (επεξεργασμένο) Update: sub.php ><?php $user = $_GET['user']; $pass = $_GET['pass']; system ("/usr/bin/sudo /usr/sbin/useradd -m -p ".crypt($_POST['pass'])." ".$_POST['user'].""); ?> Τωρα το password ειναι encrypted, αλλα παλι δεν γινεται σωστα το authentication. Δεν ξερω τι γινεται, σηκωνω τα χερια ψηλα... Μαλλον το encryption της php δεν ειναι το ιδιο με το encryption του συστηματος... Βλεπε http://php.net/manual/en/function.crypt.php Επεξ/σία 13 Μαρτίου 2012 από corrupted
koslibpro Δημοσ. 12 Μαρτίου 2012 Μέλος Δημοσ. 12 Μαρτίου 2012 φιλε corrupted πραγματικα σε ευχαριστω πολυ! Για την ακριβεια,με βολευει νομιζω το να κανω εγω χειροκινιτη εισαγωγη του pass του καθε χρηστη,αφου αυτος εχει επιλεξει ποιο θελει να ειναι! Το δοκιμασα και δουλευει και σε εμενα μια χαρα! Τον κωδικα που μου εδωσες βεβαια στο update σου,θα τον κρατησω καθως μπορει μελλοντικα να χρειαστει,ειναι πιθανο
corrupted Δημοσ. 12 Μαρτίου 2012 Δημοσ. 12 Μαρτίου 2012 Μην με ευχαριστεις, αυτα τα θεματα ειναι ωραια να τα ψαχνει κανεις. Να σου πω επισης οτι μετα την system γραμμη μπορεις να βαλεις αλλες δυο... >header("Location: thankyou.html"); exit; Αυτο θα κανει το sub.php να σε πηγαινει στο thankyou.html, οπου θα γραφεις "Σας ευχαριστω για την εγγραφη σας, ο λογαριασμος σας θα ενεργοποιηθει συντομα". Ειναι καλυτερα ετσι, παρα να φαινεται μια κενη σελιδα και να μην ξερει ο χρηστης τι εγινε, και να παταει back για να ξανακανει εγγραφη...
koslibpro Δημοσ. 13 Μαρτίου 2012 Μέλος Δημοσ. 13 Μαρτίου 2012 Μην με ευχαριστεις, αυτα τα θεματα ειναι ωραια να τα ψαχνει κανεις. Να σου πω επισης οτι μετα την system γραμμη μπορεις να βαλεις αλλες δυο... >header("Location: thankyou.html"); exit; Αυτο θα κανει το sub.php να σε πηγαινει στο thankyou.html, οπου θα γραφεις "Σας ευχαριστω για την εγγραφη σας, ο λογαριασμος σας θα ενεργοποιηθει συντομα". Ειναι καλυτερα ετσι, παρα να φαινεται μια κενη σελιδα και να μην ξερει ο χρηστης τι εγινε, και να παταει back για να ξανακανει εγγραφη... εχεις pm επι του θεματος
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα