El día 13 de septiembre de 2011 14:06, Enric Florit <efz1...@gmail.com> escribió: > Hola a todos los suscritores de esta lista: > > Estoy desarrollando un programa en python que tiene como finalidad traducir > archivos de código PHP a Python. Mediante una instrucción al programa, el > usuario tiene la posibilidad de guardar el código traducido en un archivo > aparte. Entonces, el programa pide si se quiere guardar el archivo como > ejecutable ('+x'). Para hacer esto uso os.chmod: > > os.chmod(file,stat.S_IRWXU) > > Hasta aquí todo bien, pues si el usuario decide que el archivo sea > ejecutable, se hará ejecutable. El problema viene cuando es un archivo > sobreescrito, que ya tiene permisos de ejecución. Aunque reescriba el > archivo, sus permisos no cambian, por lo que si el usuario decide no hacer > que el archivo sea ejecutable, se queda ejecutable. > > Para solventar esto, he intentado usar de nuevo os.chmod, pero si primero le > adjudico permisos de lectura y luego de escritura, se borran los de lectura, > y viceversa. > > Existe alguna manera (mediante chmod u otro método) para quitar los permisos > de ejecución a un archivo? O alguna API diferente que permita hacerlo? >
Con os.stat puedes leer los permisos del usuario y con máscaras de bits volver a establecerlos según te convengan (con o sin el flag de ejecución). Para que lo veas claro (o al menos eso espero): >>> bin(0777 & ~stat.S_IXUSR) '0b110111111' Saludos: Javi _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/