Aggiungere un utente ad un gruppo senza digitare la password nella shell

Installazione, configurazione e uso di Ubuntu come server: web, ftp, mail, news, proxy, dns e altro.
federicogalimberti
Prode Principiante
Messaggi: 108
Iscrizione: martedì 3 maggio 2022, 23:34

Aggiungere un utente ad un gruppo senza digitare la password nella shell

Messaggio da federicogalimberti »

Ho un file .txt che contiene tutti i codici per la configurazione di un OS Linux Ubuntu 22.04 LTS.
Quando devo configurare l'OS eseguo un copia/incolla di tutto il codice presente nel file.
L'unico problema che ho è l'aggiunta dell'utente al gruppo di docker.

Codice: Seleziona tutto

sudo usermod -aG docker ${USER}
su - ${USER}
# ******
Come posso scrivere la password nel file .txt?
Posso anche usare il nome utente reale invece di ${USER} se serve a semplificare il problema.
Vorrei che i processi non si interrompessero in quel punto e che all'utente non venisse chiesto di digitare la propria password per proseguire.
Grazie
Avatar utente
Clover
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 298
Iscrizione: giovedì 30 agosto 2012, 14:04
Desktop: KDE
Distribuzione: Kubuntu x86_64

Re: Aggiungere un utente ad un gruppo senza digitare la password nella shell

Messaggio da Clover »

Ci sono alcune soluzioni un po' ingegnose per cercare di passare la password a sudo dallo standard input di uno script, ma non sempre funzionano e se funziona non è detto che continueranno a funzionare in futuro... questo per gli ovvi problemi di sicurezza che comporta il fatto di mettere in chiaro in uno script una password di un utente con diritti di root.

La soluzione migliore è che rivedi la tua procedura facendo in modo che lo script venga lanciato da root, in questo modo sudo non ti serve e non ti chiederà nessuna password.
Avatar utente
LucaZeta
Prode Principiante
Messaggi: 118
Iscrizione: giovedì 12 aprile 2018, 11:07
Distribuzione: Ubuntu 20.04.4 LTS

Re: Aggiungere un utente ad un gruppo senza digitare la password nella shell

Messaggio da LucaZeta »

federicogalimberti ha scritto:
domenica 7 agosto 2022, 20:35
Come posso scrivere la password nel file .txt?
Se l'utente che manda in esecuzione i codici di configurazione (copia incolla) è sempre lo stesso, puoi considerare di configurare il file /etc/sudoers tramite comando visudo aggiungendo la riga che abilita l'utente ad utilizzare /usr/sbin/usermod senza dover digitare la password.

una riga tipo questa:
tuoutente ALL = (ALL) NOPASSWD /usr/sbin/usermod

Trattandosi di comandi che alterano la sicurezza standard del sistema vanno sempre valutati con attenzione.
La compromissione del file /etc/sudoers può creare instabilità nel sistema, pertanto il suo editing dovrebbe essere mediato e verificato tramite comando visudo eseguito con autorità superuser.

La sintassi, da tuoutente è: sudo visudo
federicogalimberti
Prode Principiante
Messaggi: 108
Iscrizione: martedì 3 maggio 2022, 23:34

Re: Aggiungere un utente ad un gruppo senza digitare la password nella shell

Messaggio da federicogalimberti »

Non capisco...
Quando lancio:

Codice: Seleziona tutto

sudo usermod -aG docker ${USER}
non mi viene richiesta nessuna password.
Il problema è:

Codice: Seleziona tutto

su - ${USER}
Cosa dovrei scrivere al posto del codice sopra?
In pratica se ho capito bene "su - ${USER}" serve per disconnettersi e riconnettersi al sistema operativo.
Avatar utente
LucaZeta
Prode Principiante
Messaggi: 118
Iscrizione: giovedì 12 aprile 2018, 11:07
Distribuzione: Ubuntu 20.04.4 LTS

Re: Aggiungere un utente ad un gruppo senza digitare la password nella shell

Messaggio da LucaZeta »

federicogalimberti ha scritto:
giovedì 1 settembre 2022, 23:22

Il problema è:

Codice: Seleziona tutto

su - ${USER}
Cosa dovrei scrivere al posto del codice sopra?
In pratica se ho capito bene "su - ${USER}" serve per disconnettersi e riconnettersi al sistema operativo.
su consente di eseguire comandi con user e group ID sostitutivi. Se non specificato, il comando di default è la shell di sistema.

Per poter "cambiare" utente, all'interno di uno script, come sembri voler fare, senza dover digitare la password dovrai procedere come segue:
  • Aggiungi in sudoers, tramite comando visudo, la riga che autorizza il tuo utente ad usare il comando '/bin/su' con privilegi supeuser senza dover digitare la password:

    Codice: Seleziona tutto

    <tuoutente> ALL = (ALL) NOPASSWD: /bin/su
  • Quindi nel tuo script dovrai usare il comando su con autorità di superuser, per farlo nel tuo script quella riga dovrà diventare:

    Codice: Seleziona tutto

    sudo su - $(USER)
federicogalimberti
Prode Principiante
Messaggi: 108
Iscrizione: martedì 3 maggio 2022, 23:34

Re: Aggiungere un utente ad un gruppo senza digitare la password nella shell

Messaggio da federicogalimberti »

Mi sembra una procedura molto rischiosa come tu stesso chiarisci ma non è questo a fermarmi. Il vero problema è che c'è il rischio che in futuro tale procedura smetta di essere valida e questo è un limite grandissimo.

Se invece di lanciare

Codice: Seleziona tutto

su - $(USER)
completo la configurazione della macchina con

Codice: Seleziona tutto

sudo apt install docker-compose -y
poi lancio

Codice: Seleziona tutto

sudo reboot
per riavviare la macchina ed infine lancio i comandi per creare i comandi di Docker senza sudo a tuo avviso risolvo oppure questo

Codice: Seleziona tutto

su - $(USER)
è proprio indispensabile?

Il riavvio dovrebbe avere lo stesso effetto di

Codice: Seleziona tutto

su - $(USER)
, giusto?
Avatar utente
LucaZeta
Prode Principiante
Messaggi: 118
Iscrizione: giovedì 12 aprile 2018, 11:07
Distribuzione: Ubuntu 20.04.4 LTS

Re: Aggiungere un utente ad un gruppo senza digitare la password nella shell

Messaggio da LucaZeta »

federicogalimberti ha scritto:
martedì 6 settembre 2022, 11:13
Mi sembra una procedura molto rischiosa come tu stesso chiarisci ma non è questo a fermarmi. Il vero problema è che c'è il rischio che in futuro tale procedura smetta di essere valida e questo è un limite grandissimo.
Il rischio dipende dall'esposizione di quell'ambiente di lavoro, fai bene a rifletterci.
Non ho esperienza con Docker Compose, non posso esserti utile. A questo punto ti rimando al suggerimento di Clower con il lancio dello script da root.
Scrivi risposta

Ritorna a “Ubuntu su server”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 9 ospiti