Perl :lister les comptes d'une machine

[Fermé]
Signaler
-
Messages postés
25
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
12 septembre 2008
-
Bonjour, je débute avec perl et je veux concevoir un script qui pourra me lister le nbre de compte sur une machine ainsi que leur droit (admin, public ou invité) merci d'avance

8 réponses

Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 545
Salut,

leur droit sur quoi?

regarde ici des fonctions qui peuvent t'aider http://perl.mines-albi.fr/DocFr/perlfunc.html#item_getgrnam
sinon tu perux parser manuellement le fichier /etc/passwd
Messages postés
25
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
12 septembre 2008
2
je vais essayer le lien je parle des droit administrateur par exemple ou soit des comptes limités si tu vois ce que je veux dire
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 545
Pour savoir si un utilisateur a des droits administrateur, il faut tester l'UID d'utilisateur
Si l'UID est zéro alors l'utilisateur n'as pas des droits administrateur, il est carrément l'administrateur

Si tu parles des droits d'endossement (SetUID et SetGID) alors la question est toujours la même : droits sur quoi??
Messages postés
25
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
12 septembre 2008
2
au fait le script consiste a faire ressortir tous les comptes ou groupes de comptes crées dans une machine avec des droits SUR LA MACHINE definis pour chaque compte . qu'est ce que les droits d'endossements? comment teste t-on les UID?
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 545
voici une commande (que tu peux l'écrire dans un script)

perl -e 'while (($user,undef,$uid) = getpwent()){print "user=$user UID=$uid\n"}'


Les comptes créer sur une machine n'ont des droits que sur leur répertoire personnel. Pas besoin de chercher loin.
Ensuite il faut voir la variable PATH qui contient les répertoires avec des commandes que l'utilisateurs peux exécuter.

Regarde ici pour les droits d'endossement
Messages postés
25
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
12 septembre 2008
2
c'est vrai que les comptes dans la machine a son repertoire perso et tu m'aides bcp depuis 3 jours je me bat pour comprendre perl j'ai telecharger MIME::lite mais depuis je n'arrive pas à l'installer (je cherche la doc sur le net en ce moment) car linux n'est pas mon environnement habituel mais je dois faire tourner l(appli sur linux merci pour tes differents intervention
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 545
Salut,

Pour installer MIME::LIte il suffit de faire ça (xxx c'est pour la version - à toi de mettre le nom complet de l'archive)

en utilisateur
 $ tar xzvf MIME-Lite-xxx.tar.gz
 $ cd MIME-Lite-xxx
 $ perl Makefile.PL
 $ make
 $ make test
et en root (toujours dans le même répertoire)
 # make install
Il est possible que d'autres modules doivent être installés pour pouvoir installer MIME::Lite, à toi de voir.
Messages postés
25
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
12 septembre 2008
2
j'ai pu installer MIME:Lite et j'ai fait le test avec ce programme pris sur le net

# /usr/bin/ perl
use strict;
use MIME:Lite;
my $msg = new MIME::Lite
From =>'me@myhost.com',
To =>'you@yourhost.com',
Cc =>'some@other.com, some@more.com',
Subject =>'A simple text message',
Type =>'TEXT',
Data =>"Efficace non ?";
$msg -> send;
en changeant la chaine de caractere de From et To par ma boite email et supprimer la chaine de caractere de Cc =>'', comment faire dois-je utiliser un autre module?