Open In App
Related Articles

How to get the permission mask of a file in Python

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

In UNIX-like operating systems, new files are created with a default set of permissions. We can restrict or provide any specific set of permissions by applying a permission mask. Using Python, we can get or set the file’s permission mask. In this article, we will discuss how to get the permission mask of a file in Python.

Get the Permission Mask of a File in Python

Below is an example by which we can perform changing file permissions in the Python OS Module as well as getting the permission mask of a file in Python. Before moving, firstly we understand the method that we have used in this example:

  • os.stat(): This method is used to perform stat() system calls on the specified path. This method is used to get the status of the specified path.

Example:

In this example, the os.stat() function is used to obtain the status of a file named file.txt. The script then accesses the file’s permission mask from the status. Finally, the permission mask is displayed in octal format using both direct extraction and bitwise operations.

Python3

# Import os module
import os
 
# File
filename = "./file.txt"
 
print("Status of %s:" % filename)
status = os.stat(filename)
 
print(status)
 
print("\nFile type and file permission mask:", status.st_mode)
 
print("File type and file permission mask(in octal):",
      oct(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))

                    

Output
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


Shorter Version of the Previous Code

In this example, the script uses os.stat to fetch the status of file.txt. The last three digits of the file’s permission mask in octal format using oct() are then extracted and displayed.

Python3

import os
 
# File
filename = "./file.txt"
 
mask = oct(os.stat(filename).st_mode)[-3:]
 
# Print the mask
print("File permission mask:", mask)

                    

Output
File permission mask: 644





Last Updated : 23 Jan, 2024
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads