SUID pas de travail avec le shell script
J'ai créé un petit script shell avec le contenu suivant:
cat /usr/bin/checksuid.sh
!/bin/bash
echo "Hello" > /etc/myfile.cnf
ls -l /usr/bin/checksuid.sh
-rwsr-xr-x 1 root root 56 Sep 9 12:56 /usr/bin/checksuid.sh
J'ai également créé un fichier /etc/myfile.cnf
avec le compte root et de définir les autorisations ci-dessous:
-rw-r--r-- 1 root root 6 Sep 9 12:26 /etc/myfile.cnf
Quand j'execute /usr/bin/checksuid.sh
à partir d'un compte utilisateur non-root, j'obtiens l'erreur suivante:
/usr/bin/checksuid.sh: line 3: /etc/myfile.cnf: Permission denied
Peut on vous aider à ce que pourquoi SUID ne fonctionne pas?
Il convient également de
#!/bin/bash
comme ligne shebang pour bash, mais de préférence #!/bin/sh
.OriginalL'auteur Sachin Gupta | 2013-09-09
Vous devez vous connecter pour publier un commentaire.
Scripts Shell peuvent pas être SUID. Voir http://www.faqs.org/faqs/unix-faq/faq/part4/section-7.html
OriginalL'auteur Douglas Leeder
De http://www.tuxation.com/setuid-on-shell-scripts.html:
Une approche alternative - envelopper le script dans quelque chose qui peut utiliser setuid, comme cet exemple de programme c. Il y a évidemment des différences de simplement appeler votre script vs l'aide d'un wrapper comme ceci (par exemple ignoré les codes de sortie), mais ce devrait vous donner une idée de toute façon.
OriginalL'auteur Sk606