support de --uses-su pour ruinst -C
This commit is contained in:
parent
6215aa7ddd
commit
6ba41b953c
File diff suppressed because it is too large
Load Diff
13
ruinst
13
ruinst
|
@ -23,6 +23,9 @@ OPTIONS
|
||||||
il est possible de faire la configuration avec '--configure root'. La
|
il est possible de faire la configuration avec '--configure root'. La
|
||||||
commande serait alors
|
commande serait alors
|
||||||
$scriptname -h user@host --configure root
|
$scriptname -h user@host --configure root
|
||||||
|
Si l'hôte distant n'a pas sudo ou si sudo n'est pas configuré, il faut
|
||||||
|
rajouter l'option --uses-su, e.g:
|
||||||
|
$scriptname -h user@host --configure root --uses-su
|
||||||
-T tmproot
|
-T tmproot
|
||||||
Spécifier le répertoire temporaire sur l'hôte distant, comme par exemple
|
Spécifier le répertoire temporaire sur l'hôte distant, comme par exemple
|
||||||
/var/tmp. Cette option est utile pour les vservers, qui ont par défaut
|
/var/tmp. Cette option est utile pour les vservers, qui ont par défaut
|
||||||
|
@ -49,6 +52,7 @@ set_defaults pubkeys
|
||||||
|
|
||||||
action=deploy
|
action=deploy
|
||||||
confuser=
|
confuser=
|
||||||
|
uses_su=
|
||||||
tmproot=
|
tmproot=
|
||||||
hosts=()
|
hosts=()
|
||||||
SSH=
|
SSH=
|
||||||
|
@ -57,6 +61,7 @@ parse_opts "${PRETTYOPTS[@]}" \
|
||||||
--help '$exit_with display_help' \
|
--help '$exit_with display_help' \
|
||||||
-C action=configure \
|
-C action=configure \
|
||||||
--configure: '$set@ confuser;action=configure' \
|
--configure: '$set@ confuser;action=configure' \
|
||||||
|
--uses-su uses_su=1 \
|
||||||
-T:,--tmproot: tmproot= \
|
-T:,--tmproot: tmproot= \
|
||||||
-S: SSH= \
|
-S: SSH= \
|
||||||
--force-make-archive force_make_archive=1 \
|
--force-make-archive force_make_archive=1 \
|
||||||
|
@ -135,11 +140,11 @@ function prepare_pubkey_access() {
|
||||||
# générer un script d'installation de clé avec la bonne clé
|
# générer un script d'installation de clé avec la bonne clé
|
||||||
ac_set_tmpfile IPKS
|
ac_set_tmpfile IPKS
|
||||||
awkrun PUBKEYS="$PUBKEYS" '{sub(/@@PUBKEYS@@/, PUBKEYS); } {print}' \
|
awkrun PUBKEYS="$PUBKEYS" '{sub(/@@PUBKEYS@@/, PUBKEYS); } {print}' \
|
||||||
<"$scriptdir/ulib/support/install-pubkeys.sh" >"$IPKS"
|
<"$ULIBDIR/support/install-pubkeys.sh" >"$IPKS"
|
||||||
chmod +x "$IPKS"
|
chmod +x "$IPKS"
|
||||||
}
|
}
|
||||||
function check_pubkey_access() {
|
function check_pubkey_access() {
|
||||||
local user= host="$1" confuser="$2" ipks="$3"
|
local user= host="$1" confuser="$2" ipks="$3" uses_su="$4"
|
||||||
if [[ "$host" == *@* ]]; then
|
if [[ "$host" == *@* ]]; then
|
||||||
user="${host%%@*}"
|
user="${host%%@*}"
|
||||||
host="${host#*@}"
|
host="${host#*@}"
|
||||||
|
@ -154,7 +159,7 @@ function check_pubkey_access() {
|
||||||
if [ "$user" != "$confuser" ]; then
|
if [ "$user" != "$confuser" ]; then
|
||||||
enote "Vous pouvez être amené à entrer plusieurs fois le mot de passe de $user sur $host"
|
enote "Vous pouvez être amené à entrer plusieurs fois le mot de passe de $user sur $host"
|
||||||
scp -S "$SSH" -o StrictHostKeyChecking=no -o ConnectTimeout=2 -q "$ipks" "$user@$host:" &&
|
scp -S "$SSH" -o StrictHostKeyChecking=no -o ConnectTimeout=2 -q "$ipks" "$user@$host:" &&
|
||||||
"$SSH" -o ConnectTimeout=2 -qt "$user@$host" "./$(basename "$ipks") '$confuser'" ||
|
"$SSH" -o ConnectTimeout=2 -qt "$user@$host" "./$(basename "$ipks") '$confuser' ${uses_su:+su}" ||
|
||||||
eerror "Impossible de copier la clé publique sur l'hôte distant"
|
eerror "Impossible de copier la clé publique sur l'hôte distant"
|
||||||
else
|
else
|
||||||
"$SSH" -o StrictHostKeyChecking=no -o ConnectTimeout=2 -q "$user@$host" "PUBKEYS=$(quoted_sarg "$PUBKEYS")"'
|
"$SSH" -o StrictHostKeyChecking=no -o ConnectTimeout=2 -q "$user@$host" "PUBKEYS=$(quoted_sarg "$PUBKEYS")"'
|
||||||
|
@ -187,7 +192,7 @@ if [ "$action" == "configure" ]; then
|
||||||
|
|
||||||
etitle -s "Configuration de l'accès par clé ssh"
|
etitle -s "Configuration de l'accès par clé ssh"
|
||||||
for host in "${hosts[@]}"; do
|
for host in "${hosts[@]}"; do
|
||||||
etitle "$host" check_pubkey_access "$host" "$confuser" "$IPKS"
|
etitle "$host" check_pubkey_access "$host" "$confuser" "$IPKS" "$uses_su"
|
||||||
done
|
done
|
||||||
eend
|
eend
|
||||||
exit 0
|
exit 0
|
||||||
|
|
Loading…
Reference in New Issue