在 Unix(包括 Gnu/Linux)上,suid/sgid(或文件功能)是唯一的、本机的(所有其他方式都使用这种方式)提升权限的方式。
作为系统管理员,我喜欢编写脚本,因为它们很简单并且非常适合任务。 但是,脚本和其他解释语言不支持 suid 和 sgid。
因此我想找到一些替代方案。 (我不介意一般解决方案或特殊情况)。
答案1
方法有很多种,这里有一些:
sudo
以临时方式使用。管理员(拥有完全sudo
权限)可以使用它。- 配置
/etc/sudoers
, 以允许特定脚本运行sudo
(无需密码,或由任何用户运行)。 - 如果您只想绑定到低编号端口,则使用
authbind
. - 用不同的语言编写,编译为静态链接的可执行文件。
go
,很好,很容易使用。 - 编写一个启动器来执行特权操作,并在
exec
新进程运行脚本之前放弃特权。