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.