Newsgroup: it.comp.os.linux.iniziare
Titolo: Avvio script con doppio clic

Salve,
 
devo eseguire uno script come user con però all'interno dei comandi 
iptables che ovviamente necessiterebbero dei diritti di root!
 
Da quel che ho capito mi si aprono due strade, SetUID bit e sudoers ed 
ora sto cercando di capire quale possa essere la soluzione migliore!
 
Lo step successivo è come poter avviare lo script con un doppio clic dal 
desktop per l'eventuale utente newbie, fin'ora io ho sempre usato la 
console e quindi da qui è "tutto facile"! :D
 
Si tratta di Strech+KDE.
 
Saluti.
GabrieleMax

tipo:
 
http://blog.sfsoft.it/2015/07/13/ubuntu-eseguire-uno-script-root-come-utente
 
 
?

 
http://blog.sfsoft.it/2015/07/13/ubuntu-eseguire-uno-script-root-come-utente
 
 
Eseguire uno script che necessita di diritti di root pur essendo utente 
l'ho capito, ora devo capire come farlo partire con un click tipo dal 
desktop, basta dargli l'estensione *.sh?
 
Saluti.
GabrieleMax
 

sul desktop crei una collegamento a file o applicazione e al comando metti:
 
sudo /mypath/myscript

 sudo /mypath/myscript
 
Mi chiede ancora la password di root eppure mi sembrava di aver lasciato 
a root i soli permessi di modifica e mi sembrava di aver esteso 
l'esecuzione dello stesso agli utenti...
 
Lo script in questione è:
 
ip a add 
10.10.1.1/255.255.255.0
 dev enp3s0
/etc/init.d/isc-dhcp-server restart
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -I FORWARD -i enp3s0 -o wlp2s0 -j ACCEPT
iptables -t nat -I POSTROUTING -o wlp2s0 -j MASQUERADE
 
Ho creato il file router.sh, questo script lanciato su un laptop 
permette agli utenti di agganciarsi al wifi preso in loco o in tethering 
da un tablet o smartphone e reinstradare il tutto sulla eth che fungerà 
da router con dhcp.
 
Saluti.
GabrieleMax


 
 
 
Se quello che vuoi è che chiunque possa eseguire il tuo script coi 
privilegi di root senza richiesta di password devi fare 3 cose:
 
 
1. Aggiungere la seguente linea al file /etc/sudoers:
 
ALL ALL=(root) NOPASSWD: /mypath/myscript
 
Serve per far sì che
chiunque (primo ALL)
ovunque (secondo ALL)
possa eseguire come utente root
senza richiesta di password
il comando /mypath/myscript
 
 
 
2. Il tuo script dev'essere eseguibile:
 
chmod +x /mypath/myscript
 
 
 
3. Il link che i tuoi utenti dovranno cliccare dovrà
contenere:
 
sudo /mypath/myscript
 
La cosa FONDAMENTALE è che NESSUNO possa modificare
quello script perché QUALUNQUE COSA esso contenga
potrà venir eseguita da CHIUNQUE coi privilegi di
root.
 
 
 
 
P.S.
 
Se usi ubuntu o centos, invece che modificare direttamente
il file /etc/sudoers, potresti voler mettere quella riga
di configurazione in un file a parte (che puoi chiamare
come vuoi) nella directory /etc/sudoers.d
 
Per esempio:
 
echo "ALL ALL=(root) NOPASSWD: /mypath/myscript" > /etc/sudoers.d/pippo
 
Dagli un nome significativo.
 
 
-- 
Lime and limpid green, a second scene
A fight between the blue you once knew
Floating down, the sound resounds
Around the icy waters underground
 
http://fuffologia.wordpress.com/
 

 Se usi ubuntu o centos, invece che modificare direttamente
 
Uso Debian Stretch, non so se sia lo stesso.
 
Saluti.
GabrieleMax

click destro sul desktop (sblocca gli oggetti)
 
-> impostazioni desktop
-> disposizione
-> cartella
-> applica
 
da quel momento puoi: 
 
- creare: file, collegamenti a cartelle, a url, applicazioni ecc

 - creare: file, collegamenti a cartelle, a url, applicazioni ecc
 
Quindi a questo non arrivo...
 
