dhp*_*904 1 permissions bash root sudo scripts
普通用户可以运行这个脚本,但是 root 找不到它。
我有一个简单的脚本,保存在~/bin
. 我更新了.profile
文件以将此文件夹包含在 PATH 中。我可以进入终端,在任何目录中工作,输入脚本的名称,它运行良好。但是如果在那个终端中我切换到 root,则找不到脚本。我假设某处有一些文件需要新的 $PATH 更新,但我不知道是哪一个。
如果您正在使用sudo
,这可能是这种情况,有一个安全策略将 $PATH 环境变量修改为安全路径(在文件/etc/sudoers 中定义)。在〜/ bin中目录中不包括默认secure_path在设定的sudoers文件,因此运行sudo script
是行不通的,但sudo ~/bin/script
会。
您可以将脚本放在sudoers配置文件(即/usr/local/bin)中定义的文件夹之一中,使其可直接访问。该secure_path也可以在配置文件中的变化,虽然它不推荐使用。