小编Ark*_*rka的帖子

grep有效域正则表达式

我正在尝试为只匹配有效域的grep创建一个正则表达式.

我的版本工作得很好,但匹配以下无效域:

@subdom..dom.ext
Run Code Online (Sandbox Code Playgroud)

这是我的正则表达式:

echo "@dom.ext" | grep "^@[[:alnum:]]\+[[:alnum:]\-\.]\+[[:alnum:]]\+\.[[:alpha:]]\+\$"
Run Code Online (Sandbox Code Playgroud)

我正在使用bash,所以我逃脱了特殊字符.

应匹配的示例:

@subdom.dom.ext
@subsubdom.subdom.dom.ext
@subsub-dom.sub-dom.ext
Run Code Online (Sandbox Code Playgroud)

感谢帮助

regex dns bash grep

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

Ansible SSH作为一个用户而Sudo作为另一个用户

我有一些困难使Ansible配置适应我的环境.

我的测试环境:

  • PermitRootLogin没有
  • 只允许一个用户通过SSH连接(foo,没有任何权限)
  • 具有sudo权限的用户(栏ALL =(ALL)ALL)

我的ansible主机库存如下所示:

[servers]
server1 ansible_ssh_host=192.168.0.1 ansible_sudo=true ansible_ssh_user=foo ansible_sudo_user=bar
Run Code Online (Sandbox Code Playgroud)

我有一个用于foo用户的SSH密钥.

当我使用条形码密码尝试这个ad hoc命令(或任何其他命令)时:

ansible server1 -m raw -a "echo test > /etc/testfile" --ask-sudo-pass
server1 | FAILED => Incorrect sudo password
Run Code Online (Sandbox Code Playgroud)

然后,如果我使用foo密码执行相同的命令:

ansible server1 -m raw -a "echo test > /etc/testfile" --ask-sudo-pass
Sorry, user foo is not allowed to execute '/bin/bash -c echo SUDO-SUCCESS-rlpfhamukjnsfyokqbjpbttviiuildif; echo test > /etc/testfile' as bar on server1.
Run Code Online (Sandbox Code Playgroud)

所以Ansible肯定使用foo作为sudo用户而不是我指定的bar.有没有办法强制使用bar而不是foo?我真的不明白Ansible上的sudo功能,即使我使用相同的用户一切(SSH和条形码密码)ansible给我回报:

server1 | FAILED | rc=1 >>
echo test > /etc/testfile : Permission denied
Run Code Online (Sandbox Code Playgroud)

当我在主机上记录为条形并执行"sudo echo …

ssh sudo ansible ansible-inventory ansible-ad-hoc

6
推荐指数
1
解决办法
3878
查看次数

mysqladmin ping错误代码

即使密码失败,mysqladmin ping也会返回0,这是mysqlclient没有的.这是Mysqladmin Developpers的错误吗?我不明白为什么Mysqladmin要求登录/密码,因为即使你没有指定登录,它也会返回0.

如果我尝试没有任何登录名/密码的Mysqladmin ping:

# mysqladmin ping ; echo $?

mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
0

Mysqladmin给我一个登录错误并告诉我服务器当前正在运行(0值)所以为什么要求登录,如果它仍然给我答案?


当我做这样的事情时:

#mysqladmin -uroot -pWrongPassword ping ; echo $?

mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
0

这使我返回0而不是1.


现在,如果我停止mysql服务器并再试一次:

# mysqladmin -uroot -pWrongPassword ping ; echo $?

mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket …

mysql linux mysqladmin

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

标签 统计

ansible ×1

ansible-ad-hoc ×1

ansible-inventory ×1

bash ×1

dns ×1

grep ×1

linux ×1

mysql ×1

mysqladmin ×1

regex ×1

ssh ×1

sudo ×1