Issue
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?
Solution
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--
Answered By - andrewdotn Answer Checked By - Cary Denson (WPSolving Admin)