Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: Script installa script

  1. #1

    Script installa script

    Ho fatto uno script che installa in /usr/bin/ tutti gli script chiamati script* (quindi script1, script2 eccetera). Funziona, però mi servirebbe un metodo più ortodosso per avere i privilegi di root, e gia che ci siamo sarebbe fico metterci la barra che scorre (tipo quando scarichi i file con wget).

    codice:
    #!/bin/bash
    echo "Ora inserisci la password di root, e una volta loggato, premi ctrl+d"
    su
    chmod +x script*
    echo "Ora installerò gli script sul tuo computer"
    cp script* /usr/bin/
    echo "Ora puoi avviare gli script digitandone i nomi (script1, script2 ecc)"
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

  2. #2
    PS: magari prima di dare i privilegi, controllare se l'utente li ha gia con un if. come posso fare?
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

  3. #3
    if [ `type -p sudo` ]; then SUDOINSTALLED=1; fi
    command=`echo $@ | awk '{print $1}'`
    if [ $UID -eq 0]; then
    echo "all hail master root"
    sleep 2;
    else if [ $SUDOINSTALLED -eq 1 ] && sudo -l | grep "\(${command}\ *$\|ALL\)" 1>/dev/null; then
    #echo "Allowed to use sudo $command"
    sudo $@ || return 1
    fi
    fi


    questo ad esempio è il metodo usato in yaourt (leggermente abbreviato).

    (ah, io gli script che fai te per scrupolo li metterei in /usr/local/bin )

  4. #4
    Originariamente inviato da weseven
    if [ `type -p sudo` ]; then SUDOINSTALLED=1; fi
    command=`echo $@ | awk '{print $1}'`
    if [ $UID -eq 0]; then
    echo "all hail master root"
    sleep 2;
    else if [ $SUDOINSTALLED -eq 1 ] && sudo -l | grep "\(${command}\ *$\|ALL\)" 1>/dev/null; then
    #echo "Allowed to use sudo $command"
    sudo $@ || return 1
    fi
    fi


    questo ad esempio è il metodo usato in yaourt (leggermente abbreviato).

    (ah, io gli script che fai te per scrupolo li metterei in /usr/local/bin )
    ok

    questo quindi per controllare se csi hanno i permessi di root e in caso, chiedere password.
    ora sto a pranzo, provo dopo
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

  5. #5
    no, così non va, sarebbe meglio con su anzichè sudo, perchè sennò, ecco cosa succede:

    psykopear@ubuntu7:~/script$ ./Install
    Ora inserisci la password di root, e una volta loggato, premi ctrl+d
    [sudo] password for psykopear:
    usage: sudo -K | -L | -V | -h | -k | -l | -v
    usage: sudo [-HPSb] [-p prompt] [-u username|#uid]
    { -e file [...] | -i | -s | <command> }
    ./Install: line 10: return: can only `return' from a function or sourced script
    Digita il nome dello script che vuoi installare
    script1
    cp: impossibile creare il file normale `/usr/local/bin/script1': Permesso negato
    Ora installerò gli script sul tuo computer
    Ora puoi avviare gli script digitandone i nomi (script1, script2 ecc)
    psykopear@ubuntu7:~/script$
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

  6. #6
    non copiare e incollare, quello era un semplice esempio ridotto del metodo usato in yaourt. è ovvio che ci vogliono altri accorgimenti (puoi ad esempio dare un'occhiata a yaourt stesso, è uno script bash).

  7. #7
    if [ `type -p su` ]; then SUINSTALLED=1; fi
    command=`echo $@ | awk '{print $1}'`
    if [ $UID -eq 0]; then
    echo "all hail master root"
    sleep 2;
    else if [ $SUINSTALLED -eq 1 ] && su -l | grep "\(${command}\ *$\|ALL\)" 1>/dev/null; then
    #echo "Allowed to use su $command"
    su $@ || return 1
    fi
    fi


    Così per esempio? (ora non posso provare subito)
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

  8. #8
    Originariamente inviato da weseven
    non copiare e incollare, quello era un semplice esempio ridotto del metodo usato in yaourt. è ovvio che ci vogliono altri accorgimenti (puoi ad esempio dare un'occhiata a yaourt stesso, è uno script bash).
    PS: Attualmente non c'è arch sull'hard disk (sto provando un po distro, e quello era l'unico spazio disponibile), per cui non posso vedere tutto yaourt
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

  9. #9
    ho risolto in modo abbastanza semplice, però bisogna avere sudo funzionante.

    #!/bin/bash
    for elencosript
    do
    echo "Ora inserisci la password di utente"
    sudo chmod +x $elencosript
    echo "Ora installerò gli script sul tuo computer"
    sudo cp $elencosript /usr/local/bin/
    echo "Ora puoi avviare gli script digitandone i nomi (script1, script2 ecc)"
    done


    ho fatto anche uno scriptino di backup semplice semplice

    #!/bin/bash
    for miofile
    do
    cp $miofile /home/psykopear/backup/
    echo "$miofile salvato!"
    done

    a posto di /home/psykopear posso mettere $HOME/ no?

    ora provo

    edit: perfetto, sostituito /home/psykopear/backup con /$HOME/backup
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

  10. #10
    adesso come faccio a dirgli di creare la directory backup se non c'è, e di stare buono se c'è?
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.