web-dev-qa-db-fra.com

CHOWN: Que représente "id -u"

Je travaille pour que Mongodb s'exécute sur un serveur Ubuntu. En examinant instructions , je devais créer un répertoire "\ data\db" dans le lecteur racine. À ce stade, j'ai dû modifier le propriétaire à l'aide de la commande CHOWN comme suit:

Sudo chown `id -u` /data/db

Lorsque j'émets cette commande telle qu'elle apparaît dans le guide de démarrage rapide que je reçois

chown: invalid user: 'id -u'

Je suis nouveau sur Linux, alors ce que je ne comprends pas, c'est ce que "id -u" était censé vouloir dire. Lorsque je remplace par mon nom d'utilisateur, la commande se termine correctement et mongo s'exécute. Quelqu'un peut-il m'aider à comprendre ce que le raccourci "id -u" indiquerait à un utilisateur expert de Linux qu'il ne m'a pas signalé?

6
JPrescottSanders

La commande id -u imprime votre "ID utilisateur numérique" (abrégé: UID); comme vous l'avez déjà remarqué, cela revient à épeler votre nom d'utilisateur au complet sur la ligne de commande chown. En effet, les invocations de commande suivantes devraient toutes avoir le même effet:

Sudo chown `id -u` /data/db
Sudo chown $USER /data/db

La raison pour laquelle cela n’a pas fonctionné comme prévu a probablement un rapport avec les guillemets: ils doivent être des citations arrières (caractère ASCII 0x60), alors que l’erreur chown Un message vous suggère d'utiliser des guillemets simples (caractère ASCII 0x27).

Vous pouvez trouver une explication très détaillée de UNIX Shell citant ici .

13
Riccardo Murri

Il retourne votre identifiant d'utilisateur. Exécutez man id pour plus d'informations.

0
Tommy Brunn

id -u imprime votre identifiant utilisateur sur le système. Comme alternative, vous pouvez simplement exécuter cette commande:

Sudo chown <user> /data/db en remplaçant <user> par votre nom d'utilisateur sur le système.

0
Marco Ceppi