试试这个:
echo "$pass" | sudo -S -u $user script
$pass
是你的密码,$user
是谁想要运行脚本的用户。 (此用户必须具有运行该脚本的权限。)
如果您user
没有权限,然后尝试运行作为组:
echo "$pass" | sudo -S -g $group script
此组必须具有运行该脚本的权限。
注意:像这样传递密码不是一个好主意。
如果你的用户无法使用sudo:
如果你的用户无法使用sudo那么你可以不通过切换用户使用sudo运行该脚本。您应该考虑使用这个非sudo用户帐户执行脚本。为此,该用户必须具有执行该脚本的权限。要做到这一点
一种方法是更改脚本的权限755
(从sudo的用户):
然后你就可以在终端输入路径执行脚本。(如果你的脚本取决于相对路径,确保cd
到脚本的父目录运行它之前)
注:这将允许任何用户执行脚本(无需任何身份验证)
另一种方法是将非须藤用户添加到一具有的权限来执行脚本的基团:
在这种情况下,权限等:
chmod ug+rwx,o-x+r script
#read write xecute permission to user and group and readonly to others
和
chmod u+rwx,g+rx,o-x+r
#read write xecute to user and rx to group and readonly to others
等其中组必须执行该文件会做的伎俩的权利。这比使用755
权限更安全。
的步骤在此过程中经历:
1.登录到具有须藤privillege的用户帐户。
2.修改脚本的权限,因为只允许用户和组执行脚本。
实施例:
chmod u+rwx,g+rx,o-x path/to/the/script
3.添加非须藤用户添加到当前用户组:
sudo usermod -g $USER non_sudo_user_name
#you don't need to edit $USER, only non_sudo_user_name
4.Do在非须藤用户帐户一个新的登录。
现在,您可以通过运行执行脚本:
/path/to/the/script
注意:如果你的脚本取决于相对路径,那么你可能需要cd
到脚本的父目录运行它之前。
非常感谢您的回答。不幸的是它没有奏效。 – Yanik
你是否以用户或其他方式传递礼服?如果其他它不会工作。 – Jahid
如果您有一个有权运行tux脚本的组,可以使用该组运行该脚本。 – Jahid