Qual è lo scopo dell'utente "nessuno"?

77

Dopo aver letto Elenca tutti gli utenti umani ho notato che esiste un account utente denominato " nessuno nel mio sistema Ubuntu.

Inoltre ho notato che posso accedere a questo account dal terminale usando il seguente comando e la mia password:

sudo su nobody

Non mi dispiace affatto, ma voglio sapere qual è lo scopo di questo utente? Viene creato di default su una nuova installazione di Ubuntu o viene creato installando un particolare pacchetto?

    
posta Radu Rădeanu 07.08.2013 - 14:52

5 risposte

73

È lì per eseguire cose che non hanno bisogno di permessi speciali. Di solito è riservato ai servizi vulnerabili (httpd, ecc.) In modo che se vengono violati, avranno un danno minimo sul resto del sistema.

Confrontalo con un utente as reale, se tale servizio fosse compromesso (i server Web vengono occasionalmente sfruttati per eseguire codice arbitrario), verrebbe eseguito come tale utente e avrà accesso a tutto ciò che l'utente aveva. Nella maggior parte dei casi, è male come root.

Puoi leggere un po 'di più sull'utente nobody sul Wiki di Ubuntu:

Per rispondere ai tuoi follow-up:

Perché non riesco ad accedere a questo account con su nobody ?

sudo grep nobody /etc/shadow ti mostrerà che nessuno non ha una password e non puoi su senza una password dell'account. Il modo più pulito è invece di sudo su nobody . Ti lascerà in una shell sh piuttosto desolata.

Puoi dare un esempio particolare quando è indicato per usare questo account?

Quando le autorizzazioni non sono richieste per le operazioni di un programma. Ciò è più notevole quando non ci sarà mai alcuna attività del disco.

Un esempio di mondo reale di questo è memcached (un valore-chiave in memoria cache / database / cosa), seduto sul mio computer e il mio server che gira sotto l'account nessuno. Perché? Perché semplicemente non ha bisogno di permessi e dargli un account che ha accesso in scrittura ai file sarebbe solo un rischio inutile.

    
risposta data Oli 07.08.2013 - 15:02
26
  

In molte varianti di Unix, "nessuno" è il nome convenzionale di un utente   account che non possiede file, non ha gruppi privilegiati e non ha   abilità eccetto quelle che ogni altro utente ha.

     

È normale eseguire daemon come nessuno, in particolare i server, al fine di   limitare il danno che potrebbe essere fatto da un utente malintenzionato che ha guadagnato   controllo di loro. Tuttavia, l'utilità di questa tecnica è ridotta   se più di un demone viene eseguito in questo modo, perché quindi ottenere il controllo   di un demone fornirebbe il controllo di tutti loro. La ragione è questa   i processi di proprietà di nessuno hanno la capacità di inviare segnali a vicenda   e persino eseguire il debug l'un l'altro, consentendo loro di leggere o persino modificare ciascuno di essi   memoria degli altri.

Informazioni tratte dal link .

    
risposta data Paulius Šukys 07.08.2013 - 15:02
15

L'utente nobody viene creato per impostazione predefinita su una nuova installazione (selezionata su Ubuntu Desktop 13.04).

  

In molte varianti * nix, nobody è il nome convenzionale di un utente   account che non possiede file, non ha gruppi privilegiati e non ha   abilità eccetto quelle che ogni altro utente ha (il nobody utente   e il gruppo non ha alcuna voce nel file /etc/sudoers ).

     

È normale eseguire demoni come nobody , in particolare server, in   per limitare il danno che potrebbe essere fatto da un utente malintenzionato che   acquisito il controllo su di loro. Tuttavia, l'utilità di questa tecnica è   ridotto se più di un demone viene eseguito in questo modo, perché in questo modo si ottiene   il controllo di un daemon fornirebbe il controllo di tutti loro. Il motivo è   quei processi con nobody hanno la capacità di inviare segnali a ciascuno   altri e persino si fanno il debug l'un l'altro, permettendo loro di leggere o persino modificare   memoria degli altri.

     

Sorgente :    Wikipedia - Nessuno (nome utente)

  

I processi con nobody sono in grado di inviare segnali gli uni agli altri   e anche a vicenda in Linux, il che significa che è di proprietà di nessuno   processo può leggere e scrivere la memoria di un altro processo di proprietà di nessuno.

     

Questa è una voce di esempio dell'utente nobody nel file /etc/passwd :

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

Come potresti notare, l' nobody utente ha /bin/sh come shell di login   e /nonexistent come directory home. Come suggerisce il nome, il   La directory /nonexistent non esiste, per impostazione predefinita.

     

Se sei paranoico, puoi impostare come% di default la shell di nobody come    /usr/sbin/nologin e quindi, nega il login ssh per l'utente nobody .

     

Sorgente :    LinuxG.net - L'utente di Linux e Unix Nobody

    
risposta data Alaa Ali 07.08.2013 - 15:13
14

Le anwers sopra sono piuttosto sbagliate, perché presuppongono che nobody sia un ID utente "generico" anonimo / di tipo guest.

Nel modello di controllo degli accessi UNIX / Linux, gli ID utente stile anonimo / ospite non esistono e questi sono suggerimenti errati:

  • " comune per eseguire i demoni come nobody , in particolare i server, al fine di limitare il danno che potrebbe essere fatto da un utente malintenzionato che ha acquisito il controllo su di essi. " a causa di quanto segue: " Tuttavia, l'utilità di questa tecnica è ridotta se più di un daemon viene eseguito in questo modo, perché quindi ottenere il controllo di un daemon fornirà il controllo di tutti loro ".
  • " Un esempio reale di questo è memcached (un valore-chiave in memoria cache / database / cosa), seduto sul mio computer e il mio server in esecuzione con l'account nobody . semplicemente non ha bisogno di permessi e dargli un account che ha accesso in scrittura ai file sarebbe solo un rischio inutile. "

Il nome utente nobody con ID utente 65534 è stato creato e riservato per uno scopo specifico e dovrebbe essere utilizzato solo a tale scopo: come segnaposto per gli utenti "non mappati" e gli ID utente nelle esportazioni dell'albero NFS.

Cioè, a meno che il mapping utente / id non sia impostato per le esportazioni dell'albero NFS, i file tutti nell'esportazione appariranno di proprietà di nobody . Lo scopo di questo è di impedire a tutti gli utenti del sistema di importazione di accedere a quei file (a meno che non dispongano di permessi "altri"), poiché nessuno di essi (eccetto root ) può essere / diventare nobody .

Quindi è una pessima idea usare nobody per qualsiasi altro scopo, perché il suo scopo è di essere un nome utente / id utente per i file che non devono essere accessibili a nessuno.

Anche la voce Wiki è molto sbagliata.

Lo studio UNIX / Linux è quello di creare un nuovo account per ogni "applicazione" o area applicativa che ha bisogno di un dominio di controllo accessi separato e di non riutilizzare mai nobody all'esterno di NFS.

    
risposta data PeterG 15.09.2015 - 14:07
1

nessuno è un utente speciale e un account di gruppo. Poiché è un nome utente effettivo (e un nome di gruppo) e può essere utilizzato dai processi e persino dagli utenti, non è letteralmente nessuno . Ad esempio, alcune configurazioni di Apache non hanno nessuno come utente / gruppo che possiede i file e le directory del sito web. Il problema si presenta quando più processi potrebbero utilizzare l'utente nobody, come le directory NFS e il server web.

    
risposta data jeffmcneill 11.11.2016 - 08:31

Leggi altre domande sui tag