• =?UTF-8?Q?esiste_alternativa_a_sg=3F_Pi=C3=B9_alcuni_misteri=2E=2E=2E?=

    From Davide Prina@21:1/5 to All on Sun Sep 1 13:10:01 2024
    Ciao,

    ho fatto uno script e usato pesantemente il comando sg (per chi non lo
    sapesse serve ad eseguire un comando con un diverso group ID).
    Ho eseguito lo script l'ultima volta settimana scorsa e ora non funziona
    più perché il comando non esiste più!

    Sapete se c'è un'alternativa a sg?

    Poi ho trovato alcuni misteri.
    Cercando ho visto che il comando era contenuto nel pacchetto login, ma:
    - ho trovato il bug #1078122[¹] in cui è indicato che sg era un link
    simbolico a newgrp, ma questo è impossibile perché newgrp non
    permette di fare quanto fa (o meglio faceva) sg. Incredulo ho provato
    anche a cambiare i punti in cui c'era sg con newgrp solo per
    constatare che non funziona (anche perché nello script usavo già
    newgrp in uno o due punti). Quindi ho pensato che il comando fosse
    stato sostituito dal link simbolico in Sid (io uso testing) e
    arrivato in testing solo negli ultimi giorni
    - ho cercato su tracker.debian.org il pacchetto login e mi ha trovato
    che è generato dal sorgente di util-linux[²] e ho visto che è
    arrivata in testing la nuova versione 2.40.2-7 che ha sostituito la
    precedente 2.40.2-1 presente in testing... allora sono andato su
    snapshot.debian.org, ma non esiste la 2.40.2-1 del binario di login
    però esiste la 2.40.2-1 dei sorgenti di util-linux, che però a detta
    di snapshot[³] non genera il pacchetto login... questo perché
    precedentemente il pacchetto login era generato dal pacchetto
    shadow[¼]
    - ho quindi preso la versione 1:4.16.0-1 di login e ho verificato che
    sg era un link a newgrp! L'unica cosa che mi viene in mente è che a
    me era rimasto l'eseguibile sg di una vecchia versione di login,
    altrimenti non mi spiegherei il fatto che fino a settimana scorsa
    funzionava il mio script.

    Ho cercato anche on-line, ma non ho trovato traccia di questa sparizione
    di sg e neppure di come sostituirlo con altro (se non uno che proponeva
    sudo, ma il caso era diverso). A me serve poter creare file che poi siano leggibili e/o scrivibili e/o eseguibili solo da un determinato gruppo e
    tali file sono generati/usati da altri comandi, tutti eseguiti da utenti normali.

    Ciao
    Davide

    [¹] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1078122
    [²] https://tracker.debian.org/pkg/util-linux
    [³] https://snapshot.debian.org/package/util-linux/2.40.2-1/
    [¼] https://snapshot.debian.org/binary/login/

    --
    La mia privacy non è affar tuo
    https://noyb.eu/it
    - You do not have my permission to use this email to train an AI -
    If you use this to train your AI than you accept to distribute under AGPL license >= 3.0 all the model trained, all the source you have used to
    training your model and all the source of the program that use that model

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Luigi Provale@21:1/5 to Davide Prina on Sun Sep 1 21:10:01 2024
    On 01/09/24 13:01, Davide Prina wrote:
    Ciao,

    ho fatto uno script e usato pesantemente il comando sg (per chi non lo sapesse serve ad eseguire un comando con un diverso group ID).
    Ho eseguito lo script l'ultima volta settimana scorsa e ora non funziona
    più perché il comando non esiste più!

    Sapete se c'è un'alternativa a sg?

    Poi ho trovato alcuni misteri.
    Cercando ho visto che il comando era contenuto nel pacchetto login, ma:
    - ho trovato il bug #1078122[¹] in cui è indicato che sg era un link
    simbolico a newgrp, ma questo è impossibile perché newgrp non
    permette di fare quanto fa (o meglio faceva) sg. Incredulo ho provato
    anche a cambiare i punti in cui c'era sg con newgrp solo per
    constatare che non funziona (anche perché nello script usavo già
    newgrp in uno o due punti). Quindi ho pensato che il comando fosse
    stato sostituito dal link simbolico in Sid (io uso testing) e
    arrivato in testing solo negli ultimi giorni
    - ho cercato su tracker.debian.org il pacchetto login e mi ha trovato
    che è generato dal sorgente di util-linux[²] e ho visto che è
    arrivata in testing la nuova versione 2.40.2-7 che ha sostituito la
    precedente 2.40.2-1 presente in testing... allora sono andato su
    snapshot.debian.org, ma non esiste la 2.40.2-1 del binario di login
    però esiste la 2.40.2-1 dei sorgenti di util-linux, che però a detta
    di snapshot[³] non genera il pacchetto login... questo perché
    precedentemente il pacchetto login era generato dal pacchetto
    shadow[¼]
    - ho quindi preso la versione 1:4.16.0-1 di login e ho verificato che
    sg era un link a newgrp! L'unica cosa che mi viene in mente è che a
    me era rimasto l'eseguibile sg di una vecchia versione di login,
    altrimenti non mi spiegherei il fatto che fino a settimana scorsa
    funzionava il mio script.

    Ho cercato anche on-line, ma non ho trovato traccia di questa sparizione
    di sg e neppure di come sostituirlo con altro (se non uno che proponeva
    sudo, ma il caso era diverso). A me serve poter creare file che poi siano leggibili e/o scrivibili e/o eseguibili solo da un determinato gruppo e
    tali file sono generati/usati da altri comandi, tutti eseguiti da utenti normali.

    Ciao
    Davide

    [¹] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1078122
    [²] https://tracker.debian.org/pkg/util-linux
    [³] https://snapshot.debian.org/package/util-linux/2.40.2-1/
    [¼] https://snapshot.debian.org/binary/login/

    --
    La mia privacy non è affar tuo
    https://noyb.eu/it
    - You do not have my permission to use this email to train an AI -
    If you use this to train your AI than you accept to distribute under AGPL license >= 3.0 all the model trained, all the source you have used to training your model and all the source of the program that use that model


    Ciao,
    Se ti puo' essere utile in stable trovo:
    ls -lFas /bin/sg*
    0 lrwxrwxrwx 1 root root 6 23 mar  2023 /bin/sg -> newgrp*

    Saluti.
    Luigi

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?utf-8?Q?Francesco_Potort=C3=AC?=@21:1/5 to All on Sun Sep 1 23:10:01 2024
    ho fatto uno script e usato pesantemente il comando sg (per chi non lo >sapesse serve ad eseguire un comando con un diverso group ID).

    Sapete se c'è un'alternativa a sg?

    sudo non va bene?

    Se sei root, anche su

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Giuseppe Sacco@21:1/5 to All on Mon Sep 2 01:20:01 2024
    Ciao Davide,

    Il giorno dom, 01/09/2024 alle 13.01 +0200, Davide Prina ha scritto:
    Ciao,

    ho fatto uno script e usato pesantemente il comando sg (per chi non lo sapesse serve ad eseguire un comando con un diverso group ID).
    Ho eseguito lo script l'ultima volta settimana scorsa e ora non funziona
    più perché il comando non esiste più!
    [...]

    Il comando newgrp si comporta diversamente a seconda se viene invocato come "newgrp" o come "sg". È un solo eseguibile, ma fa cose diverse a seconda dal suo nome.

    Le prime righe del sorgente di newgrp (nel pacchetto debian "login") sono:

    Prog = Basename (argv[0]);
    log_set_progname(Prog);
    log_set_logfd(stderr);
    is_newgrp = (strcmp (Prog, "newgrp") == 0);
    OPENLOG (is_newgrp ? "newgrp" : "sg");
    argc--;
    argv++;

    e poi usa la variabile is_newgrp per sapere se comportarsi in un modo o nell'altro.

    Comunque, su debian 12, il comando newgrp fa parte del pacchetto binario
    login, che ha come sorgente il pacchetto shadow, attualmente alla versione 1:4.13+dfsg1-1. Se veramente non hai più /usr/bin/sg, allora puoi generarlo come link simbolico a newgrp, oppure reinstallando il pacchetto.

    Ciao,
    Giuseppe

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Davide Prina@21:1/5 to All on Sun Sep 8 10:10:01 2024
    Francesco Potortì ha scritto:

    ho fatto uno script e usato pesantemente il comando sg (per chi non lo >>sapesse serve ad eseguire un comando con un diverso group ID).

    Sapete se c'è un'alternativa a sg?

    sudo non va bene?

    no, altrimenti ogni utente dovrebbe poter eseguire qualsiasi comando di qualsiasi altro utente ed inoltre dovrei immettere una password più
    volte

    Quello che avevo fatto era uno script che permetteva di usare waypipe
    per eseguire un comando come altro utente, in pratica il vecchio sux
    per chi si ricorda, usando un socket e aggiungendo un po' di sicurezza
    tramite i gruppi.

    --
    La mia privacy non è affar tuo
    https://noyb.eu/it
    - You do not have my permission to use this email to train an AI -
    If you use this to train your AI than you accept to distribute under AGPL license >= 3.0 all the model trained, all the source you have used to
    training your model and all the source of the program that use that model

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Davide Prina@21:1/5 to All on Sun Sep 8 10:30:01 2024
    Giuseppe Sacco ha scritto:

    Il giorno dom, 01/09/2024 alle 13.01 +0200, Davide Prina ha scritto:

    ho fatto uno script e usato pesantemente il comando sg (per chi non lo
    sapesse serve ad eseguire un comando con un diverso group ID).
    Ho eseguito lo script l'ultima volta settimana scorsa e ora non funziona
    più perché il comando non esiste più!

    Il comando newgrp si comporta diversamente a seconda se viene invocato come "newgrp" o come "sg". È un solo eseguibile, ma fa cose diverse a seconda dal suo nome.

    Le prime righe del sorgente di newgrp (nel pacchetto debian "login") sono:

    Prog = Basename (argv[0]);
    log_set_progname(Prog);
    log_set_logfd(stderr);
    is_newgrp = (strcmp (Prog, "newgrp") == 0);
    OPENLOG (is_newgrp ? "newgrp" : "sg");
    argc--;
    argv++;

    interessante, ecco perché il DM diceva che era inutile pretendere che Debian fornisse sg...

    Se veramente non hai più /usr/bin/sg, allora puoi generarlo
    come link simbolico a newgrp

    Però creando il link simbolico non funziona più il mio script.
    Questo perché newgrp apre una nuova shell, mentre sg non lo faceva
    L'unica spiegazione che ho è che sulla mia macchina fosse rimasto il
    vecchio eseguibile sg che hanno tolto per qualche motivo.

    Inoltre se hanno tolto il link magari toglieranno anche quella parte di codice...

    , oppure reinstallando il pacchetto.

    no, dal pacchetto l'hanno tolto il link (nel mio caso penso abbiano in
    realtà eliminato l'eseguibile sg)

    In pratica usavo sg in più punti. In alcuni probabilmente poteri
    sostituirlo con chgrp, ma sull'apertura del socket no, perché il file
    che rappresenta il socket non posso crearlo prima di creare il socket
    e non posso cambiare il gruppo una volta che il socket è creato perché
    è ancora in uso.

    sg $Gruppo "waypipe -c none --socket ""$SOCKET"" client" &

    Ho guardato anche se vi fosse il modo di poter cambiare
    temporaneamente il gruppo di un utente, ma facendo questo cambieresti
    il gruppo a tutti i file dell'utente... e questo non è assolutamente accettabile.

    In poche parole lo script faceva il seguente:
    * se non esista il gruppo di condivisione lo creava
    * se l'utente attuale non era sul gruppo condivisione lo aggiungeva
    * se l'utente che doveva eseguire il programma (sux solo per
    applicazioni wayland) non era nel gruppo di condivisione lo aggiungeva
    * creava una directory temporanea in /tmp con il gruppo di condivisione
    * creava il socket a cui si agganciava il client di waypipe
    * eseguiva la parte server per eseguire l'applicazione dopo aver
    chiesto l'autenticazione dell'utente con cui doveva essere eseguito
    il programma
    * alla fine dell'esecuzione puliva tutto

    È possibile fare tutto aprendo un socket in /tmp che sia usabile da
    tutti gli utenti... io volevo limitare soltanto agli utenti abilitati
    ad eseguire il mio script e che conoscono la password di root (o vengono
    messi da root nel gruppo di condivisione) la possibilità di fare tutto
    ciò.

    Purtroppo cercando non riesco a trovare nulla che possa sostituire sg.

    Ciao
    Davide

    --
    La mia privacy non è affar tuo
    https://noyb.eu/it
    - You do not have my permission to use this email to train an AI -
    If you use this to train your AI than you accept to distribute under AGPL license >= 3.0 all the model trained, all the source you have used to
    training your model and all the source of the program that use that model

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?utf-8?Q?Francesco_Potort=C3=AC?=@21:1/5 to All on Sun Sep 8 12:30:01 2024
    Davide Prina:
    ho fatto uno script e usato pesantemente il comando sg (per chi non lo >>>sapesse serve ad eseguire un comando con un diverso group ID).

    Sapete se c'è un'alternativa a sg?

    Francesco Potortì:
    sudo non va bene?

    no, altrimenti ogni utente dovrebbe poter eseguire qualsiasi comando di >qualsiasi altro utente ed inoltre dovrei immettere una password più
    volte

    Io forse non ho capito il problema, ma sudo è configurabile molto granularmente, puoi scegliere chi ha il permesso di fare esattamente cosa. E la password la tiene da quelche parte, perché se lo usi pìù volte di seguito la chiede solo la prima volta.
    E puoi anche configurarlo per non chiederla proprio, sia in generale, vhe per gruppi di comandi e utenti, che per uno specifico comando e utente o più d'uno.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Davide Prina@21:1/5 to All on Mon Sep 9 21:40:01 2024
    Francesco Potortì ha scritto:

    Io forse non ho capito il problema

    ho spiegato nell'altra risposta, in pratica lo script permette di avere
    il vecchio comando sux per eseguire applicazioni grafiche che usano
    wayland eseguendole come altro utente e usando una socket per la
    comunicazione tra il server e il client di wayland.
    Il tutto aggiungendo un minimo di sicurezza aggiuntiva rispetto alla
    creazione di un socket in /tmp in cui tutti possono fare tutto.

    Ciao
    Davide

    --
    La mia privacy non è affar tuo
    https://noyb.eu/it
    - You do not have my permission to use this email to train an AI -
    If you use this to train your AI than you accept to distribute under AGPL license >= 3.0 all the model trained, all the source you have used to
    training your model and all the source of the program that use that model

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Davide Prina@21:1/5 to All on Mon Sep 9 21:50:01 2024
    Davide Prina ha scritto:

    Sapete se c'è un'alternativa a sg?

    ho provato di tutto:
    * runuser, ma funziona solo da root
    * su -g, ma funziona solo da root
    * setpriv --[re]gid, ma funziona solo da root
    * ...

    poi ho riprovato con la cosa più semplice e che mi sembrava di aver
    già provato, ma che non funzionasse...

    $ chown :$GRUPPO $SOCKET

    e invece funziona! :-(

    ero sicuro di aver ricevuto un errore, bho magari l'avevo eseguito
    prima che l'utente fosse in $GRUPPO o avessi eseguito il comando
    per averlo nel nuovo gruppo senza fare logout&login

    Però strano che online non ho mai trovato nessuno che suggerisse
    questo semplice metodo... l'unico difetto è che bisogna eseguire
    due comandi al posto di uno solo.

    Ciao
    Davide

    --
    La mia privacy non è affar tuo
    https://noyb.eu/it
    - You do not have my permission to use this email to train an AI -
    If you use this to train your AI than you accept to distribute under AGPL license >= 3.0 all the model trained, all the source you have used to
    training your model and all the source of the program that use that model

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)