Usar os.access()
con os.R_OK
En este paso, utilizaremos la función os.access()
en Python para verificar si un archivo tiene permisos de lectura. La función os.access()
toma dos argumentos: la ruta del archivo y una bandera de permiso. Utilizaremos os.R_OK
para verificar los permisos de lectura.
Primero, creemos un nuevo archivo de Python llamado check_permissions.py
en el directorio ~/project
. Abre el editor VS Code y agrega el siguiente código al archivo:
import os
file_path = "my_script.py"
## Check if the file exists
if not os.path.exists(file_path):
print(f"Error: The file '{file_path}' does not exist.")
else:
## Check if the file has read permissions
if os.access(file_path, os.R_OK):
print(f"The file '{file_path}' has read permissions.")
else:
print(f"The file '{file_path}' does not have read permissions.")
Guarda el archivo. Este script primero verifica si el archivo my_script.py
existe. Si existe, luego utiliza os.access()
con os.R_OK
para verificar si el archivo tiene permisos de lectura. El script imprimirá un mensaje que indica si el archivo tiene o no permisos de lectura.
Ahora, ejecuta el script desde la terminal:
python check_permissions.py
Deberías ver la siguiente salida:
The file 'my_script.py' has read permissions.
Esto se debe a que, por defecto, el archivo my_script.py
tiene permisos de lectura para el propietario, el grupo y otros.
Ahora, modifiquemos los permisos del archivo my_script.py
para eliminar los permisos de lectura para todos excepto el propietario. Podemos hacer esto utilizando el comando chmod
en la terminal.
chmod 600 my_script.py
Este comando establece los permisos de my_script.py
para que solo el propietario tenga permisos de lectura y escritura (600 en notación octal).
Ahora, ejecuta el script check_permissions.py
nuevamente:
python check_permissions.py
Ahora deberías ver la siguiente salida:
The file 'my_script.py' does not have read permissions.
Esto se debe a que hemos eliminado los permisos de lectura para el grupo y otros. La función os.access()
identifica correctamente que el archivo ya no tiene permisos de lectura para el usuario que ejecuta el script (que es labex
).
Finalmente, restaurémos los permisos originales del archivo my_script.py
:
chmod 644 my_script.py
Este comando establece los permisos de my_script.py
para que el propietario tenga permisos de lectura y escritura y el grupo y otros tengan permisos de solo lectura (644 en notación octal).