The method lchflags() sets the flags of path to the numeric flags. This method does not follow symbolic links unlike chflags() method.
UF_NODUMP: Do not dump the file.
UF_IMMUTABLE: The file may not be changed.
UF_APPEND: The file may only be appended to.
UF_NOUNLINK: The file may not be renamed or deleted.
UF_OPAQUE: The directory is opaque when viewed through a union stack.
SF_ARCHIVED: The file may be archived.
SF_IMMUTABLE: The file may not be changed.
SF_APPEND: The file may only be appended to.
SF_NOUNLINK: The file may not be renamed or deleted.
SF_SNAPSHOT: The file is a snapshot file.
os.lchflags(path, flags)
#!/usr/bin/python import os, sys # Open a file path = "/var/www/html/foo.txt" fd = os.open( path, os.O_RDWR|os.O_CREAT ) # Close opened file os.close( fd ) # Now change the file flag. ret = os.lchflags(path, os.UF_IMMUTABLE ) print "Changed file flag successfully!!"
When we run above program, it produces following result:
Changed file flag successfully!!