Se creo un file come utente non privilegiato e cambio la modalità di autorizzazione in 400
, viene visto da quell'utente come di sola lettura, correttamente:
$ touch somefile
$ chmod 400 somefile
$ [ -w somefile ] && echo rw || echo ro
ro
Tutto bene.
Ma poi arriva root:
# [ -w somefile ] && echo rw || echo ro
rw
Che diamine? Certo, root può scrivere su file di sola lettura, ma non dovrebbe farne l'abitudine: le migliori pratiche tenderebbero a dettare che dovrei essere in grado di testare il bit di permesso di scrittura, e se non lo è, allora è stato impostato in quel modo per un motivo.
Immagino di voler capire sia il motivo per cui ciò sta accadendo, sia come posso ottenere un codice di ritorno falso durante il test di un file che non ha impostato il bit di scrittura?
/etc/dhcp/dhcpd.conf
, che è di proprietà di root. Sto usando il fornitore fornito dhcpd
. Disastro totale, eh? Il file viene controllato in RCS, sto automatizzando uso di rcsdiff
, ci
e co
perché abbiamo operatori che hanno bisogno di ... operare. Il controllo bit di autorizzazione ( -w
, come dettagliato da test(1)
) sarebbe stata una prima linea di errore, lavorando sulla base che ci -u
lascia un file di sola lettura. Lo sto abbandonando e vado subito a rcsdiff -q
controllare $?
. Non disastroso dhcpd
? Sarebbe di proprietà di dhcpd
.
bash
e test
mi hanno portato a credere che sia quello che [ -w
serve.
4.1.2(1)-release
) e RHEL7 (4.2.46(2)-release
).