GNU/Linux >> Belajar Linux >  >> Ubuntu

Bagaimana Mengizinkan Pengguna Non Sudoers Menjalankan Script yang Melakukan Operasi Root?

Misalkan saya memiliki direktori /opt/expe dan saya ingin setiap pengguna membuat file .txt di dalamnya. Saya ingin setiap pengguna mengetikkan sesuatu seperti ini:

$ whoami
user1
$ export $file_name=my_txt_file
$ /opt/expe/create_file.sh
$ ls -cal /opt/expe
total 12
drwxr-xr-x 2 root  root 4096 Jul 29 19:27 .
drwxr-xr-x 6 root  root 4096 Jul 29 19:14 ..
-rwsr-sr-t 1 root  root   65 Jul 29 19:29 create_file.sh
-rw-r--r-- 1 user1 root    0 Jul 29 19:27 my_txt_file.txt

Saya mencoba ini dengan sudoer

$ whoami
user_sudoer
$ cat /opt/expe/create_file.sh
touch /opt/expe/$file_name.txt
chown $USER /opt/expe/$file_name.txt
$ chmod a+x /opt/expe/create_file.sh
$ chmod a+t /opt/expe/create_file.sh
$ chmod a+s /opt/expe/create_file.sh
$ chmod a+X /opt/expe/create_file.sh

Kemudian dengan pengguna non-root saya memperoleh:

$ whoami
user1
$ export $file_name=my_txt_file
$ /opt/expe/create_file.sh
touch: cannot touch '/opt/expe/prueba_txt.txt': Permission denied

Dapatkah saya melakukan sesuatu seperti ini. Saya ingin sesuatu seperti postgres SECURITY DEFINER konsep.

Jawaban yang Diterima:

Saya tidak cukup akrab dengan Postgres, tetapi saya melihat setidaknya 4 opsi:

  1. Ubah izin /opt/expe dengan chmod untuk mengizinkan semua pengguna membuat file dalam direktori ini.

  2. Buat grup terpisah untuk pengguna yang perlu menulis di sana dan ubah izin grup /opt/expe dengan chmod untuk mengizinkan grup ini menulis di sana.

  3. Buat grup terpisah dan tambahkan aturan sudoers untuk memungkinkan mereka menjalankan skrip ini seperti yang dijelaskan misalnya di sini:Bagaimana pengguna dapat memasang wadah file terenkripsi di VeraCrypt?

  4. Gunakan keamanan label untuk kontrol akses yang halus. Berikut adalah deskripsi singkat tentang label keamanan dan beberapa tautan lebih lanjut:https://unix.stackexchange.com/questions/53028/what-are-ext4-security-labels

Harap diingat bahwa izin untuk membuat/menghapus file adalah milik direktori dan bukan file itu sendiri.


Ubuntu
  1. Cara menjalankan Google Chrome sebagai root – Ubuntu 11.10 / Linux Mint 12

  2. Bagaimana Menjalankan Skrip Penyambut/login Dengan Lightdm?

  3. Bagaimana Menjalankan Skrip??

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

  2. Ubuntu – Bagaimana Agar Pam_exec Menjalankan Script Sebagai Pengguna Saat Ini?

  3. Bagaimana Cara Membuat Skrip A Sebagai Root Secara Retroaktif?

  1. Bagaimana Cara Menjalankan Script Shell Di Latar Belakang?

  2. Bagaimana Menjalankan Terminal Sebagai Root?

  3. Bagaimana Cara Menjalankan Script Setelah Lanjutkan Dan Setelah Membuka Kunci Layar?