THMMY.gr

Ηλεκτρονικοί Υπολογιστές και Τεχνικά Θέματα => Linux / Unix => Topic started by: fugiFOX on October 06, 2006, 15:23:43 pm



Title: Απορία: Script για σύνδεση σε άλλο account
Post by: fugiFOX on October 06, 2006, 15:23:43 pm
Θέλω να κάνω ένα script που όταν το τρέχω να με συνδέει αυτόματα σε ένα άλλο account.
Από όσο ξέρω το su user δεν δέχεται στην ίδια γραμμή και password (προφανώς),
υπάρχει κάποιος άλλος τρόπος;


Title: Re: Απορία: Script για σύνδεση σε άλλο account
Post by: fugiFOX on October 07, 2006, 19:58:58 pm
jimi, axel, άλλος;


Title: Απ: Απορία: Script για σύνδεση σε άλλο account
Post by: Axel on October 07, 2006, 20:48:12 pm
Δεν εχω σκεφτει να το κανω αυτο με script ως τωρα. Αυτο που θες λογικα μπορει να γινει με τις εντολες expect και send.

Θα χρειαστει αρχικα να εχεις #!/usr/bin/expect -f

Καπου μεσα στον κωδικα θα πρεπει να υπαρχει κατι τετοιο ας πουμε
expect "password:"
send "$password\r"

Τωρα δεν εχω χρονο να το κοιταξω. Αν δεν βρεις τιποτα σχετικο στο google θα το κοιταξω τεταρτη-πεμπτη.


Title: Απ: Απορία: Script για σύνδεση σε άλλο account
Post by: Axel on October 10, 2006, 18:27:01 pm
Loipon kane prwta

sudo yum install expect

Meta anoi3e ena nano kai kane paste ayta

#!/usr/bin/expect -f
su NewUserName
expect "assword:"
send "NewUserPasswd\r"
expect eof

Save as change_user and exit

chmod +x change_user
./change_user

kai pes moy an doyleyei.

An den doylepsei kane moy paste to error kai epishs kane paste to output ths entolhs
bash -x change_user



Title: Re: Απορία: Script για σύνδεση σε άλλο account
Post by: fugiFOX on October 11, 2006, 14:02:13 pm
εδώ με λέει
couldn't read file "passwordishere": no such file or directory
μήπως εννοείς ότι στο expect "password"
το password είναι κάποιο αρχείο από όπου διαβάζει;


Title: Απ: Απορία: Script για σύνδεση σε άλλο account
Post by: Axel on October 11, 2006, 14:17:36 pm
Κοιτα πως δουλευει. Εστι οτι εισαι ο χρηστης fugi και θες να γινεις ο χρηστης axel με password 1234
Η φυσιολογικη διαδικασια ειναι
su axel
Σου βγαζει
Password:
πληκτρολογεις 1234 και enter

Οποτε στο script εχω
su axel -> στελνω την εντολη για αλλαγη χρηστη
expect "assword:" -> περιμενω να βγει prompt που να περιεχει τους χαρακτηρες "assword:"
send "1234\r" -> στελνω το 1234 enter
expect eof

Τωρα για ποιο λογο σου εβγαλε αυτο το μηνυμα δεν ξερω. Για ποιο λογο να ψαξει για το pass μεσα σε αρχειο?

Για δοκιμασε το και ετσι και πες μου τι βγαζει

spawn su NewUserName
expect "assword:"
send "NewUserPasswd\r"
expect eof


Title: Re: Απορία: Script για σύνδεση σε άλλο account
Post by: fugiFOX on October 11, 2006, 15:34:10 pm
1) τώρα που κατάλαβα πως δουλεύει, μάλλον αντί για "assword:" εννοείς "Password:"
2) μάλλον δεν δουλεύει το expect γιατί μου βγάζει πάλι το promt password request

πάντως είναι εγκατεστημενο
which expect
/usr/bin/expect


Title: Re: Απορία: Script για σύνδεση σε άλλο account
Post by: fugiFOX on October 11, 2006, 15:35:24 pm
εάν βάλω λάθος password μου βγάζει αυτό το περίεργο
Password:
su: incorrect password
couldn't read file "Password:": no such file or directory
bash: send: command not found
couldn't read file "eof": no such file or directory


Title: Απ: Απορία: Script για σύνδεση σε άλλο account
Post by: Axel on October 11, 2006, 17:13:10 pm
Το εβαλα σκετο "assword:" γιατι παιζει σε καποιες διανομες να ειναι με μικρο p και σε αλλες με μεγαλο. Ετσι θα δουλευει παντου γιατι ψαχνει το string.

Στο νεο κωδικα που σου εδωσα πριν ξεχασα το #!/usr/bin/expect -f στην αρχη. Γι'αυτο σου βγαζει bash: send: command not found μαλλον.

Δοκιμασε το ετσι
#!/usr/bin/expect -f
spawn su NewUserName
expect "assword:"
send "NewUserPasswd\r"
expect eof

και ετσι
#!/usr/bin/expect -f
spawn su NewUserName
expect "assword:"
send "NewUserPasswd\r"

και αμα δε δουλεψει (που δεν το κοβω :P) το κοιταζω μολις μπω σε Linux

Οταν το τρεχεις με bash -x ουσιαστικα κανεις debugging στο script για να καταλαβεις που ειναι το λαθος. Οταν το τρεχεις σαν ./ απλως σου πεταει ενα αοριστο λαθος.


Title: Re: Απορία: Script για σύνδεση σε άλλο account
Post by: fugiFOX on October 16, 2006, 12:58:05 pm
το τρέχω με sh πάντα.
Ρε συ εγω δεν έχω spawn


Title: Απ: Απορία: Script για σύνδεση σε άλλο account
Post by: Axel on October 16, 2006, 13:16:24 pm
Το spawn στο google το βρηκα. Δεν το εχω δοκιμασει ποτε. :/