Quali sono i nomi dei gruppi consentiti per groupadd?


13

Ho seguito queste istruzioni per creare Shadow, che fornisce il groupaddcomando. Ora sto ricevendo un errore quando provo questo:

$ groupadd automake1.10
groupadd: 'automake1.10' is not a valid group name

Ho controllato i nomi alfanumerici e funzionano bene.

Risposte:


20

Vedi il codice sorgente, in particolare libmisc/chkname.c. Shadow è piuttosto conservativo: i nomi devono corrispondere al regexp [_a-z][-0-9_a-z]*\$?e possono essere GROUP_NAME_MAX_LENGTHlunghi al massimo a caratteri (opzione di configurazione, valore predefinito 16; i nomi utente possono in genere arrivare a un massimo di 32 caratteri, soggetto alla determinazione del tempo di compilazione).

Debian rilassa molto il controllo. A partire dalla compressione, tutto tranne gli spazi bianchi :è permesso. Vedi bug # 264879 e bug # 377844 .

POSIX richiede di consentire lettere di entrambi i casi, cifre e ._-( come nei nomi dei file ). POSIX non impone alcuna restrizione se non ti interessa la portabilità. Numerose restrizioni consigliate derivano dall'uso:

  • Due punti, newline e null sono appena usciti; non puoi semplicemente usarli in /etc/passwdo /etc/group.
  • Un nome costituito esclusivamente da cifre è una cattiva idea chowne chgrpsi presume che tratti una sequenza di cifre come un nome se si trova nel database utenti / gruppi, ma altre applicazioni possono considerare qualsiasi numero come un ID numerico.
  • Un nome iniziale -o un .nome utente non è fortemente raccomandato, poiché molte applicazioni prevedono di poter passare $user.$groupa un'utilità esterna (ad es. chown $user.$group /path/to/file) ¹. Un .nome in un gruppo dovrebbe causare meno problemi, ma lo sconsiglio comunque.
  • / è probabile che causi anche problemi, poiché alcuni programmi prevedono di poter utilizzare i nomi utente nei nomi dei file.
  • Qualsiasi personaggio che la shell dovrebbe espandere è probabilmente rischioso.
  • I caratteri non ASCII dovrebbero essere ok se non ti interessa condividere con sistemi che potrebbero usare codifiche diverse.

¹ Si aspettano tutte le implementazioni moderne chown $user:$group, ma supportano chown $user.$groupla compatibilità con le versioni precedenti e ci sono troppe applicazioni là fuori che passano un punto per rimuovere quel supporto di compatibilità.


Riguardo chownall'argomento: l'attuale sintassi, almeno nei coreutils GNU, è user:group, con il punto accettato solo per compatibilità. Uno può usare j.smith:j.smith.
user1686

1
@grawity: Non si tratta solo di coreutils GNU, ma il problema non è chownesso stesso, sono gli script esistenti e altri programmi che chiamano chown $user.$groupinvece di chown $user:$group- anche se l' chownimplementazione cerca di fare la cosa giusta, alcuni casi sono intrinsecamente ambigui.
Gilles 'SO- smetti di essere malvagio' il

1

Se ti senti avventuroso, puoi modificare /etc/groupdirettamente e inserire qualsiasi nome di gruppo ti piaccia. Inoltre, questo ha l'ulteriore vantaggio che quando si incontra uno dei problemi menzionati da @Gilles, potresti non essere in grado di caricare un editor per risolvere il problema o addirittura accedere, dandoti un'esperienza preziosa nel recupero di un sistema guasto!


5
Non dimenticare di modificare /etc/gshadowquando aggiungi gruppi. Inoltre, utilizzare vigr(8)anziché modificare direttamente i file.
Camh
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.