我需要一种方法来执行os.system()模块作为不同的UID,它的行为需要类似于下面的BASH代码(注意,这些并不是我正在执行的命令):
su user1
ls ~
mv file1
su user2
ls ~
mv file1
目标平台是GNU Linux Generic。
当然,我可以只将它们传递给os.system模块,但是如何发送密码呢?当然,我可以以root用户身份运行该脚本,但这是草率和不安全的。
我最好不要求任何密码是纯文本的。
3天前,我在我的笔记本上安装了一个基于debian的深度linux,我尝试使用sudo,比如sudo apt-get install [somethings],我得到了以下错误:
sudo: error in /etc/sudo.conf, line 0 while loading plugin "sudoers_policy"
sudo: unable to load /usr/lib/sudo/sudoers.so: /usr/lib/sudo/sudoers.so: file too short
sudo: fatal error, unable to load plug
我在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中的密码时:
背景
我知道su -、sudo su -和sudo <command>之间的区别:
su - -将用户切换到root,需要root密码。
sudo su - -将用户切换到根用户,只需要当前用户的密码
sudo <command> -只为特定命令授予根访问权限;只需要当前用户的密码
我的问题是在生产环境中使用sudo su -是否是一种安全的实践。
一些想法:
似乎允许sudo su -依赖于单独的用户密码来访问根帐户,从而带来了安全风险。当然,这可以通过强制执行严格的密码策略来缓解。我不认为su -更好,因为它需要管理员共享实际的根密码。
允许用户完全切换到根帐户会使
我在登录数据库中的一个帐户时遇到了问题。情况就是这样。
用户已经登录到Linux上的帐户环境,例如从他的个人帐户登录。
su - projectA
用户尝试使用
[projectA@myDB2]$ sqlplus /
我们正在收到这样的信息:
ORA-01017:无效用户名/密码:登录被拒绝
我在下面运行了这个命令,它缺少一个前缀。
SQL> SHOW PARAMETER os_authent_prefix
NAME TYPE VALUE
-------------------------------
我所要做的事情的整个目标是成为根用户并运行一个进程。但是,我创建了一个进程,调用一个辅助主机,并运行一个脚本来获取我想要的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
我编写了一个shell脚本,它反过来调用另一个脚本,但第二个脚本提示输入密码。我想提供密码并在没有通知用户的情况下传递提示。
这是我的剧本:
su - s3 -c "su.sh"
我试过:
su - s3 -c "echo pass | su.sh"
但我有个错误:
standard in must be a tty
更新:
命令的截图。
📷
我也累了:
su - s3 -c "echo mypass|sudo -S su.sh"
但又出现了另一个错误:
sudo: sorry, you must have a tty to run sudo