GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come inserire la password solo una volta in uno script Bash che richiede Sudo?

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.


Ubuntu
  1. Come eseguire il debug di uno script Bash?

  2. Come aggiungere un utente Unix/linux in uno script Bash?

  3. Come assicurarsi che venga eseguita solo un'istanza di uno script Bash?

  4. Conferma automatica durante l'esecuzione di script Bash?

  5. Come dividere una stringa nello script Bash

Come trovare/modificare la password di root predefinita di Ubuntu

Come reimpostare la password Sudo in Ubuntu 20.04 LTS

Come utilizzare le istruzioni condizionali negli script Bash

Come modificare la password sudo in Ubuntu

Come modificare il timeout della password di Sudo in Ubuntu

Come eseguire uno script Bash