GNU/Linux >> Belajar Linux >  >> Ubuntu

Bagaimana Cara Memasukkan Kata Sandi Hanya Sekali Dalam Skrip Bash yang Membutuhkan Sudo?

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.


Ubuntu
  1. Bagaimana Cara Men-debug Skrip Bash?

  2. Bagaimana Memastikan Hanya Satu Contoh Skrip Bash yang Berjalan?

  3. Bash Script - Cara Membaca Input Pengguna

  1. Cara Menggunakan Kata Sandi Terenkripsi di Linux Bash Shell Script

  2. Cara Mengubah Batas Waktu Kata Sandi Sudo

  3. Bagaimana cara menjalankan skrip bash?

  1. Bagaimana Menambahkan Pengguna Unix/linux Dalam Skrip Bash?

  2. Bagaimana Cara Menghapus Persyaratan Kata Sandi Ubuntu ??

  3. Konfirmasi Otomatis Saat Menjalankan Skrip Bash?