Creé un script de Python que requiere sudo
permisos para ejecutarse (realizando solicitudes ICMP). Este script crea un pequeño directorio y un par .csv
de archivos, además de un log.txt
archivo. Al principio, después de ejecutar el programa, pude eliminar los artefactos después de ejecutarlo para probar la creación de archivos y directorios.
Ahora, de repente, OS X Finder me pide permiso para eliminar el directorio y el archivo de registro. Realicé una chmod 775 *
en el directorio donde tengo mi módulo y eliminé la carpeta y el archivo según fue necesario. Sin embargo, después de ejecutar el script nuevamente, es necesario que cumpla con los permisos una vez más. Otra chmod
, puedo eliminar los archivos y carpetas. Sin embargo, cada vez que ejecuto el programa me encuentro con el mismo problema.
¿Alguna sugerencia sobre cómo puedo solucionar este problema de forma permanente?
Respuesta1
Según los comentarios anteriores entre el operador y yo, la causa principal del problema de permisos es que la carpeta/los archivos creados en el script de Python son propiedad del root, no de la cuenta de usuario del operador. Todo lo que se cree durante la ejecución sudo
será propiedad de root.
Las soluciones para esto son incluir un comando chmod
o chown
en el script, otorgando permiso a la cuenta de usuario del operador para eliminar el archivo/carpeta. Recomiendo chown
, ya que es posible que el Finder (en Mavericks) detecte que root es el propietario y avise al usuario. Esto me sucede incluso cuando mi cuenta tiene permisos completos (a través de los permisos del grupo). Finder podría estar poniendo un nivel adicional de protección a los archivos propiedad de root. ¡ El uso chown
en el script debería configurar todo correctamente para Terminal y Finder!