在Python中检查文件是否为setuid根用户

3 投票
1 回答
3381 浏览
提问于 2025-04-15 18:39

我想在Python中检查一个文件是否设置了setuid位。

stat文档提到有一个 S_ISUID 函数,但它只和 os.chmod() 一起使用,不能用来实际读取setuid位。文档中还提到了 S_IMODE,但我不知道该怎么理解它。

我该如何简单地检查一个文件是否设置了setuid根位?

1 个回答

8

stat.S_ISUID是一个用于表示“setuid”的模式位。你可以通过比较stat结果中的模式,来检查它是否包含这个位:

>>> ping = os.stat('/bin/ping')
>>> ping.st_mode & stat.S_ISUID
2048
>>> echo = os.stat('/bin/echo')
>>> echo.st_mode & stat.S_ISUID
0

撰写回答