Requisito previo: Python | método os.umask()
En los sistemas operativos similares a UNIX, los nuevos archivos se crean con un conjunto predeterminado de permisos. Podemos restringir o proporcionar cualquier conjunto de permisos específicos mediante la aplicación de una máscara de permisos. Usando Python, podemos obtener o establecer la máscara de permiso del archivo.
En este artículo, discutiremos cómo obtener la máscara de permiso de un archivo en Python.
Método utilizado –
os.stat() : este método se utiliza para realizar
stat()
una llamada al sistema en la ruta especificada. Este método se utiliza para obtener el estado de la ruta especificada.
A continuación se muestra el programa Python para obtener la máscara de permiso de un archivo:
# Python program to get file permission mask # of a given file # Import os module import os # File filename = "./file.txt" # Now get the status of the file # using os.stat() method print("Status of %s:" %filename) status = os.stat(filename) # os.stat() method will return a # stat_result’ object of ‘os.stat_result’ class # which will represent # the status of file. print(status) # st_mode attribute of # returned 'stat_result' object # will represent the file type and # file mode bits (permissions). print("\nFile type and file permission mask:", status.st_mode) # st_mode attribute is an integer value # but we are interested in octal value # for file's permission mask # So we will change the integer value # to octal value print("File type and file permission mask(in octal):", oct(status.st_mode)) # last 3 octal digit # represents the file permission mask # and upper parts tells the file type # so to get the file's permission # we will extract last 3 octal digit # of status.st_mode print("\nFile permission mask (in octal):", oct(status.st_mode)[-3:]) # Alternate way print("File permission mask (in octal):", oct(status.st_mode & 0o777))
Status of ./file.txt: os.stat_result(st_mode=33188, st_ino=801303, st_dev=2056, st_nlink=1, st_uid=1000, st_gid=1000, st_size=409, st_atime=1561590918, st_mtime=1561590910, st_ctime=1561590910) File type and file permission mask: 33188 File type and file permission mask(in octal): 0o100644 File permission mask (in octal): 644 File permission mask (in octal): 0o644
El programa a continuación es la versión corta del programa anterior:
# Python program to get file permission mask # of a given file # Import os module import os # File filename = "./file.txt" # Get the file permission mask # of the specified file mask = oct(os.stat(filename).st_mode)[-3:] # Print the mask print("File permission mask:", mask)
File permission mask: 644