I just changed my file permissions using $ sudo chmod g+s filename
and my file permissions turned from drwxr-xr-x
to drwxr-sr-x
. How do I remove it?
Advertisement
Answer
Change the +
for adding a permission into a -
to remove it:
sudo chmod g-s filename
If you want to do this programatically, you’ll need to use some bitwise operators. Normally it’s
mode_without_suid = bitwise_and(existing_mode, bitwise_not(S_ISUID))
where S_ISUID
is 0o4000, a constant that uses mode bits above the typical rwx
ones of something like 0644
.
For example, in python
import os import stat def mode_details(m): return f"mode={oct(m)} = {stat.filemode(m)}" mode = os.stat('foo').st_mode print("old mode", mode_details(mode)) new_mode = mode & ~stat.S_ISUID os.chmod('foo', new_mode) print("new mode", mode_details(new_mode))
which prints
old mode mode=0o104654 = -rwSr-xr-- new mode mode=0o100654 = -rw-r-xr--