0

我的问题是我想从 root 运行一个脚本,我总是必须通过在命令行上键入“su -”手动以 root 登录。

我的查询是我正在执行的脚本通过提示我输入密码自动以 root 登录。帮我!!!

::::::::::脚本:::::::::::::

if [ "$(whoami)" != "root" ]; then

echo -e '\E[41m'"\033[1mYou must be root to run this script\033[0m"

**su - # at this line I want to login as root but it is not working**

exit 1

fi

sleep 1

if [ "$(pwd)" != "/root" ]; then

echo -e '\E[41m'"\033[1mCopy this script to /root & then try again\033[0m"

cd /root

exit 1

fi

sleep 1

echo -e '\E[36;45m'"\033[1mDownloading Flash Player from ftp.etilizepak.com\033[0m"

sleep 2

wget -vcxr ftp://soft:S0ft\!@ftp.abc.com/ubuntu/ubuntu\ 12.04/adobe-flashplugin=/install_flash_player_11_linux.i386.tar.gz

cd ftp.abc.com/ubuntu/ubuntu\ 12.04/adobe-flashplugin/

sleep 1

echo -e '\E[42m'"\033[1mUnzipping .tar File...\033[0m"

sleep 1

tar -xzf install_flash_player_11_linux.i386.tar.gz

echo "Unzipping Compeleted"

sleep 2

echo -e '\E[42m'"\033[1mCopying libflashplayer.so\033[0m"

cp libflashplayer.so /usr/lib/mozilla/plugins/

:::::::::::::::结尾:::::::::::::::::::::

4

2 回答 2

0

根据您对我之前回答的评论,我是这样做的:

同一目录下有两个文件:

-rwx------ 1 root root 19 Sep 10 13:04 test2.sh
-rwxrwxrwx 1 root root 29 Sep 10 13:06 test.sh

文件 test.sh:

#!/bin/bash
# put your message here
su -c ./test2.sh

文件 test2.sh:

#!/bin/bash
echo You run as:
whoami
# put your code here

结果:

> ./test.sh
Password:****
You run as:
root

如果您只想禁止此脚本的密码提示,请将“su -c”替换为“sudo”并根据此处的说明配置 sudoers 文件:https ://askubuntu.com/questions/155791/how-do-i -sudo-a-command-in-a-script-without-being-asked-for-a-password

于 2013-09-10T11:18:21.837 回答
0

我不确定我是否理解你的问题,但我想你想在你的脚本中以 root 权限运行一些东西——那么你应该使用“sudo”命令。您也可以禁止密码提示,这可以在 sudoers" 配置文件中进行配置。

这里有更多信息: https ://unix.stackexchange.com/questions/35338/su-vs-sudo-s-vs-sudo-bash Shell脚本调用sudo;如何抑制密码提示

有大量示例,谷歌搜索“linux sudo 示例”之类的内容,您将获得很多如何使用 su、sudo 和 sudoers 命令的示例。

于 2013-09-10T07:05:38.377 回答