Saluti.
GabrieleMax
 

io da click destro ho:
 
o "impostazioni desktop"
http://sacarde.altervista.org/np/desktop1.jpg
 
 
 
o "impostazioni di vista delle cartelle" 
(da dove si possono creare oggetti)
http://sacarde.altervista.org/np/desktop2.jpg
 

 
http://sacarde.altervista.org/np/desktop2.jpg
 
 
Non so come tu sia riuscito a far apparire questa schermata comunque 
grazie alla tua "dritta" ed a quanto stavo già cercando su internet 
credo di essere arrivato al dunque, ora sono su un'altra macchina quindi 
proverò l'avvio dello script domani! :D
 
Saluti!
GabrieleMax
 

 Non so come tu sia riuscito a far apparire questa schermata
 
Stai usando il KDE in "versione" Plasma, il desktop
è una specie di schermo di cellulare in cui potresti
mettere i plasmoid.
Per avere quel menu, dovresti scegliere
la modalità "classica".
Puoi scegliere facendo click destro sul Desktop e poi
scegliendo(in inglese, sorry)
 
Folder view settings
 
Da lì nella sezione wallpaper il tuo sistema
dovrebbe essere settato come "Desktop"
Cambiandolo in "Folder View" avrai un Desktop
più classico, simile in fondo al kde 3.5
e dovrebbe darti col tasto destro il menu che ti serve.
 
 
bye
 
 

 desktop KDE mi crea il "link"
 
Ok, il termine "link" è in effetti fuorviante. Non so
che GUI stai usando ma ti dovrebbe consentire di creare
qualcosa di simili ai "collegamenti" del desktop di
windows. Se non è previsto che tu possa farlo, puoi
usare un secondo script per lanciare in modo corretto
il primo (per il quale valgono comunque le prime due
cose che ti ho scritto).
 
Chiamiamolo pippo.sh:
 
 
#!/bin/sh
sudo /mypath/myscript
 
 
Non è elegantissimo ma funziona.


 scegliendo(in inglese, sorry)
 
Grazie, gentilissimo, uso KDE dalla versione 3 e linux da fine anni '90, 
non ho mai avuto cosi' tanta necessità o voglia di personalizzare il 
dekstop, mi sono sempre bastate le impostazioni che si caricava di 
default all'installazione del pacchetto!
 
Di solito vado sempre di console, sono un utente desktop minimale e uso 
questo solo per aprire firexox, icedove, e credo basta ma ora volendo 
avvicinare anche utenti windowsiani/desktop mi sono inziato a porre 
delle domande proprio in merito alla sua personalizzazione! :)
 
Saluti!
GabrieleMax
 

 sudo /mypath/myscript
 
 
1) All'interno del file sudoers ho aggiunto:
 
utente_aziendale ALL=NOPASSWD: /home/utente_aziendale/router.sh
 
root	ALL=(ALL:ALL) ALL
 
2) Ho dato il potere di esecuzione al file router.sh
 
3) Lato desktop KDE ho aggiunto un oggetto nello specifico il plasmoide 
avvio rapido, ho sfogliato la home dell'utente_aziendale ed ho 
selezionato lo script
 
4) Nelle impostazioni avanzate ho inserito sudo 
/home/utente_aziendale/router.sh
 
Cosi' funziona, si poteva far meglio? :)
 
Saluti.
GabrieleMax


 
Metterei lo script router.sh nella home di root (o
in qualche altro posto ben protetto):
 
/root/router.sh
 
(modificando di conseguenza anche sudoers, naturalmente)
 
In questo modo l'utente aziendale non correrà il rischio
di brasarti la macchina qualora gli venisse voglia di
modificare lo script (che in effetti non potrà manco
vedere direttamente).


 vedere direttamente).
 
Di fatto ora ho un solo utente con il nome dell'azienda nella cui home 
ho inserito i due script che possono essere modificati solo da root.
 
In termini di sicurezza quello che hai scritto non fa una piega, e con 
calma migliorerò il tutto anche se ad onor del vero con questi laptop 
non si fa pressochè nulla di pericoloso come il collegarsi a reti 
aziendali, server, scarico posta, etc. etc. etc.
 
Saluti.
GabrieleMax