【发布时间】:2014-09-13 13:39:16
【问题描述】:
请注意:这是在我的本地机器上运行的来宾 VM (VBox),我不担心安全问题。
我正在编写一个脚本,该脚本将以myuser 用户身份在 Linux (Ubuntu) VM 上执行。该脚本将在/etc/myapp 下创建一个非常大的目录树。目前我必须手动完成所有这些,首先是我在/etc 下授予myuser recrusive rwx 权限,如下所示:
sudo chmod -R 777 /etc
[sudo] password for myuser: <now I enter the password and hit ENTER>
我的问题:如何编写一个 bash 脚本,为 sudo 命令提供我的密码,以便我可以执行 bash myscript.sh 并为我进行必要的权限更改?
【问题讨论】:
-
(如果您有远程安全意识):您不会在脚本中嵌入密码;相反,您将 sudo 配置为根本不要求输入密码(在运行该命令时,作为该用户)。有关文档,请参阅
man sudoers。 -
...但是,如果你有远程安全意识,你也不会EVER
chmod 777整个/etc。请记住,o+rwx不仅意味着您有意授予对计算机的访问权限的用户 - 它还意味着以nobody帐户运行的不受信任的进程(包括处理入站未经身份验证的网络连接的进程)获得绝对修改权限您系统上的所有内容,包括密码。 -
感谢@CharlesDuffy (+1) - 我应该提到,这是一个在我的机器上本地运行的 VBox VM,并且没有运行任何重要/安全的东西。所以没有(!)我什至没有远程这里的安全意识!
-
如果你想让每个人都通过询问 sudo 无需密码就可以做任何事情,也许这应该是你的问题。
-
谢谢@CharlesDuffy (+1) 但是我没有关注你……你能详细说明一下吗?
标签: linux bash file-permissions sudo