Domanda

Ho un processo PHP che:

  • inizia come radice
  • scrive e quindi chiude un file PID /var/run/
  • chown()S detto file PID a un altro utente
  • modifiche a quell'utente tramite posix_setuid()
  • cerca di eliminare il file PID alla fine del processo

Ora, anche se lo sono chown()ing il file PID all'utente attuale, non è in grado di eliminare il file che richiede "autorizzazione negata" sul unlink() chiamata. Ciò significa che anche se l'utente efficace possiede il file e il file non è aperto nel processo corrente (o in qualsiasi), non è ancora possibile autorizzazione.

In sospeso, ho provato a spostare la posizione del file PID nella mia home directory, e questo funziona senza problemi. Si noti che l'utente del processo non è il mio utente personale, quindi l'utente efficace non ha autorizzazioni di scrittura sulla mia directory home, solo l'unico file specifico.

Quindi, perché non posso eliminare il file PID quando è dentro /var/run/?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top