Il motivo per cui questo è consentito oggi è semplicemente perché il sistema non lo impedisce.
Se questo cambiasse, romperebbe quei sistemi in cui gli amministratori hanno avuto un uso per questa funzione (vedi l'esempio di Terdon). Quindi non è mai stato cambiato e non credo che lo farà mai.
Inizialmente c'erano solo i file passwd e di gruppo e servivano al loro scopo. non vi era alcun comando adduser , nessun addgroup , i file venivano modificati da root usando vi o ed.
Ci sono state alcune stranezze!
Per ricordare il prossimo ID utente da usare, era comune per gli amministratori avere un utente speciale come ultima riga con un nome utente !
(perché !
era un nome utente non valido) e quella voce veniva utilizzata per memorizzare il successivo ID utente. Crudo, lo ammetto, ma ha funzionato! Quindi perché rompere un intestino rendendolo più complicato, simile allo sviluppo agile di oggi.
C'erano difetti noti. L'essere principale, che doveva essere leggibile dal mondo, in modo che i programmi di utilità come ls
potevano mappare user-id => name
. Ciò significava che chiunque poteva vedere la password crittografata di tutti e tutti gli utenti e gli ID nel sistema.
Alcuni sistemi Unix hanno iniziato a introdurre un paio di script di shell adduser
addgroup
, spesso questi sono stati ignorati, perché erano incoerenti tra Unix, quindi la maggior parte delle persone ha continuato con la modifica manuale.
Ci sono voluti alcuni anni, prima che il shadow
file delle password fosse inventato, questo forniva un po 'più di sicurezza, nascondendo le password crittografate. Ancora una volta, è stata aggiunta una complessità sufficiente, ma era ancora abbastanza grezza e semplice. Le utility useradd
e groupadd
sono state introdotte, che sono state mantenute shadow
e shadow-
aggiornate. Per cominciare, si trattava spesso di semplici wrapper di script shell attorno alle utility adduser / addgroup proprietarie dei fornitori . Ancora una volta, è bastato continuare.
Le reti di computer stavano crescendo, le persone stavano lavorando su più di una volta per fare i lavori, quindi l'amministratore dei passwd/group
file stava diventando un incubo, specialmente con NFS, quindi arrivano Pagine Gialle note anche come NIS per alleviare il carico.
Ormai stava diventando ovvio che era necessario qualcosa di un po 'più flessibile e fu inventata la PAM. Quindi, se tu fossi davvero sofisticato e volessi un sistema di autenticazione centralizzato, sicuro, unico, tutte le campane e fischietti che chiameresti ad un server centrale per l'autenticazione, forse un server Radius, un server LDAP o Active Directory.
Il mondo era cresciuto. Ma i file passwd / group / shadow sono rimasti per noi utenti / sviluppatori / lab più piccoli. Non avevamo ancora bisogno di tutte le campane e fischietti. Immagino che la filosofia fosse un po 'cambiata in "Se avessi intenzione di migliorarla, non l'avresti usata affatto" , quindi non preoccuparti.
Questo è il motivo per cui non penso che il semplice file passwd cambierà mai. Non ha più senso, ed è semplicemente fantastico per quei Raspberry Pi da £ 30 con 2 forse 3 temperature di monitoraggio dell'utente e feed di Twitter. OK, devi solo essere un po 'attento con i tuoi ID utente se li vuoi unici, e non c'è nulla che impedisca all'entusiasta di impacchettare useradd in uno script che seleziona prima l'id univoco successivo da un database (file) per impostare un ID unico, se è quello che vuoi. Dopotutto è open source.