Come leggere un file linux dell'utente root



  • Buongiorno.
    Avrei la necessità di legger un file di configurazione linux, riservato all'utente root. Sono io l'utente root, quindi ho la password, ma come si fa ad accedere al file passandogli anche la password per poterlo acquisire ?



  • La risposta facile: lancia la tua applicazione con sudo
    La risposta media: usa setuid / setgid per impersonare root
    La risposta difficile: usa le POSIX capabilities per ottenere diritti root solo per le parti che ti servono.

    Ad ogni modo questo e' ben al di fuori da cio' che Qt voglia fare, devi usare API specifiche per linux



  • Ciao per farla complicata anche QProcess con 2 canali potrebbe farlo
    primo sudo su in un altro QThread e subito dopo un cat file.txt da leggere...
    ma appunto com dice @VRonin non serve complicarsi la vita...



  • Il fatto è che vorrei farlo da programma. Se inserisco sul form un campo QLineEdit per farmi dare la password di root, come faccio poi a leggere il file privilegiato per root ?



  • è stato disusso e fatto su:
    Ma che applicativo sarebbe?
    se per gestione di un server o simile darebbe senso, ecco...
    https://forum.qt.io/topic/20169/solved-is-it-possible-to-pass-on-password-to-process-requiring-root-privileges



  • Speravo di poter leggere qualcosa in italiano. Comunque grazie.
    Il mio scopo è quello di poter gestire una password per l'utilizzo del programma criptata sul "motherboard_serialid", che quindi consenta l'utilizzo sul solo pc per il quale è stata prodotta la password. Il file da leggere è "/sys/class/dmi/id/board_serial" che riesco a leggere anteponendo il sudo. Ma da programma non saprei come poterlo leggere. Lanciando il "system (sudo cat board_serial);" non funziona, logicamente, perché non posso inserire la password di root.



  • @bvox123 said in Come leggere un file linux dell'utente root:

    consenta l'utilizzo sul solo pc per il quale è stata prodotta la password

    /var/lib/dbus/machine-id e' la soluzione preferita per tutti i sistemi con dbus (tutti i linux desktop e la maggior parte degli embeded) e non necessita di root



  • Lo sapevo, lo sapevo che VRonin mi avrebbe trovato la soluzione più comoda. Grazie.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.