Bash需要root用户。在相同的脚本或单独的脚本?

时间:2015-09-16 10:15:41

标签: linux bash shell

在这里编写newb脚本,处理需要root,user,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指定后产生以下错误(使用-h作为帮助)。

pacaur --noconfirm --noedit -cm "$(< /tmp/test/aur)"

以用户身份启动脚本时运行正常。我的第一选择是让这种方法正常工作。

谷歌等说..根,用户,root在bash是不好的,所以试着把它分成3部分:

1)第一个脚本以root身份运行。问题集中在这里,不能让它开始第二个。

2)第二个脚本以用户身份运行,以root身份启动第三个脚本:sudo / bin / bash&#34; $ L&#34; /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

1 个答案:

答案 0 :(得分:0)

/tmp/test/AUR/tmp/test/aur是不同的文件。大多数文件系统都区分大小写。