gpt4 book ai didi

linux - 如何删除 setgid (linux/unix)?

转载 作者:IT王子 更新时间:2023-10-29 00:19:14 27 4
gpt4 key购买 nike

我刚刚使用 $ sudo chmod g+s filename 更改了我的文件权限,我的文件权限从 drwxr-xr-x 变成了 drwxr-sr- x。如何删除它?

最佳答案

将用于添加权限的 + 更改为 - 以将其删除:

sudo chmod g-s filename

如果您想以编程方式执行此操作,则需要使用一些按位运算符。通常是

mode_without_suid = bitwise_and(existing_mode, bitwise_not(S_ISUID))

其中 S_ISUID 是 0o4000,一个常量,它使用高于典型 rwx 的模式位,例如 0644

例如,在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))

打印

old mode mode=0o104654 = -rwSr-xr--
new mode mode=0o100654 = -rw-r-xr--

关于linux - 如何删除 setgid (linux/unix)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14529325/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com