# [in cerca di nuove idee]Utente con permessi particolari

## algebrato

Un saluto a tutti, 

ho una questione da presentarvi: 

sono un utente gentoo e vorrei creare un utente sul mio pc in grado di fare altri utenti  :Very Happy:  ... ok mi spiego meglio.

In sostanza vorrei che una persona qualunque connettendosi via ssh alla porta XX con utente (per esempio) newuser ,  sia in grado di fare un utente. 

Non so se conoscete shellmix.com , volevo provare a fare una cosa di questo tipo, ti connetti sulla porta 30 via ssh, parte subito uno script in cui metti le tue credenziali e fai l'utente sulla macchina.

Da voi vorrei sapere solo una cosa: 

-) E' possibile mettere in piedi una cosa di questo tipo con strumenti già esistenti? C'è giù qualche utility che posso usare per fare questo ?

Se non esiste nulla di questo volevo scrivere un programma in C e usare le pwd.h per sostanzialmente creare un programmino che racchiuda useradd e passwd, poi metterlo come setsuid e farlo lanciare al momento del login dell'utente "newuser" (cioè l'utente che si usa per creare il proprio account). 

Non so .... se vi vengono idee / critiche / insulti sarei molto contento di ascoltarvi !

Vi ringrazio anticipatamente di tutto.

Un saluto,

Stefano Mandelli.

----------

## fbcyborg

/usr/sbin/useradd è eseguibile da tutti gli utenti. 

Hai fatto qualche prova?

----------

## algebrato

 *fbcyborg wrote:*   

> /usr/sbin/useradd è eseguibile da tutti gli utenti. 
> 
> Hai fatto qualche prova?

 

Ciao ! 

Si avevo fatto qualche prova ma non è così banale la questione per i seguenti motivi:

-) Se uso sudo e do il permesso al sudo di usare useradd ... possono crearmi un utente con uid 0 dando soltanto un sudo useradd -uid 0 utenteexploit !

Tu mi dirai, bloccagli la shell, ok ....io blocco la shell ma potrebbero farmi sempre un:

ssh newuser@server sudo useradd -uid 0 utentefarlocco

e mi crano ancora un utente con uid0 ! 

Quini nisba ....

senza poi il fatto che se metto nel sudo passwd tutti possono cambiare la pass di tutti  :Very Happy:  anche questo non bello.

Cmq ho risolto .... dopo circa 1000 righe di C  :Very Happy:  .... uso la shadow.h la pwd.h e la crypt.h così riesco a far fare all'utente esattamente quello che voglio io.

Tra pochi giorni dovrei essere in grado di aprire le porte  :Very Happy:  .... ti invito a darci un'occhiata .....

E' una cosa amatoriale fatta tanto per mettersi alla prova , quindi non pretendere nulla di che  :Very Happy: 

gli sviluppi li metto tutti su questo sito :

http://linuxfree.altervista.org

Ciao !!

----------

## fbcyborg

Bravo!!  :Wink: 

se hai risolto allora metti il tag RISOLTO nel titolo.

----------

## djinnZ

