Dữ liệu
- Tôi muốn người dùng vận hành trên máy này gắn kết cổ phiếu cifs của riêng họ
- Các
sudoers
tập tin đã có chứa các/bin/mount -t cifs //*/* /media/* -o username=*
lệnh cho tất cả các nhà khai thác - Tôi muốn người dùng gắn kết
cifs
chia sẻ thông qua một tập lệnh gõ mật khẩu chỉ một lần, không phải hai lần. - Mật khẩu sudo và mật khẩu cifs giống hệt nhau.
Những gì tôi đã có
Kịch bản này hoạt động:
#!/bin/bash
sudo 'mount -t cifs //192.168.1.1/home /media/$USER/home -o username=$USER'
... nhưng nó yêu cầu người dùng gõ cùng một mật khẩu hai lần!
- Một lần cho
sudo
- Một lần cho gắn kết chính nó
Điều này cũng sẽ làm việc:
#!/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'
... nhưng điều này sẽ yêu cầu tôi cho phép tất cả người dùng của nhà điều hành có thểsudo sh
(vấn đề bảo mật lớn)
Câu hỏi
Làm thế nào để gắn kết một CIFS cổ phiếu trong bash ¹ mà không đặt sh
trong sudoers
tập tin hay tạo ra một tập tin vĩnh viễn / tạm thời ???
Lưu ý 1: không có trăn, perl, C, Go, ... làm ơn?
Lưu ý 2: Tôi biết tôi chỉ có thể xóa mật khẩu qua sudoers
tệp, nhưng tôi đang cố gắng thắt chặt bảo mật, không nới lỏng, mà không từ bỏ sự tiện lợi ...
printf "%s\n" "$szPassword" "$szPassword" | sudo -S mount -t cifs / ...
?