Quel est le but de l'utilisateur 'nobody'?

77

Après avoir lu Liste de tous les utilisateurs humains , j'ai remarqué qu’il existe un compte utilisateur nommé ' personne dans mon système Ubuntu.

J'ai également remarqué que je pouvais me connecter à ce compte à partir du terminal en utilisant la commande suivante et mon mot de passe:

sudo su nobody

Cela ne me dérange pas du tout, mais je veux savoir quel est le but de cet utilisateur? Est-il créé par défaut sur une nouvelle installation d'Ubuntu ou est-il créé en installant un paquet particulier?

    
posée Radu Rădeanu 07.08.2013 - 14:52
la source

5 réponses

73

Il est là pour exécuter des choses qui ne nécessitent aucune autorisation spéciale. Il est généralement réservé aux services vulnérables (httpd, etc.), de sorte que s'ils sont piratés, ils subissent des dégâts minimes sur le reste du système.

Comparez cela avec l’exécution de quelque chose en tant que utilisateur réel, si ce service était compromis (les serveurs Web sont parfois exploités pour exécuter du code arbitraire), il s'exécuterait en tant qu'utilisateur et aurait accès à tout ce que l'utilisateur avait. Dans la plupart des cas, c'est aussi mauvais que d’obtenir la racine.

Vous pouvez en savoir un peu plus sur l’utilisateur de personne sur le wiki Ubuntu:

Pour répondre à vos suivis:

Pourquoi je ne peux pas accéder à ce compte avec su nobody ?

sudo grep nobody /etc/shadow vous montrera que personne n'a pas de mot de passe et que vous ne pouvez pas su sans mot de passe de compte. La manière la plus propre est de sudo su nobody à la place. Cela vous laissera dans un joli shell sh désolé.

Pouvez-vous donner un exemple particulier quand est-il indiqué d'utiliser ce compte?

Lorsque les autorisations ne sont pas requises pour les opérations d'un programme. Ce qui est le plus notable quand il n’ya jamais d’activité disque.

Un exemple de monde réel est memcached (un cache / base de données / objet de valeur-clé en mémoire), assis sur mon ordinateur et mon serveur s'exécutant sous le compte nobody. Pourquoi? Parce qu'il n'a tout simplement pas besoin d'autorisations et que lui donner un compte qui avait un accès en écriture aux fichiers ne serait qu'un risque inutile.

    
réponse donnée Oli 07.08.2013 - 15:02
la source
25
  

Dans beaucoup de variantes Unix, "personne" est le nom classique d'un utilisateur   compte qui ne possède aucun fichier, n’est dans aucun groupe privilégié et n’a pas de   capacités à l'exception de celles que tout autre utilisateur possède.

     

Il est courant d’exécuter des démons en tant que personne, en particulier des serveurs, pour   limiter les dommages qui pourraient être causés par un utilisateur malveillant ayant gagné   contrôle d'eux. Cependant, l'utilité de cette technique est réduite   si plusieurs démons sont exécutés comme ceci, car alors gagner le contrôle   d'un démon permettrait de les contrôler tous. La raison en est que   les processus appartenant à personne n'ont la possibilité d'envoyer des signaux les uns aux autres   et même se déboguer, ce qui leur permet de lire ou même modifier chaque   la mémoire des autres.

Informations extraites de lien .

    
réponse donnée Paulius Šukys 07.08.2013 - 15:02
la source
15

L'utilisateur nobody est créé par défaut sur une nouvelle installation (vérifiée sur Ubuntu Desktop 13.04).

  

Dans de nombreuses variantes * nix, nobody est le nom classique d'un utilisateur   compte qui ne possède aucun fichier, n’est dans aucun groupe privilégié et n’a pas de   capacités à l'exception de celles que tout autre utilisateur possède (l'utilisateur nobody   et le groupe n'ont aucune entrée dans le fichier /etc/sudoers ).

     

Il est courant d’exécuter les démons en tant que nobody , en particulier les serveurs, dans   afin de limiter les dommages qui pourraient être causés par un utilisateur malveillant qui   pris le contrôle d'eux. Cependant, l'utilité de cette technique est   réduit si plus d'un démon est exécuté comme ça, car alors gagner   le contrôle d'un démon permettrait de les contrôler tous. La raison est   que nobody processus possédés ont la capacité d'envoyer des signaux à chaque   d'autres et même se déboguer, leur permettant de lire ou même modifier   la mémoire de l'autre.

     

