Discussion:
[Python-es] chmod o=g
unknown
2014-07-18 19:16:19 UTC
Permalink
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)
unknown
2014-07-19 10:39:34 UTC
Permalink
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)
Post by unknown
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
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/20140719/ced44211/attachment.html>
unknown
2014-07-19 13:12:09 UTC
Permalink
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
Post by unknown
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)
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
https://mail.python.org/mailman/listinfo/python-es
FAQ: 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/20140719/76abaa33/attachment.html>
unknown
2014-07-19 23:14:10 UTC
Permalink
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
Post by unknown
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
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>
Post by unknown
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>
unknown
2014-07-20 00:48:10 UTC
Permalink
OK. Creo que ya puedo seguir yo solo :)
Muchas gracias!

El día 19 de julio de 2014, 19:14, Ricardo Cárdenes
Post by unknown
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.
np = p & 177775
Post by unknown
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
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)
Post by unknown
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
https://mail.python.org/mailman/listinfo/python-es
FAQ: 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/
_______________________________________________
Python-es mailing list
Python-es en python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: 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/
Loading...