我将使用Python编写一个脚本来更改SAMBA服务器上的用户密码。 我从未学过Python,现在我在使用Ubuntu的VirtualBox上尝试了不同的东西。 使用此代码,我可以在我的VirtualBox中更改(或更好地删除并设置新的)用户密码。 但它也可以在服务器上运行吗? 我没有线索。请帮我。谢谢!
from subprocess import Popen
uname = raw_input("Username: ")
proc = Popen(['/usr/bin/sudo', '/usr/bin/passwd', uname, '--d'])
proc.communicate()
proc = Popen(['/usr/bin/sudo', '/usr/bin/passwd', uname])
proc.communicate()
答案 0 :(得分:1)
def create_or_update_samba_user(username, password):
proc = subprocess.Popen(['sudo', 'smbpasswd', '-a', username], stdin=subprocess.PIPE)
proc.communicate(input=password + '\n' + password + '\n')
答案 1 :(得分:0)
无法评论为什么这里与Nyman的版本略有不同:
def create_or_update_samba_user(username, password):
proc = subprocess.Popen(['sudo', 'smbpasswd', '-a', '-s', username], stdin=subprocess.PIPE)
proc.communicate(input=password + '\n' + password + '\n')
这是不需要任何用户干预的版本。 ' -s'告诉smbpasswd从stdin获取密码。
答案 2 :(得分:-2)
所以如果我读得对,这应该有用吗?
from subprocess import Popen
uname = raw_input("Username: ")
proc = Popen(['/usr/bin/sudo', '/usr/bin/smbpasswd', '-a', uname])
proc.communicate()
感谢您的帮助!
可悲的是我还没有访问Server,所以我无法测试它。而且我不想向服务器管理员提供一个无法运行的脚本。