GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Wie gebe ich das Passwort nur einmal in einem Bash-Skript ein, das Sudo benötigt?

Daten

  • Ich möchte, dass Operator-Benutzer auf diesem Rechner ihre eigenen cifs-Freigaben einhängen
  • Die sudoers Datei enthält bereits den /bin/mount -t cifs //*/* /media/* -o username=* Befehl für alle Operatoren
  • Ich möchte, dass die Benutzer ein cifs mounten über ein Skript teilen, indem Sie das Passwort nur einmal eingeben, nicht zweimal.
  • Das sudo-Passwort und das cifs-Passwort sind identisch.

Was ich bereits habe

Dieses Skript funktioniert:

#!/bin/bash
sudo 'mount -t cifs //192.168.1.1/home /media/$USER/home -o username=$USER'

aber es erfordert, dass die Benutzer dasselbe Passwort zweimal eingeben!

  • Einmal für sudo
  • Einmal für das Reittier selbst

Das würde auch funktionieren:

#!/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'

aber dies würde erfordern, dass ich allen Benutzern des Operators erlaube, sudo sh auszuführen (großes Sicherheitsproblem)

Frage

Wie man eine cifs-Freigabe in bash einbindet ¹ ohne sh einzufügen in den sudoers Datei noch eine permanente/temporäre Datei erstellen???

Anmerkung 1: kein Python, Perl, C, Go, … bitte?
Anmerkung 2: Ich weiß, dass ich das Passwort einfach über die sudoers entfernen kann Datei, aber ich versuche, die Sicherheit zu erhöhen, nicht zu lockern, ohne auf Komfort zu verzichten…

Akzeptierte Antwort:

Sie sollten stattdessen den Benutzer dazu bringen, sudo als sudo script zu verwenden . Überprüfen Sie einfach, ob das Skript als root ausgeführt wird, wenn nicht, fragen Sie danach

if [[ $EUID -ne 0 ]]; then
   echo "This script must be run as root, use sudo "$0" instead" 1>&2
   exit 1
fi

Versuchen Sie nicht, das Passwort Ihrer Benutzer zu erfassen.


Ubuntu
  1. Wie füge ich einen Unix/Linux-Benutzer in einem Bash-Skript hinzu?

  2. Wie kann man sicherstellen, dass nur eine Instanz eines Bash-Skripts ausgeführt wird?

  3. Wie entferne ich die Passwortanforderung von Ubuntu?

  4. Bash-Skript - So lesen Sie Benutzereingaben

  5. Wie fügt man Benutzerkonto UND Passwort automatisch mit einem Bash-Skript hinzu?

So finden / ändern Sie das Ubuntu-Standard-Root-Passwort

So setzen Sie das Sudo-Passwort in Ubuntu 20.04 LTS zurück

So verwenden Sie bedingte Anweisungen in Bash-Skripten

So ändern Sie das sudo-Passwort in Ubuntu

So ändern Sie das Sudo-Passwort-Timeout in Ubuntu

So führen Sie ein Bash-Skript aus