运行 MacPorts 安装脚本的最佳方法(Sudo 不断超时)

运行 MacPorts 安装脚本的最佳方法(Sudo 不断超时)

我开始了一份新工作,主要使用 Ubuntu,并且有一个基于 apt-get 的 bash 启动脚本。我已经从 MacPorts 中适当地重命名了软件包,但有些程序需要很长时间才能构建/安装,导致 sudo 超时。有没有办法让我在脚本开始时提示输入密码,然后在脚本结束之前不再要求输入密码?

我的想法是,我可以以某种方式设置每个终端会话变量来覆盖 sudo 超时,然后恢复它,但我不知道这是否是最好的方法。理想情况下,新人可以在第一天运行这个,然后离开,而他们则倾向于处理更多管理事务。

答案1

在终端中运行sudo visudo并将以下行添加到Defaults“块”以获得 1 小时超时:

Defaults timestamp_timeout=60

man sudoers

timestamp_timeout
sudo 再次要求输入密码之前可以经过的分钟数。默认值为 5。将其设置为 0 以始终提示输入密码。如果设置为小于 0 的值,则用户的时间戳将永不过期。这可用于允许用户分别通过 sudo -v 和 sudo -k 创建或删除自己的时间戳。

请注意,您正面临安全问题。请经常使用sudo -k强制超时。

答案2

您可以安装端口树以与您的用户一起运行:

像往常一样安装 macports,然后在安装之前将端口树 chown/opt/local到您的用户。现在,您使用端口执行的所有操作都可以在不使用 sudo 的情况下完成。只有需要 root 权限来安装新用户、组或服务等内容的端口才会失败,并且只能使用 sudo。

曾经有计划在 macports 中实现类似权限分离的功能,但我从未跟进了解是否已经实现。

答案3

为了完成,root shellsudo也可以防止超时。

sudo -H -i

相关内容