这可能是一个愚蠢的问题.
我有一个脚本,我想在Mac OS X和我使用的Linux机箱之间移植.在OS X中,脚本中的命令需要sudo,在Linux框中,它不需要.
简而言之,如何在脚本中运行一个命令sudo,然后删除脚本其余部分的提升权限?
我试过用
su -
Run Code Online (Sandbox Code Playgroud)
和
su -c
Run Code Online (Sandbox Code Playgroud)
但他们似乎都错了.(他们说"抱歉"并继续前进,我认为因为它试图运行root而root没有密码).
我知道必须有一个愚蠢而简单的方法来做到这一点,每个人都建议什么?
我在笔记本电脑上安装了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脚本来更改网络硬件的mac地址.其中一条线是:
sudo ifconfig eth0 hw ether 00:99:99:00:00:00
Run Code Online (Sandbox Code Playgroud)
我的问题是sudo脚本提示输入密码.有没有办法,我可以这样做而不提示用户输入密码???
我有两个linux用户(不是root用户)的登录名和密码,例如user1和user2.
如何使用一个shell脚本(一个脚本启动,无需手动切换用户)将文件从/ home/user1/folder1复制到/ home/user2/folder2.
我想我必须使用sudo命令,但没有找到确切的结果.
我有以下情况(通过以下命令进行验证):
__init__.pyx中现有的python cat 文件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.path和Hello World!控制台).sudo -E python ~/test.py失败并出现同样的错误.我不明白
PYTHONPATH在sudo echo输出中打印变量,为什么模块不可用sudo -E不保护环境(据我从理解man sudo和https://docs.python.org/2/using/cmdline.html不应该有什么区别python bla …我已经按照编辑器网站全局安装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/composer为www-data:www-data权限设置为775.仍然需要我首先运行带有sudo的composer.
我如何解决这个问题,所以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) 我使用以下命令"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) 我使用 bash 的时间不超过 6 个小时,现在我正在尝试创建一个菜单,让您可以做一些“有趣”的事情:D。
我的问题是if 语句检查您是否处于 sudo 模式。我想有3个条件:
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) 我试图找出为什么这不起作用:
\n\n#!/bin/bash\n\nsudo sleep 60 &\nsudo_pid=$!\nsudo kill $sudo_pid\nRun Code Online (Sandbox Code Playgroud)\n\n我希望在之后kill,sudo命令及其子sleep进程将被终止,但它们没有,如以下脚本所示:
#!/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\nRun Code Online (Sandbox Code Playgroud)\n\n当我运行它时会产生以下输出(带有sudo缓存的信用):
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)