Si creo un archivo como un usuario sin privilegios, y cambio el modo de permisos a 400
, ese usuario lo ve como de solo lectura, correctamente:
$ touch somefile
$ chmod 400 somefile
$ [ -w somefile ] && echo rw || echo ro
ro
Todo está bien.
Pero luego aparece la raíz:
# [ -w somefile ] && echo rw || echo ro
rw
¿Que demonios? Claro, la raíz puede escribir en archivos de solo lectura, pero no debería convertirse en un hábito: las mejores prácticas tenderían a dictar que debería ser capaz de probar el bit de permiso de escritura, y si no es así, se configuró de esa manera por una razón.
Supongo que quiero entender por qué sucede esto y cómo puedo obtener un código de retorno falso al probar un archivo que no tiene el bit de escritura establecido.
/etc/dhcp/dhcpd.conf
, que es propiedad de root. Estoy usando el suministrado por el vendedor dhcpd
. Desastre total, ¿eh? El archivo se registró en RCS, estoy automatizar el uso de rcsdiff
, ci
y co
porque tenemos operadores que deben operar .... La comprobación de bits de permiso ( -w
como se detalla en test(1)
) iba a ser una primera línea de falla, trabajando sobre la base de que ci -u
deja un archivo de solo lectura. Estoy abandonando eso y yendo directamente a rcsdiff -q
comprobar $?
. dhcpd
¿ Desastroso ? Que sería propiedad de dhcpd
.
bash
y test
me llevaron a creer que para eso [ -w
es.
4.1.2(1)-release
) como RHEL7 (4.2.46(2)-release
).