GNU/Linux >> Linux Esercitazione >  >> Linux

Cambia UID/GID solo di un thread in Linux

setfsuid() specifico per Linux / setfsgid() sono per thread piuttosto che per processo. Sono progettati specificamente per questo caso d'uso (file server).

Nota che access() controllerà comunque l'accesso utilizzando il vero uid e gid, ovvero per impostazione predefinita (ha lo scopo di rispondere alla domanda "l'utente che ha eseguito questo file binario dovrebbe avere l'accesso consentito a questo file" ). Per il setfsuid() / setfsgid() caso dovresti semplicemente provare l'operazione richiesta e rilevare l'errore dovuto alla mancanza di autorizzazione a quel punto.


Per modificare l'uid solo per un thread è necessario utilizzare direttamente la syscall:syscall(SYS_setresuid, ...); La funzione libc setresuid() lo sincronizzerà per tutti i thread (usando un singal che invia a tutti i thread)!


Linux
  1. Linux - Il filesystem sotto Linux applica la serializzazione, il che significa che solo una modifica al filesystem avviene effettivamente in un dato momento?

  2. Modifica il nome host di un server Linux

  3. Cambia il nome utente su Linux

  4. Come limitare l'accesso a un solo utente tramite PAM in Linux

  5. Limita un programma gui in Linux a una sola istanza

Come modificare un nome host su Redhat 7 Linux

Comando Cd in Linux (Cambia directory)

Che cos'è l'UID in Linux, come trovarlo e modificarlo

10 MOTIVI PER CAMBIARE WINDOWS 10 IN LINUX

Come cambiare utente su Linux

Come modificare l'indirizzo IP su Linux