if shell == "/bin/bash" and home.startswith ("/home"): print user
A noter que le .readlines () n'est plus nécessaire (depuis Python version xx ?) Et qu'on ne peut pas utiliser "pass" (quel est le terme: mot réservé ? mot clé du langage ?)
Version modifiée:
for line in open ("/etc/passwd", "r"): user, id, gid, password, name, home, shell = line.strip().split (":") if shell == "/bin/bash" and home.startswith ("/home"): print user
-- Yves
Le Fri, 02 May 2008 15:24:03 +0200, Alain BARTHE a écrit:
Bonjour,
for line in open ("/etc/passwd", "r").readlines ():
if shell == "/bin/bash" and home.startswith ("/home"):
print user
A noter que le .readlines () n'est plus nécessaire (depuis Python version
xx ?)
Et qu'on ne peut pas utiliser "pass" (quel est le terme: mot réservé ?
mot clé du langage ?)
Version modifiée:
for line in open ("/etc/passwd", "r"):
user, id, gid, password, name, home, shell = line.strip().split (":")
if shell == "/bin/bash" and home.startswith ("/home"):
print user
if shell == "/bin/bash" and home.startswith ("/home"): print user
A noter que le .readlines () n'est plus nécessaire (depuis Python version xx ?) Et qu'on ne peut pas utiliser "pass" (quel est le terme: mot réservé ? mot clé du langage ?)
Version modifiée:
for line in open ("/etc/passwd", "r"): user, id, gid, password, name, home, shell = line.strip().split (":") if shell == "/bin/bash" and home.startswith ("/home"): print user
-- Yves
Thierry B.
--{ Alain BARTHE a plopé ceci: }--
if shell == "/bin/bash" and home.startswith ("/home"): print user
Attention, tous les yusers n'ont pas forcément Bash, et tous les yusers ne sont pas forcément dans /home !
Souvent, on les reconnait plutôt parce que leur uid est supérieur à une certaine valeur (1000 ?)
-- "Rébarbatique" : science de la documentation informatique.
--{ Alain BARTHE a plopé ceci: }--
if shell == "/bin/bash" and home.startswith ("/home"):
print user
Attention, tous les yusers n'ont pas forcément Bash,
et tous les yusers ne sont pas forcément dans /home !
Souvent, on les reconnait plutôt parce que leur uid
est supérieur à une certaine valeur (1000 ?)
--
"Rébarbatique" : science de la documentation informatique.
if shell == "/bin/bash" and home.startswith ("/home"): print user
Attention, tous les yusers n'ont pas forcément Bash, et tous les yusers ne sont pas forcément dans /home !
Souvent, on les reconnait plutôt parce que leur uid est supérieur à une certaine valeur (1000 ?)
Je vais me renseigner, il y a forcement un moyen de determiner si un
utilisateur designe une personne ou un programme.
probablement que si le shell est /bin/false, c'est pas un utilisateur...
C'est plus compliqué que ça, tiré d'une Ubuntu :
www-data:x:33:33:www-data:/var/www:/bin/sh backup:x:34:34:backup:/var/backups:/bin/sh list:x:38:38:Mailing List Manager:/var/list:/bin/sh irc:x:39:39:ircd:/var/run/ircd:/bin/sh gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh nobody:x:65534:65534:nobody:/nonexistent:/bin/sh libuuid:x:100:101::/var/lib/libuuid:/bin/sh dhcp:x:101:102::/nonexistent:/bin/false
Alexfff
On 2 mai, 21:19, "Thierry B." wrote:
--{ Alain BARTHE a plopé ceci: }--
if shell == "/bin/bash" and home.startswith ("/home"): print user
Attention, tous les yusers n'ont pas forcément Bash, et tous les yusers ne sont pas forcément dans /home !
Souvent, on les reconnait plutôt parce que leur uid est supérieur à une certaine valeur (1000 ?)
-- "Rébarbatique" : science de la documentation informatique.
extrait du fichier /etc/adduser.conf sur debian:
# FIRST_SYSTEM_[GU]ID to LAST_SYSTEM_[GU]ID inclusive is the range for UIDs # for dynamically allocated administrative and system accounts/ groups. # Please note that system software, such as the users allocated by the base- passwd # package, may assume that UIDs less than 100 are unallocated. FIRST_SYSTEM_UID0 LAST_SYSTEM_UID™9
# FIRST_[GU]ID to LAST_[GU]ID inclusive is the range of UIDs of dynamically # allocated user accounts/ groups. FIRST_UID00 LAST_UID)999
ce qui devrait grandement faciliter la distinction user system | user.
On 2 mai, 21:19, "Thierry B." <t...@prout.stex.invalid> wrote:
--{ Alain BARTHE a plopé ceci: }--
if shell == "/bin/bash" and home.startswith ("/home"):
print user
Attention, tous les yusers n'ont pas forcément Bash,
et tous les yusers ne sont pas forcément dans /home !
Souvent, on les reconnait plutôt parce que leur uid
est supérieur à une certaine valeur (1000 ?)
--
"Rébarbatique" : science de la documentation informatique.
extrait du fichier /etc/adduser.conf sur debian:
# FIRST_SYSTEM_[GU]ID to LAST_SYSTEM_[GU]ID inclusive is the range for
UIDs
# for dynamically allocated administrative and system accounts/
groups.
# Please note that system software, such as the users allocated by the
base-
passwd
# package, may assume that UIDs less than 100 are
unallocated.
FIRST_SYSTEM_UID=100
LAST_SYSTEM_UID=999
# FIRST_[GU]ID to LAST_[GU]ID inclusive is the range of UIDs of
dynamically
# allocated user accounts/
groups.
FIRST_UID=1000
LAST_UID=29999
ce qui devrait grandement faciliter la distinction user system | user.
if shell == "/bin/bash" and home.startswith ("/home"): print user
Attention, tous les yusers n'ont pas forcément Bash, et tous les yusers ne sont pas forcément dans /home !
Souvent, on les reconnait plutôt parce que leur uid est supérieur à une certaine valeur (1000 ?)
-- "Rébarbatique" : science de la documentation informatique.
extrait du fichier /etc/adduser.conf sur debian:
# FIRST_SYSTEM_[GU]ID to LAST_SYSTEM_[GU]ID inclusive is the range for UIDs # for dynamically allocated administrative and system accounts/ groups. # Please note that system software, such as the users allocated by the base- passwd # package, may assume that UIDs less than 100 are unallocated. FIRST_SYSTEM_UID0 LAST_SYSTEM_UID™9
# FIRST_[GU]ID to LAST_[GU]ID inclusive is the range of UIDs of dynamically # allocated user accounts/ groups. FIRST_UID00 LAST_UID)999
ce qui devrait grandement faciliter la distinction user system | user.
Laurent
probablement que si le shell est /bin/false, c'est pas un utilisateur... ça dépend : mes utilisateurs de mail sont en shell /bin/false... parce
que je ne veux pas qu'ils aient accès à un shell, justement.. Maintenant, sont-ce des utilisateurs au sens de /c-note/ ... c'est une autre question :)
probablement que si le shell est /bin/false, c'est pas un utilisateur...
ça dépend : mes utilisateurs de mail sont en shell /bin/false... parce
que je ne veux pas qu'ils aient accès à un shell, justement..
Maintenant, sont-ce des utilisateurs au sens de /c-note/ ... c'est une
autre question :)