Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Sudo in shell script

  1. #1

    Sudo in shell script

    Cari tutti,

    dovrei eseguire uno script all'avvio del computer, mettendolo in /etc/init.d/ o nei vari rc1,rc2, ecc... con al suo interno dei comandi che richiedono privilegi di super utente.

    faccio un esempio:

    #! /bin/bash
    chmod 777 /pippo/pluto.paperino


    ovviamente il chmod vuole privilegi di super user.... e lo script fallisce l'esecuzione.

    chmod non prevede una opzione per farsi passare la password di root...

    Come faccio?

    Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    751
    dovrei eseguire uno script all'avvio del computer, mettendolo in /etc/init.d/ o nei vari rc1,rc2, ecc...
    esattamente dove lo hai messo e come lo hai chiamato ? ...i privilegi
    di root non dovrebbero essere il problema.


    comunque, a quale file vorresti modificare i permessi ?

  3. #3
    Ciao, grazie per aver risposto;

    devo cambiare i permessi a /dev/video0 all' avvio del computer ed ho creato uno script in cui uso il comando chmod.

    Sto valutando se metterlo su tutti i runlevel, quindi nei vari rc*, oppure in init.d


    Al momento ho risoltto scrivendo nello script:

    echo 'password_di_root' | sudo chamod 777 /dev/video0

    e funziona...ma non so se è la soluzione migliore...


    JK

  4. #4
    ma se lo esegui dagli script init.d

    viene eseguito come root

    non occorre mettere sudo e ne password



    p.s.
    se non e' legato al runlevel lo puoi inserire in /etc/rc.local

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    751
    Al momento ho risoltto scrivendo nello script:

    echo 'password_di_root' | sudo chamod 777 /dev/video0

    e funziona...ma non so se è la soluzione migliore...
    direi che questa è la cosa peggiore che tu potessi fare...

    devo cambiare i permessi a /dev/video0 all' avvio del computer ed ho creato uno script in cui uso il comando chmod.
    supponevo che tu volessi cambiare i permessi a qualcosa in /dev...ma per questo
    ci sono udev ed /etc/group

    Sto valutando se metterlo su tutti i runlevel, quindi nei vari rc*, oppure in init.d
    Il modo corretto di fare le cose è:
    1) creare uno script e renderlo eseguibile;
    2) spostare lo script in init.d;
    3) creare un link simbolico ad esso nei vari rc?.d, a seconda dei runlevel
    in cui ti serve che venga eseguito o in rc{local,sysinit,S}.d (qui le varie
    distribuzioni hanno fatto un po' di casino) se non dipende dal runlevel;
    4) controllare di non aver scritto delle bischerate nello script

    Ah, il nome del link simbolico ha una certa importanza e, tecnicamente,
    un nome errato può anche impedirti di riavvire il sistema (con init, quantomeno)...
    ma questo dipende dallo script in questione.


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 © 2020 vBulletin Solutions, Inc. All rights reserved.