GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Wie kann man Nicht-Sudoers-Benutzern erlauben, ein Skript auszuführen, das Root-Operationen ausführt?

Angenommen, ich habe ein Verzeichnis /opt/expe und ich möchte, dass jeder Benutzer .txt-Dateien darauf erstellt. Ich möchte, dass jeder Benutzer so etwas eingibt:

$ 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

Ich versuche das mit einem 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

Dann habe ich mit einem Nicht-Root-Benutzer Folgendes erhalten:

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

Kann ich sowas machen. Ich möchte so etwas wie postgres SECURITY DEFINER Konzept.

Akzeptierte Antwort:

Ich kenne mich mit Postgres nicht genug aus, aber ich sehe mindestens 4 Optionen:

  1. Ändern Sie die Berechtigungen von /opt/expe mit chmod, damit alle Benutzer Dateien in diesem Verzeichnis erstellen können.

  2. Erstellen Sie eine separate Gruppe für die Benutzer, die dort schreiben müssen, und ändern Sie die /opt/expe-Gruppenberechtigung mit chmod, um dieser Gruppe zu erlauben, dort zu schreiben.

  3. Erstellen Sie eine separate Gruppe und fügen Sie eine sudoers-Regel hinzu, damit sie dieses Skript ausführen können, wie beispielsweise hier beschrieben:Wie kann der Benutzer einen verschlüsselten Dateicontainer in VeraCrypt einhängen?

  4. Verwenden Sie Etikettensicherheit für eine feinkörnige Zugriffskontrolle. Hier ist eine kurze Beschreibung der Sicherheitsetiketten und einige weiterführende Links:https://unix.stackexchange.com/questions/53028/what-are-ext4-security-labels

Bitte beachten Sie, dass die Berechtigung zum Erstellen/Entfernen von Dateien eine Eigenschaft des Verzeichnisses und nicht der Datei selbst ist.


Ubuntu
  1. So führen Sie Google Chrome als Root aus – Ubuntu 11.10 / Linux Mint 12

  2. Ubuntu – Wie kann Pam_exec das Skript als aktueller Benutzer ausführen?

  3. Wie führe ich ein Skript nach dem Fortsetzen und nach dem Entsperren des Bildschirms aus?

  4. Wie kann man verhindern, dass Benutzer auf das Root-Verzeichnis zugreifen?

  5. So führen Sie Elasticsearch 2.1.1 als Root-Benutzer auf einem Linux-Computer aus

Wie man unter Ubuntu Benutzer zu Sudoern hinzufügt (und entfernt).

So erstellen und führen Sie ein Shell-Skript in Ubuntu 20.04 LTS aus

So führen Sie Shell-Skript als Systemd-Dienst in Linux aus

So führen Sie ein Python-Skript in PHP aus

So führen Sie ein Bash-Skript aus

Wie führe ich Dolphin als Root aus?