Data
- Saya ingin pengguna operator pada mesin ini memasang share cifs mereka sendiri
- Para
sudoers
file sudah berisi/bin/mount -t cifs //*/* /media/* -o username=*
perintah untuk semua operator - Saya ingin pengguna memasang
cifs
bagikan melalui skrip dengan mengetikkan kata sandi hanya sekali, bukan dua kali. - Kata sandi sudo dan kata sandi cifs sama.
Apa yang sudah saya miliki
Skrip ini berfungsi:
#!/bin/bash
sudo 'mount -t cifs //192.168.1.1/home /media/$USER/home -o username=$USER'
…tetapi mengharuskan pengguna untuk mengetikkan kata sandi yang sama dua kali!
- Sekali untuk
sudo
- Sekali untuk mount sendiri
Ini juga akan berhasil:
#!/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'
…tetapi ini mengharuskan saya untuk mengizinkan semua pengguna operator untuk dapat sudo sh
(masalah keamanan utama)
Pertanyaan
Cara memasang cifs share di bash tanpa memasukkan sh
di sudoers
file atau membuat file permanen/sementara???
Catatan 1: tidak ada python, perl, C, Go, … tolong?
Catatan 2: Saya tahu saya bisa menghapus kata sandi melalui sudoers
file, tapi Saya mencoba untuk memperketat keamanan, bukan melonggarkannya, tanpa mengorbankan kenyamanan…
Jawaban yang Diterima:
Anda sebaiknya membuat pengguna melakukan panggilan menggunakan sudo sebagai sudo script
. cukup periksa apakah skrip sedang dijalankan sebagai root, jika tidak mintalah
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root, use sudo "$0" instead" 1>&2
exit 1
fi
Jangan mencoba menangkap sandi pengguna Anda.