Indulgendo a convinzioni che potrebbero dare adito al definirmi "all'antica", pur tacciando di bestialità le cosiddette "innovazioni" introdotte in virtù della presenza predominante dell'utonto di matrice windozziana o mac, pur irridendo e dileggiando, finanche adoperando espressioni volgari assai, alla comune tendenza a porre in essere implementazioni incongrue per poi affidarsi ad ammennicoli ed inutili orpelli quali sono in questi termini i cosiddetti "sistemi di sicurezza" mi permetto assai poco cortesemente di sottolineare la faciloneria implicita nel voler porre in esecuzione un programma con attributo suid quando le buone maniere vorrebbero il ricorso ad un demone esterno e non legato in modo alcuno all'utente dal quale viene invocata la shell od al webserver che gestisce il form (deprecando in tal modo l'impiego di in cgi di tale codice).

Ometto lo scontato ed offensivo sarcasmo per il ricorso ad una soluzione certamente assai più dispendiosa, di proprie energie sopra tutto, e poco confacente alle comuni necessità di sicurezza sebbene sia utile sottolineare che il cosiddetto "programmino", termine ed approccio assai in voga, permane una solenne ... stronzata.

Stanti i frequenti episodi passati di incomprensione e l'esser tacciati di condotta inurbana si invita il lettore ad adottare il necessario spirito critico e comprendere che l'appunto non vuol apparire aggressivo e l'intonazione con la quale pronunziarlo è quella dello scherzo, non dello scherno.

Beninteso che qualora ci si adiri per così poco non rappresenta certo questione di cui ci si cura in quanto non è prescritta indulgenza alcuna nei confronti dei limiti cogitativi e cognitivi di coloro che "sempre severi" possono solo esser individuati quali "insani".

----------

## algebrato

 *djinnZ wrote:*   

> Indulgendo a convinzioni che potrebbero dare adito al definirmi "all'antica", pur tacciando di bestialità le cosiddette "innovazioni" introdotte in virtù della presenza predominante dell'utonto di matrice windozziana o mac, pur irridendo e dileggiando, finanche adoperando espressioni volgari assai, alla comune tendenza a porre in essere implementazioni incongrue per poi affidarsi ad ammennicoli ed inutili orpelli quali sono in questi termini i cosiddetti "sistemi di sicurezza" mi permetto assai poco cortesemente di sottolineare la faciloneria implicita nel voler porre in esecuzione un programma con attributo suid quando le buone maniere vorrebbero il ricorso ad un demone esterno e non legato in modo alcuno all'utente dal quale viene invocata la shell od al webserver che gestisce il form (deprecando in tal modo l'impiego di in cgi di tale codice).
> 
> Ometto lo scontato ed offensivo sarcasmo per il ricorso ad una soluzione certamente assai più dispendiosa, di proprie energie sopra tutto, e poco confacente alle comuni necessità di sicurezza sebbene sia utile sottolineare che il cosiddetto "programmino", termine ed approccio assai in voga, permane una solenne ... stronzata.
> 
> Stanti i frequenti episodi passati di incomprensione e l'esser tacciati di condotta inurbana si invita il lettore ad adottare il necessario spirito critico e comprendere che l'appunto non vuol apparire aggressivo e l'intonazione con la quale pronunziarlo è quella dello scherzo, non dello scherno.
> ...

 

Sul fatto che la soluzione del "programmino" fatto ad hoc sia sempre una stronzata mi trovi perfettamente in accordo. Però davanti mi si è presentato un problema non indifferente. Dare la possibilità a qualcuno di fare un utente sulla mia macchina, sin dall'inizio non mi è sembrato un problema di facile soluzione. Una possibile soluzione che mi proponi : "demone in ascolto su un porta" mi piace un sacco, effettivamente io non ci avevo pensato .... magari una cosa su una macchina a parte che fa da server ldap. L'utente completa una form , la form aggiorna il db ldap e il gioco potrebbe essere fatto.

Questo è un po' il motivo per cui ho iniziato a fare sta cosa, perchè sicuramente prima di arrivare ad una soluzione decente mi verranno in mente altre 1000 stronzate  :Very Happy:  ... ogni fail della stronzata mi fa capire che potevo inventarmi qualcosa di meglio. 

Come ho detto nel primo messaggio ogni critica / insulto / idea per me va benissimo ! 

Grazie mille di tutto!

----------

## djinnZ

Non devi per forza mettere un demone in ascolto su una porta, c'è anche il buon vecchio meccanismo a semaforo, tanto per tenerci alle buone tradizioni del passato.

Con un programma shell od un form (poco importa basta che abbiano diritti limitati) scrivi in un file, in una specifica directory il nome dell'utente da creare, con inotify/dnotify (usandoli in un programma ad hoc) quando la dir viene modificata leggi il file e crei l'utente di conseguenza facendo attenzione a che i parametri per gruppo ed uid siano espliciti.

Più semplice e sicuro ed eviti di metter mano direttamente a shadow & C, cosa che potrebbe far incazzare non poco selinux ed altri sistemi di sicurezza (per parlare delle bestie che conosco).

----------

