GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment autoriser les utilisateurs non Sudoers à exécuter un script qui effectue des opérations root ?

Supouse j'ai un répertoire /opt/expe et je veux que n'importe quel utilisateur crée des fichiers .txt dessus. Je veux que n'importe quel utilisateur tape quelque chose comme ceci :

$ 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

J'essaie ça avec un 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

Ensuite, avec un utilisateur non root, j'ai obtenu :

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

Puis-je faire quelque chose comme ça. Je veux quelque chose comme postgres SECURITY DEFINER notion.

Réponse acceptée :

Je ne connais pas assez Postgres, mais je vois au moins 4 options :

  1. Modifiez les autorisations de /opt/expe avec chmod pour permettre à tous les utilisateurs de créer des fichiers dans ce répertoire.

  2. Créez un groupe séparé pour les utilisateurs qui doivent y écrire et modifiez l'autorisation de groupe /opt/expe avec chmod pour permettre à ce groupe d'y écrire.

  3. Créez un groupe séparé et ajoutez une règle sudoers pour leur permettre d'exécuter ce script comme décrit par exemple ici :Comment l'utilisateur peut-il monter un conteneur de fichiers chiffré dans VeraCrypt ?

  4. Utilisez la sécurité des étiquettes pour un contrôle d'accès précis. Voici une brève description des étiquettes de sécurité et quelques liens supplémentaires :https://unix.stackexchange.com/questions/53028/what-are-ext4-security-labels

Veuillez garder à l'esprit que l'autorisation de créer/supprimer des fichiers est une propriété du répertoire et non du fichier lui-même.


Ubuntu
  1. Comment exécuter une commande qui implique une redirection ou une canalisation avec Sudo ?

  2. Ubuntu - Comment faire exécuter le script par Pam_exec en tant qu'utilisateur actuel ?

  3. Comment exécuter rétroactivement un script en tant que root ?

  4. Comment exécuter un script shell en arrière-plan ?

  5. Comment exécuter le script après la reprise et après le déverrouillage de l'écran ?

Comment ajouter des utilisateurs à Sudoers (et supprimer) sur Ubuntu

Comment créer et exécuter un script Shell dans Ubuntu 20.04 LTS

Comment exécuter un script Shell en tant que service Systemd sous Linux

Comment exécuter un script Python en PHP

Comment exécuter un script bash

Comment exécuter Dolphin en tant que root ?