Un viejo golpe script que he probado para ver si un usuario era root
viendo si /etc/passwd
era escribible. En MacOS High Sierra se volvió realidad para root
y falso para cualquier otro. Pero en el MacOS Mojave la prueba sale falsa incluso para root
.
Si hago esa prueba [ -w File ]
en otros archivos con los mismos permisos y propiedad, como /etc/hosts
que devuelve correctamente la verdad para root
y falsa para cualquier otra persona tanto en Mojave como en High Sierra. No veo ninguna bandera de archivo especial o atributos extendidos en /etc/passwd
.
El script no es un problema para arreglar, pero me gustaría saber cómo/por qué esta prueba es diferente en ese archivo vs. otros archivos y por qué esto es sólo en Mojave. Si esto tiene que ver con SIP, entonces me gustaría saber cómo se puede probar para ver si un archivo o directorio está de alguna manera protegido por SIP.
Actualización: Encontré que desactivando SIP las cosas funcionaron como se esperaba, es decir, para un usuario Root la prueba de bash "-w /etc/passwd" sería verdadera. Habilité SIP de nuevo y todo está funcionando como se esperaba. No sé si debería borrar esta pregunta, o dejarla por si alguien se encuentra con un problema similar. Hacer un "ls -O /etc/passwd" no muestra el archivo como restringido.