GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Membuat Skrip A Sebagai Root Secara Retroaktif?

Saya sedang menulis skrip shell, yang perlu dijalankan dengan hak akses root.

Saya dapat memeriksa apakah pengguna memiliki hak akses root dengan sudo -nv || echo "no sudo" , tapi itu tidak membantu saya, jika kredensialnya masih di-cache oleh sudo , tapi dia tidak memanggil skrip saya dengan itu. Jadi saya tidak punya cara untuk bereaksi terhadap pengguna, tidak memanggil skrip saya dengan sudo.

Saya bisa memasukkan sudo di depan setiap perintah yang membutuhkannya, jadi hanya memeriksa untuk melihat apakah pengguna memiliki hak akses root sudah cukup, tetapi menurut saya, harus ada solusi yang lebih baik.

Saya mencari perintah, yang dapat saya masukkan ke dalam skrip saya, yang meminta hak akses root kepada pengguna dan, jika disediakan, mengeksekusi sisa skrip, seolah-olah pengguna memanggilnya dengan hak akses root.

Yang saya inginkan:

#!/bin/bash

if ! command; then        # what I'm looking for
    echo "This script needs root privileges."
    exit 1
fi

mv /bin/cmd1 /bin/cmd2    # requires root

Diedit 2 kali

Jawaban yang Diterima:

Uji apakah Anda root, dan jika tidak, mulai ulang dengan sudo , misalnya:

#! /bin/bash

if [[ $EUID -ne 0 ]];
then
    exec sudo /bin/bash "$0" "[email protected]"
fi

Linux
  1. Bagaimana Menjalankan Terminal Sebagai Root?

  2. Bagaimana Menjalankan Skrip??

  3. Cara membuat skrip Python berjalan seperti layanan atau daemon di Linux

  1. Cara menjalankan skrip shell saat startup

  2. Bagaimana cara membuat sudo meminta kata sandi root?

  3. Jalankan ifconfig tanpa sudo

  1. Bagaimana Cara Menjalankan Program Tertentu Sebagai Root Tanpa Prompt Kata Sandi?

  2. Bagaimana Internal Sudo Bekerja?

  3. Bagaimana Cara Menjalankan Perintah Yang Melibatkan Pengalihan Atau Perpipaan Dengan Sudo?