# \[Résolu\] Récupérer UID & GID à partir du nom

**URL:** <https://www.debian-fr.org/t/resolu-recuperer-uid-gid-a-partir-du-nom/10332>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 4:39 UTC](https://www.debian-fr.org/t/resolu-recuperer-uid-gid-a-partir-du-nom/10332 "2016-02-20T16:39:54Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![dexmon](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/d2c977/32.png) [@dexmon](https://www.debian-fr.org/u/dexmon)\
**Post date:** [Février 20, 2016, 4:39 UTC](https://www.debian-fr.org/t/resolu-recuperer-uid-gid-a-partir-du-nom/10332/1 "2016-02-20T16:39:54Z")

</div>

Bonjour,  
comment récupérer l’uid et le gid de l’utilisateur à partir de son nom avec un script bash ?  
voici comment se présente la ligne de l’utilisateur dans /etc/passwd:

```auto

```

Merci

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 4:39 UTC](https://www.debian-fr.org/t/resolu-recuperer-uid-gid-a-partir-du-nom/10332/2 "2016-02-20T16:39:55Z")

</div>

`uid=`grep $USER /etc/passwd | awk -F: '{ print $3 }'
guid=`grep $USER /etc/passwd | awk -F: '{ print $4 }'`

Il existe peut être mieux mais je ne connais pas et j’ai peut être inversé groupe et user.

---

<div class="post-metadata">

**Author:** ![dexmon](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/d2c977/32.png) [@dexmon](https://www.debian-fr.org/u/dexmon)\
**Post date:** [Février 20, 2016, 4:39 UTC](https://www.debian-fr.org/t/resolu-recuperer-uid-gid-a-partir-du-nom/10332/3 "2016-02-20T16:39:56Z")

</div>

[quote=“MisterFreez”]`uid=`grep $USER /etc/passwd | awk -F: '{ print $3 }'
guid=`grep $USER /etc/passwd | awk -F: '{ print $4 }'`

Il existe peut être mieux mais je ne connais pas et j’ai peut être inversé groupe et user.[/quote]

En tappant:

```auto

```

dans le shell il me met le prompt

> 

Appramment elle n’est pas finie la commande ?

Mais j’ai testé ceci:

```auto

```

Mais il me retourne la valeur des chaînes comme ceci:

`
UID=1003
GID=1002`

Alors qu’il me faudrait seulement l’UID avec une commande et le GID avec une autre.

J’ai testé ceci:

```auto

```

Et il me sort:

`
1003
:1002`  
Il faudrait qu’il me renvoi seulement ceci:

```auto

```

Un avis ?

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 4:39 UTC](https://www.debian-fr.org/t/resolu-recuperer-uid-gid-a-partir-du-nom/10332/4 "2016-02-20T16:39:56Z")

</div>

[quote=“dexmon”]En tappant:

```auto

```

dans le shell il me met le prompt

> [/quote]  
> Caractéristique d’un ’ oublié 😉

---

<div class="post-metadata">

**Author:** ![dexmon](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/d2c977/32.png) [@dexmon](https://www.debian-fr.org/u/dexmon)\
**Post date:** [Février 20, 2016, 4:39 UTC](https://www.debian-fr.org/t/resolu-recuperer-uid-gid-a-partir-du-nom/10332/5 "2016-02-20T16:39:56Z")

</div>

Arrf

Merci ça semble marcher ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green")

Que signifie print $3 et print $4 ??  
en particulier le $3 et le $4 ?

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 4:39 UTC](https://www.debian-fr.org/t/resolu-recuperer-uid-gid-a-partir-du-nom/10332/6 "2016-02-20T16:39:57Z")

</div>

```auto
définie le caractère séparateur, ici : (par défaut c'est espace)

awk va prendre chaque ligne qui lui viens (soit indiqué en paramètre soit son entrée standard) et pour chaque ligne va la coupé selon le ractère séparateur choisie. Chaque morceau de ligne est attribué à une variable [u]interne à awk[/u] (rien à voir avec les variables du shell).
[code]coluche:x:1003:1002:,,,:/home/coluche:/bin/bash[/code]
deviendras

coluche -> $1
x -> $2
1003 -> $3
1002 -> $4
,,, -> $5
/home/coluche -> $6
/bin/bash -> $7

On peut se débrouiller avec sed mais c'est plus chiant.

awk est un langage de script de flux assez puissant mais je ne me sert que de l'instruction print.
```

définie le caractère séparateur, ici : (par défaut c’est espace)

awk va prendre chaque ligne qui lui viens (soit indiqué en paramètre soit son entrée standard) et pour chaque ligne va la coupé selon le ractère séparateur choisie. Chaque morceau de ligne est attribué à une variable interne à awk (rien à voir avec les variables du shell).

```auto

```

deviendras

coluche -\> $1  
x -\> $2  
1003 -\> $3  
1002 -\> $4  
, -\> $5  
/home/coluche -\> $6  
/bin/bash -\> $7

On peut se débrouiller avec sed mais c’est plus chiant.

awk est un langage de script de flux assez puissant mais je ne me sert que de l’instruction print.

---

<div class="post-metadata">

**Author:** ![dexmon](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/d2c977/32.png) [@dexmon](https://www.debian-fr.org/u/dexmon)\
**Post date:** [Février 20, 2016, 4:39 UTC](https://www.debian-fr.org/t/resolu-recuperer-uid-gid-a-partir-du-nom/10332/7 "2016-02-20T16:39:57Z")

</div>

Si j’ai bien compris, avec awk il suffit juste de savoir compter jusqu’à la chaîne qui nous intéresse.  
Merci pour ton explication je comprend mieux.

Mais pour le caractère séparateur j’ai pas encore saisi:  
Le -F: (le caractère séparateur dans notre cas, c’est les deux points non ?)

Résolu

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 4:40 UTC](https://www.debian-fr.org/t/resolu-recuperer-uid-gid-a-partir-du-nom/10332/8 "2016-02-20T16:40:01Z")

</div>

[quote=“dexmon”]Mais pour le caractère séparateur j’ai pas encore saisi:  
Le -F: (le caractère séparateur dans notre cas, c’est les deux points non ?)[/quote]  
Exact si tu avais un csv avec comme séparateur ; tu aurais mis -F;
