[Python-es] chmod o=g

Ricardo Cárdenes ricardo.cardenes en gmail.com
Dom Jul 20 01:14:10 CEST 2014


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.hep en 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.cardenes en 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.hep en gmail.com>
> jcaballero.hep en 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 en python.org>Python-es en 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 en 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 en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140720/78f5bd14/attachment.html>


Más información sobre la lista de distribución Python-es