Дані
- Я хочу, щоб користувачі операторів на цій машині змогли влаштувати власні акції cifs
- У
sudoers
файлі вже є/bin/mount -t cifs //*/* /media/* -o username=*
команда для всіх операторів - Я хочу, щоб користувачі змогли зібрати
cifs
сценарій лише один раз, а не двічі. - Пароль sudo та пароль cifs однакові.
Що я вже маю
Цей сценарій працює:
#!/bin/bash
sudo 'mount -t cifs //192.168.1.1/home /media/$USER/home -o username=$USER'
... але він вимагає від користувачів вводити один і той же пароль двічі!
- Раз для
sudo
- Раз для самого кріплення
Це також працює:
#!/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'
... але для цього потрібно, щоб дозволити всім користувачам оператора можливістьsudo sh
(основна проблема безпеки)
Питання
Як встановити частку cifs у bash ¹, не ставлячи sh
у sudoers
файл і не створюючи постійний / тимчасовий файл ???
Примітка 1: немає пітона, perl, C, Go, ... будь ласка?
Примітка 2: Я знаю, що я можу просто видалити пароль через sudoers
файл, але я намагаюся посилити безпеку, а не послаблювати її, не відмовляючись від зручності ...
printf "%s\n" "$szPassword" "$szPassword" | sudo -S mount -t cifs / ...
?