- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试学习 Fabric 2.5,但我正在苦苦挣扎。我已经阅读了很多页面,试图忽略那些提到旧织物版本的页面。
我运行以下命令,得到 The password submitted to prompt '[sudo] password: ' was rejected.
有人可以建议做错了什么吗?
(f5) albe@vamp398:/srv/file/f5$ fab tt --prompt-for-login-password --prompt-for-sudo-password
Desired 'sudo.password' config value:
Enter login password for use with SSH auth:
Linux vamp398 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
albe
[sudo] password: Sorry, try again.
[sudo] password: Traceback (most recent call last):
File "/srv/file/f5/bin/fab", line 8, in <module>
sys.exit(program.run())
File "/srv/file/f5/lib/python3.5/site-packages/invoke/program.py", line 384, in run
self.execute()
File "/srv/file/f5/lib/python3.5/site-packages/invoke/program.py", line 566, in execute
executor.execute(*self.tasks)
File "/srv/file/f5/lib/python3.5/site-packages/invoke/executor.py", line 129, in execute
result = call.task(*args, **call.kwargs)
File "/srv/file/f5/lib/python3.5/site-packages/invoke/tasks.py", line 127, in __call__
result = self.body(*args, **kwargs)
File "/srv/file/f5/fabfile.py", line 33, in tt
c.sudo('whoami')
File "/srv/file/f5/lib/python3.5/site-packages/invoke/context.py", line 173, in sudo
return self._sudo(runner, command, **kwargs)
File "/srv/file/f5/lib/python3.5/site-packages/invoke/context.py", line 226, in _sudo
raise_from(error, None)
File "<string>", line 2, in raise_from
invoke.exceptions.AuthFailure: The password submitted to prompt '[sudo] password: ' was rejected.
(f5) albe@vamp398:/srv/file/f5$ a
a: command not found
(f5) albe@vamp398:/srv/file/f5$
我的 fabfile.py 是:
# import getpass
# from fabric import Connection, Config
# from invocations.console import confirm
from fabric import Connection
from invoke import Exit
from fabric import task
# noworky
# env.user = "albe"
# env.password = "a"
# sudo_pass = getpass.getpass("What's your sudo password?")
# config = Config(overrides={'sudo': {'password': sudo_pass}})
# c = Connection(host='192.168.88.64', user='albe', config=config)
# c = Connection(host='192.168.88.64', user='albe')
# c = Connection(host="albe@192.168.88.64")
# c.sudo('whoami', hide='stderr')
# c = Connection(host="192.168.88.64",user="albe" , connect_kwargs={"password":"a", "sudo.password":"a"})
# maybe works
# c = Connection(host="192.168.88.64",user='albe', connect_kwargs={"password": "a"})
# fab tt --prompt-for-login-password --prompt-for-sudo-password
c = Connection(host='192.168.88.64', user='albe')
@task
def tt(c):
c.run('uname -a')
c.run('whoami')
c.sudo('whoami')
在 Ubuntu 16.04 上,我像这样设置了 fabric 2.5..
cd /srv/file
sudo apt-get install python3-venv
python3 -m venv f5
cd f5
source bin/activate
echo fabric>>requirements.txt
sudo chown -R albe: /home/albe/.cache
pip3 install --upgrade pip
pip3 install -r requirements.txt
pip3 list
我的点子列表是:
(f5) albe@vamp398:/srv/file/f5$ pip3 list
Package Version
------------- -------
bcrypt 3.1.7
cffi 1.14.1
cryptography 3.0
fabric 2.5.0
invoke 1.4.1
paramiko 2.7.1
pip 20.2.1
pkg-resources 0.0.0
pycparser 2.20
PyNaCl 1.4.0
setuptools 20.7.0
six 1.15.0
这些页面似乎最相关。
最佳答案
文档中的示例展示了如何使用 Connection()
但他们总是在没有 @task
的情况下显示它因为当你使用 @task
然后它会自动创建自己的context
使用您在命令行中使用的值进行连接。
如果您在 c = Connection(...)
中放入一些随机值并使用 print(c)
里面 task
然后你会发现它没有使用你的 c = Connection(...)
kwargs = {
"password": 'random_password',
}
ctx = Connection(host='random_host', user='random_user', connect_kwargs=kwargs)
@task
def one(ctx):
print(ctx)
print('connect_kwargs:', ctx['connect_kwargs'])
print('user:', ctx['user'])
print('sudo user:', ctx['sudo']['user'])
print('sudo password:', ctx['sudo']['password'])
#ctx.run('uname -a')
#ctx.run('whoami')
#ctx.sudo('whoami')
您最终可以创建自己的
ctx
里面
task
替换现有的
def create_ctx():
password = getpass.getpass("password: ")
kwargs = {
"password": password,
}
ctx = Connection(host='192.168.88.64', user='albe', connect_kwargs=kwargs)
return ctx
@task
def two(ctx):
ctx = create_ctx() # replace original `ctx` with own `ctx`
print(ctx)
print('connect_kwargs:', ctx['connect_kwargs'])
print('user:', ctx['user'])
print('sudo user:', ctx['sudo']['user'])
print('sudo password:', ctx['sudo']['password'])
#ctx.run('uname -a')
#ctx.run('whoami')
#ctx.sudo('whoami')
您还可以替换现有
ctx
中的值
@task
def three(ctx0): #, password='xxx', sudo='yyy'):
password = getpass.getpass("password: ")
sudo = getpass.getpass("sudo: ")
ctx['user'] = 'pi'
ctx['connect_kwargs']['password'] = password
ctx['sudo']['password'] = sudo
print(ctx)
print('connect_kwargs:', ctx['connect_kwargs'])
print('user:', ctx['user'])
print('sudo user:', ctx['sudo']['user'])
print('sudo password:', ctx['sudo']['password'])
#ctx.run('uname -a')
#ctx.run('whoami')
#ctx.sudo('whoami')
fab tt --prompt-for-login-password --prompt-for-sudo-password
或首先使用参数(应设置全局值)
fab --prompt-for-login-password --prompt-for-sudo-password tt
所以我只能邀请你写错密码。
关于python - 结构 2.5 : Trouble supplying sudo password to target host,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63350485/
sudo 命令 1、sudo 简介 sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户
我正在尝试更改 source.list。 主机有一个用户 deploy 和密码 deploy 我可以连接 ssh 并使用 sudo 对 source.list 进行任何操作。然而 ansible 似乎
我希望以我当前用户的权限运行 TOMCAT,而不是 root 的环境变量。 vagrant@dev:~/Workspace/eurekastreams$ echo $JAVA_OPTS -Xmx102
这个问题在这里已经有了答案: How to install python modules without root access? (9 个回答) 3年前关闭。 最终目标是在 redhat 机器上的
我一直在尝试允许 EC2 亚马逊服务器('ec2-user')的普通用户访问某个库。 我做了:“sudo chown -R ec2-user/usr”,我现在意识到这是一个致命的错误。它起作用了,但是
我正在尝试使用 cgi (python) 配置 apache2。为此,我必须更改某些文件夹和文件的权限,但每次尝试更改文件或文件夹的权限时,我都会收到 sudo fatal error 。 例如: 1
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我不想在 sudoers 文件中禁用 requiretty。请建议当我在 cron 作业中执行脚本时是否有其他方式启动终端 最佳答案 这可能是一个奇怪的解决方法,但您可以使用 -t 选项通过 cron
寻找将当前用户的别名传递给 sudo 的方法命令,我找到了以下 on ArchWiki : Passing aliases If you use a lot of aliases, you might
我已将 Royal TS 设置为在多台 Linux 计算机上使用我的用户名自动登录。我想让它在连接后自动运行 sudo su -,输入我的密码,这样只需双击连接即可获得 root 权限。 我已经通过创
我正在尝试使用涉及使用 sudo 的子进程。 它在终端中运行良好: sudo /home/pi/Desktop/fm_transmitter/bin/Release/fm_transmitter
我想通过 ssh 连接到远程服务器,更改用户然后执行脚本。我正在使用 subprocess 来执行此操作,但似乎 sudo -u userB -i 并未更改用户。 HOST = 'remote_ser
我正在尝试使用 Ansible 来配置一个 Vagrant 框和一个 EC2 服务器。使用 --connection=local 时,它在 Vagrant 框上工作正常,但似乎只是忽略了 sudo:
嗨,我为 Ansible 编写了一个剧本来安装一些应用程序。我遇到了麻烦,因为我必须以 root 身份运行所有东西,这不是一个好主意。 所以我创建了一个 sudo 用户并创建了一个用于身份验证的私钥。
我想通过 electron 写一个应用程序,但要求是更新需要 root 的文件允许。 通过 cli 很容易实现,就像 sudo vi xxx . 是否可以通过 electron 更新文件? ? 最佳答
我已经安装了以下 pkgs: ii tigervnc-common 1.10.1+dfsg-1 amd
我有一个经销商 Web 服务器,正在将其迁移到新计算机中。源服务器所有者提供了一个用户(我们称之为用户 A),该用户对其他用户具有 sudo 访问权限,但对 root 没有权限。我的用户没有对我需要提
use std::fs::OpenOptions; use std::io::Write; fn main() { let mut source_list = OpenOptions::new
我正在尝试使用命令 sudo jupyterhub 启动 JupyterHub。这会启动服务器,但用户无法登录。但是,当我使用 sudo -s 切换到 root 用户,然后输入 jupyterhub
我正在尝试安装 pip,但我在 StackOverflow 中陷入了相互冲突的答案中(请阅读末尾的评论以了解重复的问题)。 instructions说下载get-pip.py并使用 phyton 运行
我是一名优秀的程序员,十分优秀!