标签: sudo

sudo for bash脚本中的单个命令

这可能是一个愚蠢的问题.

我有一个脚本,我想在Mac OS X和我使用的Linux机箱之间移植.在OS X中,脚本中的命令需要sudo,在Linux框中,它不需要.

简而言之,如何在脚本中运行一个命令sudo,然后删除脚本其余部分的提升权限?

我试过用

su -
Run Code Online (Sandbox Code Playgroud)

su -c
Run Code Online (Sandbox Code Playgroud)

但他们似乎都错了.(他们说"抱歉"并继续前进,我认为因为它试图运行rootroot没有密码).

我知道必须有一个愚蠢而简单的方法来做到这一点,每个人都建议什么?

bash scripting sudo

8
推荐指数
1
解决办法
2万
查看次数

在Haskell中运行sudo命令

我在笔记本电脑上安装了ghc 6.12.3和Ubuntu 11.04.

我想有一个函数,它接受一些shell命令并在Haskell中以超级用户(如sudo update-manager,sudo iwlist ....)的形式执行它们.我知道System.Process模块​​有一些函数,比如createProcess,runInteractiveCommand.但是对于单个原始命令或单个shell命令,不适用于像"sudo update-manager"这样的复合通信.我执行"sudo ..."这些函数的所有实验都失败了.我用来运行我的haskell功能的终端没有响应.

我也看了HSH包.但在我看来,那里导出的函数也不适合sudo命令.

我的猜测是执行像"sudo update-manager"这样的命令需要两个进程.一个是"sudo",另一个是"update-manager".所以我需要两次调用"createProcess"之类的函数并以某种方式连接它们,以便"update-manager"的第二个进程从"sudo"的第一个进程获得超级用户权限.

在此先感谢您的帮助!

shell sudo haskell

8
推荐指数
3
解决办法
1838
查看次数

Shell脚本调用sudo; 如何禁止密码提示

我正在编写一个简单的shell脚本来更改网络硬件的mac地址.其中一条线是:

sudo ifconfig eth0 hw ether 00:99:99:00:00:00
Run Code Online (Sandbox Code Playgroud)

我的问题是sudo脚本提示输入密码.有没有办法,我可以这样做而不提示用户输入密码???

linux shell sudo

8
推荐指数
1
解决办法
3万
查看次数

将文件从一个用户主目录复制到Linux中的另一个用户主目录

我有两个linux用户(不是root用户)的登录名和密码,例如user1和user2.

如何使用一个shell脚本(一个脚本启动,无需手动切换用户)将文件从/ home/user1/folder1复制到/ home/user2/folder2.

我想我必须使用sudo命令,但没有找到确切的结果.

linux security shell sudo copy

8
推荐指数
1
解决办法
4万
查看次数

当包含目录是PYTHONPATH的一部分并且文件存在时,为什么找不到PYTHONPATH中的模块?

我有以下情况(通过以下命令进行验证):

  • 目录x中的现有python脚本文件
  • __init__.pyx中现有的python cat 文件
  • x添加到PYTHONPATH变量availble登录用户和sudo

我想调用~/test.py

#!/usr/bin/python
import sys;print sys.path;
import mount_utils
print "Hello World!"
Run Code Online (Sandbox Code Playgroud)

sudo python ~/test.py这导致

Traceback (most recent call last):
  File "/home/richter/test.py", line 3, in <module>
    import mount_utils
ImportError: No module named mount_utils
Run Code Online (Sandbox Code Playgroud)

目录中的目录PYTHONPATH不在sys.path当前目录中.python ~/test.py按预期工作(打印sys.pathHello World!控制台).sudo -E python ~/test.py失败并出现同样的错误.我不明白

python environment sudo environment-variables

8
推荐指数
1
解决办法
2万
查看次数

在不使用sudo的情况下运行composer

我已经按照编辑器网站全局安装composer的指南:https://getcomposer.org/doc/00-intro.md#globally

问题是我每次使用composer时都必须使用sudo.这是一个痛苦,因为创建的每个供应商文件夹sudo composer update都在root我必须更改为的所有者之下www-data.

我试过的事情:

我已经尝试使用chmod +x /usr/local/bin/composer仍需要我使用sudo运行composer,因为该文件属于root.

将权限更改/usr/local/bin/composerwww-data:www-data权限设置为775.仍然需要我首先运行带有sudo的composer.

我如何解决这个问题,所以sudo每次运行作曲家时都不必使用它?

sudo root composer-php

8
推荐指数
1
解决办法
1万
查看次数

ansible sudo:对不起,您必须有一个tty才能运行sudo

当我设置具有云形成的环境时,我需要在Vagrant盒子和aws上运行剧本。

在Vagrant文​​件中,我使用ansible-local,一切正常

