3

我想使用 python 脚本按顺序执行以下命令:

sudo su - postgres   #login as postgres user
psql

我尝试使用:

import os

cmd = 'sudo su - postgres'
os.system(cmd)

cmd1='psql'
os.system(cmd1)

问题是第二个命令只有在我从 postgres 用户注销后才会执行,但我想以 postgres 用户身份运行它。用户更改后如何继续执行python脚本?

谢谢

4

1 回答 1

1

您可以使用:

sudo su - postgres --command='cat … | psql …'

但你不应该。您应该配置您的数据库服务器,以允许运行您的 python 脚本的用户无需密码即可访问您的数据库。或者至少使用.pg_pass这个用户主目录中的文件来提供这个数据库的用户名和密码。

如果您使用 PGPASSWORD,正如您在评论中指出的那样,那么您系统中的任何其他用户都可以简单地使用ps auxwww.

于 2013-09-13T19:32:46.400 回答