I am trying to change permission of a file access:
os.chmod(path, mode)
I want to make it read-only:
os.chmod(path, 0444)
Is there any other way make a file read-only?
os.chmod(path, stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH)
The following flags can also be used in the mode argument of os.chmod():
stat.S_ISUID
Set UID bit.
stat.S_ISGID
Set-group-ID bit. This bit has several special uses. For a directory it indicates that BSD semantics is to be used for that directory: files created there inherit their group ID from the directory, not from the effective group ID of the creating process, and directories created there will also get the S_ISGID bit set. For a file that does not have the group execution bit (S_IXGRP) set, the set-group-ID bit indicates mandatory file/record locking (see also S_ENFMT).
stat.S_ISVTX
Sticky bit. When this bit is set on a directory it means that a file in that directory can be renamed or deleted only by the owner of the file, by the owner of the directory, or by a privileged process.
stat.S_IRWXU
Mask for file owner permissions.
stat.S_IRUSR
Owner has read permission.
stat.S_IWUSR
Owner has write permission.
stat.S_IXUSR
Owner has execute permission.
stat.S_IRWXG
Mask for group permissions.
stat.S_IRGRP
Group has read permission.
stat.S_IWGRP
Group has write permission.
stat.S_IXGRP
Group has execute permission.
stat.S_IRWXO
Mask for permissions for others (not in group).
stat.S_IROTH
Others have read permission.
stat.S_IWOTH
Others have write permission.
stat.S_IXOTH
Others have execute permission.
stat.S_ENFMT
System V file locking enforcement. This flag is shared with S_ISGID: file/record locking is enforced on files that do not have the group execution bit (S_IXGRP) set.
stat.S_IREAD
Unix V7 synonym for S_IRUSR.
stat.S_IWRITE
Unix V7 synonym for S_IWUSR.
stat.S_IEXEC
Unix V7 synonym for S_IXUSR.