Problema creazione utenti

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
simplex
Linux 2.x
Linux 2.x
Messaggi: 327
Iscritto il: mer 27 lug 2005, 0:00
Slackware: current
Desktop: xfce
Contatta:

Problema creazione utenti

Messaggio da simplex »

Ho installato Slackware 10.2 su un vecchio pc che avevo a casa.
Finita l'installazione configuro xorg, le consle, ecc. ecc. e creo un utente...mi loggo e sorpresa, la shell dice

Codice: Seleziona tutto

I have no name!@thermos:$
adduser non dà nessun tipo di errore, però le directory degli utenti hanno i seguenti permessi rwx--x--x, ho provato a cambiarli ma nulla da fare.
Qualcuno sa cosa c'è che non va?

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

in /etc/passwd c'è la riga dedicata all'utente appena creato? se sì, postala

Avatar utente
l1q1d
Master
Master
Messaggi: 1862
Iscritto il: lun 21 feb 2005, 0:00
Località: In uno spazio n-dimesionale
Contatta:

Messaggio da l1q1d »

hai chiamato il tuo pc "I have no name!"?
posta il risultato di

Codice: Seleziona tutto

cat /etc/hostname

Avatar utente
simplex
Linux 2.x
Linux 2.x
Messaggi: 327
Iscritto il: mer 27 lug 2005, 0:00
Slackware: current
Desktop: xfce
Contatta:

Messaggio da simplex »

Creo l'utente test, il file passwd sembra a posto:

Codice: Seleziona tutto

test:x:1001:100:,,,:/home/test:/bin/bash
@l1q1d: l'host è thermos, il prob. è che al posto di "test@thremos" esce fuori "i ha no name!@thermos" e non crea correttamente la directory dell'uaser poichè mancano pure i permessi. :shock: :shock:

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

cambia il nome utente da "test" in "guest"; "test" è il nome di un eseguibile e la shell va in tilt quando legge la riga di /etc/passwd in questione;

Avatar utente
simplex
Linux 2.x
Linux 2.x
Messaggi: 327
Iscritto il: mer 27 lug 2005, 0:00
Slackware: current
Desktop: xfce
Contatta:

Messaggio da simplex »

Ho già provato con altri nomi di utenti ma nulla da fare....

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

ed usando useradd al posto di adduser?

Eurialo
Linux 1.x
Linux 1.x
Messaggi: 199
Iscritto il: ven 9 dic 2005, 15:44
Località: Caltanissetta
Contatta:

Messaggio da Eurialo »