name: Setup Unified Catalog Webserver  
    hosts: 127.0.0.1  
    connection: local  
  become: yes  
  become_user: root
  roles: generic
Run Code Online (Sandbox Code Playgroud)

但是,当我在AWS中创建实例时,ansible剧本因错误而失败:
sudo: sorry, you must have a tty to run sudo
发生这种情况是因为它以root身份运行并且没有tty。但我不知道如何解决它没有作出改变/etc/sudoers,以允许!requiretty

我可以在ansible.cfg或云形成模板中设置任何标志吗?

  "#!/bin/bash\n", "\n", "   
 echo 'Installing Git'\n","  
  yum --nogpgcheck -y install git ansible htop nano wget\n",
 "wget https://s3.eu-central-1.amazonaws.com/XXX -O /root/.ssh/id_rsa\n", 
"chmod 600 /root/.ssh/id_rsa\n", 
"ssh-keyscan 172.31.7.235 >> /root/.ssh/known_hosts\n",
 "git clone git@172.31.7.235:something/repo.git /root/repo\n", 
"ansible-playbook /root/env/ansible/test.yml\n
Run Code Online (Sandbox Code Playgroud)

sudo aws-cloudformation ansible

8
推荐指数
2
解决办法
1万
查看次数

无法在Docker中使用sudo命令,显示"bash:sudo:command not found"

我使用以下命令"docker run -it b.gcr.io/tensorflow/tensorflow:latest-devel"安装了TensorFlow,我需要在Windows机器上设置TensorFlow服务.我按照" https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/setup.md "中的说明进行操作,并在安装TensorFlow服务依赖项时运行下面提到的sudo命令:

docker run -it b.gcr.io/tensorflow/tensorflow:latest-devel
Run Code Online (Sandbox Code Playgroud)

显示以下错误:

sudo apt-get update && sudo apt-get install -y \
     build-essential \
     curl \
     git \
     libfreetype6-dev \
     libpng12-dev \
     libzmq3-dev \
     pkg-config \
     python-dev \
     python-numpy \
     python-pip \
     software-properties-common \
     swig \
     zip \
     zlib1g-dev
Run Code Online (Sandbox Code Playgroud)

sudo docker tensorflow-serving

8
推荐指数
3
解决办法
3万
查看次数

在 Bash 中检查 sudo(带有 if 语句的脚本)

我使用 bash 的时间不超过 6 个小时,现在我正在尝试创建一个菜单,让您可以做一些“有趣”的事情:D。

我的问题是if 语句检查您是否处于 sudo 模式。我想有3个条件:

  1. 如果我以sudo模式执行脚本,我将能够输入要复制的文件夹的路径。
  2. 如果我在没有 sudo 模式的情况下执行脚本,它会要求我插入密码,如果我这样做正确,脚本将向我显示echoread op,允许我写入要复制的文件夹的路径。
  3. 与第 2 点相同,但如果我的身份验证失败,应用程序将自动关闭。

创建副本

2)
    if [ "$EUID" -ne 1 ]
      then 
            echo "Checking if you are in sudo mode..."
            echo "Error, please insert your password:"
            sudo ls /root
            if [ "$EUID" -ne 1 ]
                then
                    echo -e "\nCould not authenticate the user."
                    echo -e "For security reasons the application will be closed."
                    exit    
            else
                echo "==============================================================="
                echo -e "ALL …
Run Code Online (Sandbox Code Playgroud)

linux bash sudo if-statement su

8
推荐指数
1
解决办法
5815
查看次数

sudo 忽略从同一脚本发送的 SIGTERM

我试图找出为什么这不起作用:

\n\n
#!/bin/bash\n\nsudo sleep 60 &\nsudo_pid=$!\nsudo kill $sudo_pid\n
Run Code Online (Sandbox Code Playgroud)\n\n

我希望在之后killsudo命令及其子sleep进程将被终止,但它们没有,如以下脚本所示:

\n\n
#!/bin/bash\n\nsudo sleep 60 &\nsudo_pid=$!\nsudo kill $sudo_pid\n\nif ps -p $sudo_pid > /dev/null; then\n    sudo kill $sudo_pid\nelse\n    echo "No sudo process running"\n    exit 1\nfi\n\nif ps -p $sudo_pid > /dev/null; then\n    echo "sudo (pid $sudo_pid) is still running"\n    ps -F $sudo_pid\nelse\n    echo "sudo successfully killed"\nfi\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我运行它时会产生以下输出(带有sudo缓存的信用):

\n\n
jon@ubuntu:~$ ./so.sh \nsudo (pid 46199) is still running\nUID         PID   PPID  C    SZ   RSS PSR STIME TTY …
Run Code Online (Sandbox Code Playgroud)

linux bash sudo signals kill

8
推荐指数
3
解决办法
1788
查看次数