我需要一种更好的方法来阻止普通用户执行我的python脚本。我正在做那样的事情:
if __name__ == '__main__':
if os.getenv('USER') == 'root':
addUser = addUser()
else:
print 'Only root can run that!'
它正在运作,但它非常难看! 我的脚本是关于Debian系统中的用户管理。
答案 0 :(得分:12)
可以查看和编辑Python代码以规避您放入的任何保护,最好的办法是限制用户在debian中执行可执行访问,这样只有root
可以执行/查看/编辑。
请参阅chmod
答案 1 :(得分:5)
限制对可执行文件需要工作的资源的访问权限比在可执行文件级别强制执行权限更为正常。例如,mount(8)
命令通常可以由任何用户运行,但实际装载实际卷所需的设备文件仅限于某些用户或组,并且mount命令检查操作是否可行之前甚至试图让系统调用来执行设备操作。
这适用于常规文件。例如,许多Linux包管理器需要已安装程序的数据库。在安装任何东西之前,包管理器将检查数据库文件的权限以查看调用用户是否可以写入它,并检查目标目录以查看用户是否可以修改它们。即使包管理器没有执行这些检查,它们也不能在尝试时进行这些更改,内核只是阻止程序执行不允许拥有用户执行的操作。