![无需使用 sudo 即可对应用程序进行密码保护](https://linux22.com/image/1054156/%E6%97%A0%E9%9C%80%E4%BD%BF%E7%94%A8%20sudo%20%E5%8D%B3%E5%8F%AF%E5%AF%B9%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E8%BF%9B%E8%A1%8C%E5%AF%86%E7%A0%81%E4%BF%9D%E6%8A%A4.png)
我有一个不寻常的请求。我需要为某个应用设置密码,但我需要该应用在用户级别运行(而不是 Sudo 或 SU)。有没有简单的方法可以做到这一点?
答案1
您可以使用简单的 bash 脚本和 Zenity 来实现这一点。如前所述,除非您不关心安全性,否则不应使用此方法。
#!/bin/sh
#Create the Zenity Window and show it
OUTPUT=$(zenity --password "Password")
#Compare the user input with your hardcoded password
if [ "$OUTPUT" = "abc1234" ]
then
#Command to launch the application from the CLI. Replace with your own command
/usr/bin/nautilus
else
#Throw an error
zenity --error --text "Password incorrect. Terminating"
fi
将其保存为 .sh 文件,授予其 +x 权限,即可开始使用,只需相应地替换命令即可。
答案2
我搞明白了,它要求我创建一个名为“admin”的用户(即系统管理员)的密码。我已将“用户”帐户设置为仅桌面用户,而不是管理员。
1)我改变了菜单项以显示gksu -w -u admin /home/admin/bin/menu.sh
(我把脚本放在哪里)
2)在menu.sh
脚本中gksu -u user /usr/bin/alacarte
3)执行时,它会要求输入管理员的密码,然后以更高管理员用户身份运行该程序。
通常这不会是个问题,但是当alacarte
(菜单编辑器)以管理员或根用户身份运行时。它会编辑管理员或根用户的菜单,而不是当前用户的菜单,这有点毫无意义
对于一个小问题来说,这听起来确实很复杂,我相信有更简单的方法可以做到这一点。我对这类事情还比较陌生。如果有更简单的方法可以做到这一点,请告诉我。
谢谢,
凯尔·T。