我在SLES11SP4上配置了LDAP服务器(使用YaST),并创建了3个用户。我可以(从根用户)到任何用户,但我不能作为他们中的任何一个登录或更改他们的密码。
当我尝试在/var/ log /消息中登录(使用su作为标准用户)时,我有:
suse1 su: pam_ldap: error trying to bind as user "uid=user3,dc=linux" (Invalid credentials)
suse1 su: FAILED SU (to user3) root on /dev/pts/0
当我尝试更改/var/log/messages中的密码时:
我使用brew在mac上安装了postgresql。在安装过程中,我没有被问及postgresql的密码。现在,我需要创建一个用户,但不能:
Alexs-MacBook-Air:mydir alex$ su - postgres
Password:
su: Sorry
无论我使用什么密码(包括空密码),它都是错误的。重置它最简单的方法是什么?
我所要做的事情的整个目标是成为根用户并运行一个进程。但是,我创建了一个进程,调用一个辅助主机,并运行一个脚本来获取我想要的Linux主机的根密码。在此之后,我将密码传回var ansible_become_password:。尽管每次我传递它时,它都会抛出"password is undefined“错误。
我查找变量优先级,但当我尝试另一种方式时,我收到了相同的错误。
代码:
# Root
- name: Run as root user. privileged escalation using su
hosts: 10.x.x.1
gather_facts: false
我需要一种方法来执行os.system()模块作为不同的UID,它的行为需要类似于下面的BASH代码(注意,这些并不是我正在执行的命令):
su user1
ls ~
mv file1
su user2
ls ~
mv file1
目标平台是GNU Linux Generic。
当然,我可以只将它们传递给os.system模块,但是如何发送密码呢?当然,我可以以root用户身份运行该脚本,但这是草率和不安全的。
我最好不要求任何密码是纯文本的。