OVH Cloud OVH Cloud

tester si script lancé par sudo ou non

12 réponses
Avatar
unbewusst.sein
j'ai pris l'habitude de faire ça :
[ "$SUDO_USER" -a `id -u` -eq 0 ] || {
echo "Please run via sudo."
exit 1
}

echo "OK you are a SUDO_USER!"

# le script continue


je ne comprends pas bien le test :
$SUDO_USER" -a `id -u` -eq 0

parce que, si je lance le script via sudo,
id -u est à 0
si NON lancé par sudo
id -u est à 501


donc, qu'est-ce que fait "$SUDO_USER" -a là-dedans ???

en fait je voudrais une structure if then else fi
car je ferai des choses en + si le script est lancé par sudo, donc j'ai
écrit :

if [[ `id -u` -eq 0 ]]; then
echo "sudoer"
# faire ce qu'il y a à faire en tant que sudoer
else
echo "NOT sudoer"
# faire ce qu'il y a à faire en tant qu'user
fi
là dessus le "$SUDO_USER" -a " a disparu, d'où ma question...


--
« Tel n'a de chaleur pour ses amis, que pour les brûler. »
(Proverbe arabe)

2 réponses

1 2
Avatar
denis.paris
Le 31/01/2012 01:36, Tanguy Briançon a écrit :
Bonjour,

J'ai mon pc perso qui est un serveur ssh. Un extrait de
var/lo/auth.log



Jan 30 20:40:50 localhost sshd[11274]: Failed password for root from
211.147.255.238 port 57201 ssh2
Jan 30 20:40:58 localhost sshd[11290]: Failed password for root from
211.147.255.238 port 59015 ssh2
Jan 30 20:41:05 localhost sshd[11308]: Failed password for root from
211.147.255.238 port 60825 ssh2
Jan 30 20:41:13 localhost sshd[11333]: Failed password for root from
211.147.255.238 port 34410 ssh2
...
Jan 30 20:41:37 localhost sshd[11389]: Invalid user postgres from
211.147.255.238
Jan 30 20:41:37 localhost sshd[11389]: error: Could not get shadow
information for NOUSER
Jan 30 20:41:37 localhost sshd[11389]: Failed password for invalid user
postgres from 211.147.255.238 port 39843 ssh2
Jan 30 20:41:44 localhost sshd[11405]: Invalid user postgres from
211.147.255.238
Jan 30 20:41:44 localhost sshd[11405]: error: Could not get shadow
information for NOUSER
ssh2
...

Quelques questions: les connexions root sont interdites avec password
(moi même je n'y arrive pas). Ells sont authorisées via les clés, si
je comprends bien le fichier config de sshd (je n'utilise pas).

On remarque que toutes les tentatives viennent de la même ip: ces
tentatives ne me semblent pas dangereuse. Je
n'ai jamais vu de tentative de login avec un user valide (sauf les
vraies users qui ont un compte....). Est-il possible de savoir les
passwords essayé? Exemple:
" Failed password for invalid user postgres from 211.147.255.238 port
39843". Aucun user postgres n'existe sur ma machine mais on peut avoir
une idée du password essayé?

Si on voulait vraiment attaqué mon PC il me semble qu'une attaque
massive (des milliers de tentative de connexion en quelques
secondes mettrait mon pc à genoux). Mais personne n'a envie d'attaquer
sérieusement mon PC.

J'en déduit donc que des robots tentent des tentatives de connexion
ssh soit comme root soit avec des noms de users débiles (et
des passwords idiots?). Hélas j'en déduit que cela doit marcher de
temps enn temps? Honte aux admins des machines craquées?

Il me semble que même si on a un login, il y a des temps d'attentes
quand 3 passwords sont faux...

Quel est a votre avis le niveau de sécurité du serveur open-ssh
(avec des logins non évidents, et des passwords non triviaux)?


Tanguy




Tu devrais créer ton propre fil et ne pas te greffer sur celui d'un
autre, AMA.
Avatar
Nicolas George
Une Bévue, dans le message
<1kepgg3.37qkhj1nk809mN%, a écrit :
si le script a été lancé par sudo, je dois faire un :
chown yt:staff sur certains fichiers, sinon ils sont root:root



Si tu veux tester quelque chose, teste directement la condition elle-même :
les fichiers ont-ils le bon propriétaire.

Encore mieux : ne teste pas : tu fais le chown de toutes façons, et s'il
échoue c'est que tu ne pouvais pas le faire.
1 2