【发布时间】:2015-12-12 20:58:11
【问题描述】:
在这里为 newb 编写脚本,处理需要 root、用户、root 的 bash 脚本。我在用户终端中 su 之后运行它。最初尝试:
su -c - "$USER" "export PKGDEST=/tmp/test/AUR/"
su -c - "$USER" "pacaur --noconfirm --noedit -cm" "$(< /tmp/test/aur)"
无论如何,不同的错误,取决于报价组合,位置,都会导致第二行崩溃。运行上述代码,第二行在读取文件 /tmp/test/aur :: no targets specified (use -h for help) 后产生以下错误。
pacaur --noconfirm --noedit -cm "$(< /tmp/test/aur)"
以用户身份启动脚本时运行良好。我的第一选择是让这种方法正常工作。
Google 等说 bash 中的 root、用户、root 不好,所以试着把它分成 3 个部分:
1) 第一个脚本以 root 身份运行。问题中心在这里,不能让它开始第二个。
2) 第二个脚本以用户身份运行,以 root 身份启动第三个脚本:sudo /bin/bash "$L"/copyaur.sh
3) 第三个脚本,copyaur.sh 启动、运行、移动一些包,但由于调用了新的 shell,所以没有显示在终端中。
在测试期间,以下内容在用户终端中以 su 身份运行。更喜欢使用 $USER var 作为 whoami 报告 root 而 echo $USER 报告用户名。切换su后,然后su - $USER, ls in~显示我家的内容。
[dom@arch testing]$ echo $USER
dom
[root@arch testing]# echo $USER
dom
[root@arch testing]# pwd
/home/dom/scripts/testing
su - $USER home/$USER/scripts/testing/buildaur.sh - No such file or directory
su --login $USER home/$USER/scripts/testing/buildaur.sh - No such file or directory
su - $USER home/dom/scripts/testing/buildaur.sh - No such file or directory
su - "$USER" home/dom/scripts/testing/buildaur.sh - No such file or directory
su - "$USER" ./buildaur.sh - No such file or directory
su - dom ./buildaur.sh - No such file or directory
su - dom ~/scripts/testing/buildaur.sh - Permission denied
su - $USER ~/scripts/testing/buildaur.sh - Permission denied
su --login dom ~/scripts/testing/buildaur.sh - Permission denied
su - dom /home/dom/scripts/testing/buildaur.sh - Runs as user, expected
su --login dom /home/dom/scripts/testing/buildaur.sh - Runs as user, expected
su - dom /home/$USER/scripts/testing/buildaur.sh - Runs as user, expected
【问题讨论】: