Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 关于设置脚本权限_Linux_Bash_Shell_Unix_Ubuntu - Fatal编程技术网

Linux 关于设置脚本权限

Linux 关于设置脚本权限,linux,bash,shell,unix,ubuntu,Linux,Bash,Shell,Unix,Ubuntu,我有一组更新命令,需要根据我所在大学的安全政策定期运行。以下是命令: 苏多容易变得干净 sudoapt获得更新 sudo apt get-y--清除区升级 现在我想做的是自动化这个过程。我要做的就是 将所有这些命令设置为shell脚本 每天早上6点作为cronjob运行脚本 我编写了一个名为“update_script.sh”的shell脚本,并将其保存在主文件夹中。脚本中有三个没有sudo选项的命令。然后我将脚本的所有权更改为root 接下来,我修改了visudo文件,允许该脚本在没有密码的情

我有一组更新命令,需要根据我所在大学的安全政策定期运行。以下是命令:

苏多容易变得干净

sudoapt获得更新

sudo apt get-y--清除区升级

现在我想做的是自动化这个过程。我要做的就是

  • 将所有这些命令设置为shell脚本
  • 每天早上6点作为cronjob运行脚本 我编写了一个名为“update_script.sh”的shell脚本,并将其保存在主文件夹中。脚本中有三个没有sudo选项的命令。然后我将脚本的所有权更改为root

    接下来,我修改了visudo文件,允许该脚本在没有密码的情况下运行

    (我遵循了本文中的步骤)

    现在我的问题是:

    当我试图以“sh update_script.sh”的形式运行此更新脚本时,它无法运行它。只有当我执行“sudosh update_script.sh”时,它才起作用


    我在哪里搞砸了

    好吧,按照你的描述,你已经允许自己执行了

    update_script.sh
    
    和sudo在一起

    这意味着您需要使用

    这意味着脚本由root用户执行,脚本中的所有命令也作为root用户执行


    如果您只想在不使用sudo的情况下执行脚本本身,但允许自己以脚本作为根用户执行命令(本例中的apt-get命令),则必须将命令(本例中的apt-get命令)添加到sudoers文件中。但在我看来,在你的例子中,你应该用sudo调用整个脚本

    可能是因为您不允许自己在没有密码的情况下运行apt get
    sudo update_script.sh