Paoletta ha scritto:cambia il nome utente da "test" in "guest"; "test" è il nome di un eseguibile e la shell va in tilt quando legge la riga di /etc/passwd in questione;
la shell non ha idea di cosa sia un login... /bin/login effettua il login ed e' chiamato da agetty (nel caso piu' comune) ... la shell ancora non entra in gioco! (ti sembra possibile che la shell possa aprire un file in cui e' specificato che shell usare? ;))

pero' sul fatto che sia bash a combinare questo inghippo hai pienamente ragione... lo possiamo vedere esaminando shell.c:

Codice: Seleziona tutto

void
get_current_user_info ()
{
  struct passwd *entry;

  /* Don't fetch this more than once. */
  if (current_user.user_name == 0)
    {
      entry = getpwuid (current_user.uid);
      if (entry)
        {
          current_user.user_name = savestring (entry->pw_name);
          current_user.shell = (entry->pw_shell && entry->pw_shell[0])
                                ? savestring (entry->pw_shell)
                                : savestring ("/bin/sh");
          current_user.home_dir = savestring (entry->pw_dir);
        }
      else
        {
          current_user.user_name = _("I have no name!");
          current_user.user_name = savestring (current_user.user_name);
          current_user.shell = savestring ("/bin/sh");
          current_user.home_dir = savestring ("/");
        }
      endpwent ();
    }
}
quindi vediamo che e' la getpwuid() chiamata sullo uid dell'utente che da' un risultato non voluto (ovvero NULL)... perche'?
ce lo dice "man getpwuid":

Codice: Seleziona tutto

RETURN VALUE
       The  getpwnam()  and getpwuid() functions return a pointer to a passwd structure, or NULL if the matching
       entry is not found or an error occurs.  If an error occurs, errno is set appropriately.  If one wants  to
       check errno after the call, it should be set to zero before the call.
quindi.... se proprio non riesci a capire qual'e' l'errore e hai assoluta necessita' di far funzionare quei login... metti mano al codice di bash in modo che faccia un printf del numero dell'errore e confrontalo con quelli riportati in "man getpwuid".


si,ok, questa e' una soluzione abbastanza complicatina... ma nel frattempo avresti aggiunto una feature a bash e potresti proporla al team di sviluppo!


ciao!

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

a shell non ha idea di cosa sia un login... /bin/login effettua il login ed e' chiamato da agetty (nel caso piu' comune) ... la shell ancora non entra in gioco! (ti sembra possibile che la shell possa aprire un file in cui e' specificato che shell usare?)
ok, chiedo scusa...c'è sempre da imparare! :wink:

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

P.S. in effetti avevo pensato che, dopo aver effettuato il login, la bash andasse a leggere quel file (per prendere come parametro il nome dell'utente) e questo non è per nulla incompatibile con il fatto che sia /bin/login a fare il login;
difatti la bash lo legge poichè, dal codice che riporti, il contenuto della riga relativa a chi si logga è puntato da entry;

Avatar utente
simplex
Linux 2.x
Linux 2.x
Messaggi: 327
Iscritto il: mer 27 lug 2005, 0:00
Slackware: current
Desktop: xfce
Contatta:

Messaggio da simplex »

Ok proverò! Grazie mille :wink:

Eurialo
Linux 1.x
Linux 1.x
Messaggi: 199
Iscritto il: ven 9 dic 2005, 15:44
Località: Caltanissetta
Contatta:

Messaggio da Eurialo »

Paoletta ha scritto:P.S. in effetti avevo pensato che, dopo aver effettuato il login, la bash andasse a leggere quel file (per prendere come parametro il nome dell'utente) e questo non è per nulla incompatibile con il fatto che sia /bin/login a fare il login;
difatti la bash lo legge poichè, dal codice che riporti, il contenuto della riga relativa a chi si logga è puntato da entry;
quel che voglio dire e' che la bash lo legge proprio dal suo codice sorgente... per questo e' alquanto improbabile che trovando un nome che casualmente e' uguale ad un comando "decida" di provare ad eseguirlo!
altra cosa sarebbe se negli script di inizializzazione della bash (profile, bashrc e simili) ci fosse una cosa come "source /etc/passwd".. ma questa non c'e'! dal momento che avevi messo in relazione il nome dell'utente con quello del programma e che questa relazione e' figurabile solo in quest'ultimo caso, credevo che ti riferissi proprio a questa eventualita'!

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

non ho guardato il codice della bash prima di rispondere ed ho pensato che chiamare un utente come un comando fosse fonte di qualche problema (non necessariamente leagto all'esecuzione dello stesso)...devo prendere l' abitudine di esaminare il codice sorgente, e mi sa che dopo questo errore lo farò più spesso; ciao e grazie! :wink:
@simplex: per quel che devi fare ti può essere utile anche la funzione perror;

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

simplex, prova anche a dare un'occhiata ai permessi di /etc/passwd (che devono essere "-rw-r--r--");
questo perchè ho trovato questa pagina web, che forse ti può servire:
http://www.comptechdoc.org/os/linux/how ... lbash.html

Avatar utente
simplex
Linux 2.x
Linux 2.x
Messaggi: 327
Iscritto il: mer 27 lug 2005, 0:00
Slackware: current
Desktop: xfce
Contatta:

Messaggio da simplex »

Una cosa importante: ho sisteatio i permessi di /etc/passwd, che erano --x------ ???? Però non funzionava corretamente la creazione degli utenti...forse qulche pacchetto era corrotto...Ho reinstallato tuto ed ora funziona alla grande!
Grazie a tutti

Rispondi