En el fondo es sencillo. Ten en cuenta que esos permisos forman grupos de bits, en plan "rwxrwxrwx", de manera que es más sencillo expresarlos en octal (como la máscara). Hay más cosas que puedes tocar ahí, como permisos suid/sgid etc, pero lo que te interesa son los nueve bits de menos peso, agrupados como "ugo", en ese orden.
Quitar el permiso w a o es tan sencillo como: np = p & 177775 2014-07-19 14:12 GMT+01:00 Jose Caballero <jcaballero....@gmail.com>: > Gracias! > Lo miraré con atención. No hago nada con bits y máscaras desde la > universidad (y eso fue el siglo pasado!) > Si hubiese un link donde pudiese aprenderme los detalles estaría bien, así > no tengo que preguntar aquí cada detalle. Mi siguiente necesidad, por > ejemplo, es quitar permisos: o-w > > muchas gracias por el código. > Saludos, > Jose > > > > On Jul 19, 2014, at 6:39, Ricardo Cárdenes <ricardo.carde...@gmail.com> > wrote: > > from os import chmod, stat > > # Máscara para los permisos de 'o' > mask = 0177770 # esto es 0xFFFF > # Obtenemos los permisos actuales y los de 'g', desplazados a la posición > de 'o' > p = stat('file').st_mode > g = (p & 070) >> 3 > # Aplicamos una máscara a los permisos actuales y ponemos los nuevos > np = (p & mask) | g > chmod('file', np) > > > 2014-07-18 20:16 GMT+01:00 Jose Caballero < <jcaballero....@gmail.com> > jcaballero....@gmail.com>: > >> Hola, >> >> quisiera modificar los permisos de un fichero usando metodos y clases >> de python (que vengan con la instalacion estandar 2.4). >> Es decir, si es posible, no quiero hacer nada tipo >> commands.getoutput('chmod...') >> >> Por lo que he leido hasta el momento, se usa os.stat() y os.chmod() >> Pero no encuentro en google ningun ejemplo de como hacer chmod o=g >> >> Si alguien tiene un link con ejemplos de ese tipo estare eternamente >> agradecido. >> >> Saludos >> Jose (sin tildes) >> _______________________________________________ >> Python-es mailing list >> <Python-es@python.org>Python-es@python.org >> <https://mail.python.org/mailman/listinfo/python-es> >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: <http://python-es-faq.wikidot.com/>http://python-es-faq.wikidot.com/ >> > > _______________________________________________ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: <http://python-es-faq.wikidot.com/>http://python-es-faq.wikidot.com/ > > > _______________________________________________ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > >
_______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/