A veure si algú domina el programa «su» (substitute user) per executar
una comanda d'una manera que jo no me'n surto:
Per posar un exemple, com a usuari «root» vull editar un fitxer
especificat per l'usuari i amb algun paràmetre més per l'editor nano.
Però tot això fer-ho a través d'un programet q
2016-03-19, 16:10 (+0100); Narcis Garcia escriu:
> A veure si algú domina el programa «su» (substitute user) per executar
> una comanda d'una manera que jo no me'n surto:
>
> Per posar un exemple, com a usuari «root» vull editar un fitxer
> especificat per l'usuari i amb algun paràmetre més per l'
Fet d'aquestes maneres no es queixa, però només passa el primer
paràmetre i no els següents:
su root -- -c "$@"
su -- -c "$@"
És a dir, que si executo:
./llansador.sh nano --boldtext "Un document.txt"
Només té efecte el "nano"; la resta és ignorat.
__
I'm using this express-made address
2016-03-19, 19:26 (+0100); Narcis Garcia escriu:
> Fet d'aquestes maneres no es queixa, però només passa el primer
> paràmetre i no els següents:
>
> su root -- -c "$@"
> su -- -c "$@"
>
> És a dir, que si executo:
> ./llansador.sh nano --boldtext "Un document.txt"
> Només té efecte el "nano"; la
El 19/03/16 a les 16:10, Narcis Garcia ha escrit:
> A veure si algú domina el programa «su» (substitute user) per executar
> una comanda d'una manera que jo no me'n surto:
>
> Per posar un exemple, com a usuari «root» vull editar un fitxer
> especificat per l'usuari i amb algun paràmetre més per l'
L'assignació a una variable no resol els paràmetres amb espais.
Em sembla que amb el getopt es pot fer el millor pedaç possible.
__
I'm using this express-made address because personal addresses aren't
masked enough at lists.debian.org archives.
El 20/03/16 a les 10:28, Eloi ha escrit:
>
El getopt sembla la millor solució; no veig aleshores la utilitat del
doble guió -- pel su.
__
I'm using this express-made address because personal addresses aren't
masked enough at lists.debian.org archives.
El 19/03/16 a les 20:31, Ernest Adrogué ha escrit:
> 2016-03-19, 19:26 (+0100)
2016-03-20, 12:17 (+0100); Narcis Garcia escriu:
> El getopt sembla la millor solució; no veig aleshores la utilitat del
> doble guió -- pel su.
su -- -c "$args" i
su -c "$args"
fan coses diferents. Tots dos executen /bin/bash (o el que l'usuari tingui
configurat com a shell per defecte) com a
Narcis Garcia:
> su root -c "$@"
La clau és que "$@" respecta les cometes originals i això no casa
amb l'opció -c del su. Si utilitzes -c "$*" no tindràs aquest
problema però en pots tenir d'altres en cas que vulguis tenir
algun paràmetre amb espais.
Cadenes amb espais, cometes, etc. són un mals
Moltes gràcies Ernest, Eloi i Alex per les respostes, que m'han ajudat a
trobar la solució.
Faig moltes coses amb Shell Scripts, sobretot perquè són directament
executables i portables a un munt de sistemes operatius (fins i tot
Android que ni tan sols és GNU). Els principals inconvenients que tro
10 matches
Mail list logo