ZeroUno ha scritto:
Lo crea le glibc, che sono le stesse per tutti i sistemi linux (a meno di versioni). Quel post non è attendibile. (dai un vipw, prendi un'altra shell e guarda la etc).
Se guardi i sorgenti delle glibc trovi il punto in cui lo crea ma non trovi nessun'altra occorrenza (quindi niente eliminazione da parte glibc, ma anche niente uso di quel lock).
A guardare i sorgenti nemmeno ci provo, perché non ne capirei molto
Prova però a eliminare il lock file.
Poi da root lancia vipw e lasciandolo in esecuzione da un'altra shell lancia `passwd` e prova a modificare la password di un utente. Vedrai che ottieni:
Codice: Seleziona tutto
New password:
Re-enter new password:
passwd: cannot lock /etc/shadow; try again later.
Quel lock file è ricreato ogni volta - se eliminato - da quei comandi visti sopra.
Ora: rimani sempre nella situazione in cui sei, ovvero:
vipw in esecuzione ( non l'hai terminato).
Ora da altra shell:
Riprova adesso con passwd, e vedrai che ottieni:
Codice: Seleziona tutto
New password:
Re-enter new password:
passwd: password changed.
Ovvero: stavolta riesci a modificare la password dell'user, pur essendo nella stessa identica situazione - ma senza il file di lock.
Non so se è chiaro cosa intendevo dire e perché ho messo quel link: il meccanismo funziona come dice il tizio. La presenza del lock file impedisce che più di un'istanza possa modificare il database delle password. Se l'istanza è una soltanto, la presenza del lock file è ininfluente, è come se non ci fosse. Ed è per questo - probabilmente - che viene lasciato li dov'è una volta creato.