Source :    Wikipedia - Personne (nom d'utilisateur)

  

Les processus nobody sont capables de se transmettre des signaux   et même se disputer sous Linux, ce qui signifie que personne   processus peut lire et écrire la mémoire d'un autre processus appartenant à personne.

     

Ceci est un exemple d’entrée de l’utilisateur nobody dans le fichier /etc/passwd :

[email protected]:~$ grep nobody /etc/passwd
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
     

Comme vous pouvez le constater, l’utilisateur nobody a /bin/sh comme shell de connexion   et /nonexistent comme répertoire de base. Comme son nom l'indique, le   Le répertoire /nonexistent n'existe pas, par défaut.

     

Si vous êtes paranoïaque, vous pouvez définir le shell par défaut de nobody comme    /usr/sbin/nologin et donc, refusez la connexion ssh pour l'utilisateur nobody .

     

Source :    LinuxG.net - L'utilisateur Linux et Unix Nobody

    
réponse donnée Alaa Ali 07.08.2013 - 15:13
la source
14

Les réponses ci-dessus sont plutôt incorrectes, car elles supposent que nobody est un ID utilisateur de style anonyme / invité "générique".

Dans le modèle de contrôle d’accès UNIX / Linux, les identifiants d’utilisateur de style anonyme / invité n’existent pas et ce sont de mauvaises suggestions:

  • " commun d’exécuter les démons sous la forme nobody , en particulier les serveurs, afin de limiter les dommages pouvant être causés par un utilisateur malveillant qui en a pris le contrôle. " à cause de cela: " Cependant, l'utilité de cette technique est réduite si plusieurs démons sont exécutés comme cela, car alors gagner le contrôle d'un démon permettrait de les contrôler tous ".
  • " Un exemple concret de ceci est memcached (un cache / base de données / objet de valeur-clé), assis sur mon ordinateur et mon serveur fonctionnant sous le compte nobody . Pourquoi? il n'a tout simplement pas besoin d'autorisations et pour lui donner un compte disposant d'un accès en écriture aux fichiers serait simplement un risque inutile. "

Le nom d'utilisateur nobody avec l'ID utilisateur 65534 a été créé et réservé à un usage spécifique et doit être utilisé uniquement à cette fin: en tant qu'espace réservé aux utilisateurs et identifiants utilisateur "non mappés" dans les exportations d'arborescence NFS.

Autrement dit, à moins que le mappage utilisateur / id ne soit configuré pour les exportations d'arborescence NFS, tous les fichiers tous de l'exportation apparaîtront comme appartenant à nobody . Cela a pour but d'empêcher tous les utilisateurs du système d'importation d'accéder à ces fichiers (à moins qu'ils ne disposent d'autres autorisations), car aucun d'eux (à l'exception de root ) ne peut être / devenir nobody .

C'est donc une très mauvaise idée d'utiliser nobody pour d'autres autres fins, car son but est d'être un nom d'utilisateur / identifiant d'utilisateur pour les fichiers qui ne doivent être accessibles à personne. / p>

L'entrée Wiki est très erronée aussi.

La pratique UNIX / Linux consiste à créer un nouveau compte pour chaque "application" ou domaine d’application nécessitant un domaine de contrôle d’accès distinct, et de ne jamais réutiliser nobody en dehors de NFS.

    
réponse donnée PeterG 15.09.2015 - 14:07
la source
1

personne n'est un compte d'utilisateur et de groupe spécial. Comme il s'agit d'un nom d'utilisateur (et nom de groupe) réel et qu'il peut être utilisé par les processus et même par les utilisateurs, il ne s'agit pas littéralement de personne . Par exemple, certaines configurations d'Apache n'ont personne en tant qu'utilisateur / groupe propriétaire des fichiers et des répertoires du site Web. Le problème survient lorsque plusieurs processus peuvent utiliser l'utilisateur nobody, tels que les répertoires NFS et le serveur Web.

    
réponse donnée jeffmcneill 11.11.2016 - 08:31
la source

Lire d'autres questions sur les étiquettes