Dati
- Voglio che gli utenti operatori su questa macchina montino le proprie condivisioni cifs
- I
sudoers
il file contiene già il/bin/mount -t cifs //*/* /media/* -o username=*
comando per tutti gli operatori - Voglio che gli utenti montino un
cifs
condividi tramite uno script digitando la password una sola volta, non due. - La password sudo e la password cifs sono identiche.
Quello che ho già
Questo script funziona:
#!/bin/bash
sudo 'mount -t cifs //192.168.1.1/home /media/$USER/home -o username=$USER'
…ma richiede agli utenti di digitare la stessa password due volte!
- Una volta per
sudo
- Una volta per la cavalcatura stessa
Funzionerebbe anche:
#!/bin/bash
echo -n Password:
read -s szPassword
echo $szPassword | sudo -S sh -c 'echo $szPassword | mount -t cifs //192.168.1.1/home /media/$USER/home -o username=$USER'
…ma ciò richiederebbe a tutti gli utenti operatori di poter sudo sh
(grave problema di sicurezza)
Domanda
Come montare una condivisione cifs in bash ¹ senza inserire sh
nei sudoers
file né creare un file permanente/temporaneo???
Nota 1: no python, perl, C, Go, ... per favore?
Nota 2: So che posso rimuovere la password tramite sudoers
file, ma Sto cercando di rafforzare la sicurezza, non di allentarla, senza rinunciare alla comodità...
Risposta accettata:
Dovresti invece fare in modo che l'utente esegua la chiamata per usare sudo come sudo script
. controlla solo se lo script viene eseguito come root, altrimenti chiedilo
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root, use sudo "$0" instead" 1>&2
exit 1
fi
Non tentare di acquisire la password dei tuoi utenti.