V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
nodejx
V2EX  ›  问与答

linux多机器账户密码同步问题

  •  
  •   nodejx · 2014-01-08 08:26:50 +08:00 · 4045 次点击
    这是一个创建于 3997 天前的主题,其中的信息可能已经有所发展或是发生改变。
    请教大家两台ubuntu12.04的机器如何实现账户密码同步更新,在一台服务器更改后在另一台可以同步更新,有没有什么方案可以推荐,谢谢。
    14 条回复    1970-01-01 08:00:00 +08:00
    orzfly
        1
    orzfly  
       2014-01-08 08:32:47 +08:00
    同步我不知道,但是我知道怎么一次批量更新多台服务器……

    for i in server1 server2 server3 server4 server 5; do
    ssh root@$i "echo username:new_password | sudo chpasswd"
    done
    wang2191195
        2
    wang2191195  
       2014-01-08 08:56:49 +08:00 via iPhone
    puppet可以
    nodejx
        3
    nodejx  
    OP
       2014-01-08 09:17:48 +08:00
    具体情况是这样,我们有一台ubuntu的服务器上面有一个数据库,里面存放账户和密码,然后我需要用这些账户和密码来登录另外一台ubuntu服务器。需求是当我在之前一台ubuntu的数据库里面更改了账户和密码之后,在另外一台服务器也可以同步,可以远程ssh登录上去。
    nodejx
        4
    nodejx  
    OP
       2014-01-08 09:18:55 +08:00
    刚刚和同事搜索了下,发现似乎PAM-Modules可以实现,还在测试。。。http://puszcza.gnu.org.ua/software/pam-modules/manual/html_chapter/sql.html
    tywtyw2002
        5
    tywtyw2002  
       2014-01-08 10:43:38 +08:00   ❤️ 1
    这个一班不都用ldap 或者yp呀。。。。
    c0878
        6
    c0878  
       2014-01-08 11:10:17 +08:00
    用证书不是更好
    nodejx
        7
    nodejx  
    OP
       2014-01-08 11:36:05 +08:00
    @c0878 证书怎么用,不懂.
    nodejx
        8
    nodejx  
    OP
       2014-01-08 11:37:30 +08:00
    @tywtyw2002 其实我们只是需要一台ubuntu机器支持调用数据库里面的账户密码登录就可以啦,不需要太复杂的。
    nodejx
        9
    nodejx  
    OP
       2014-01-08 11:44:55 +08:00
    之前描述可能不够清楚,重新写一下。
    两台服务器,均为ubuntu 12.04,就称为A和B。
    现在A上面运行一个数据库,里面存放了一些账户和密码。
    现在我需要使用这些账户来SSH登录到B机,而且如果在A修改了数据库里面的账户和密码,还是要可以使用这些账户和密码来登录B。

    似乎PAM可以调用PAM-Modules可以解决这个问题(比如pam_mysql。。。)???
    ivenvd
        10
    ivenvd  
       2014-01-08 14:06:28 +08:00
    感觉就是 LDAP 嘛……
    shiny
        11
    shiny  
       2014-01-08 14:14:30 +08:00
    居然连证书也没用过……
    halfbloodrock
        12
    halfbloodrock  
       2014-01-08 14:48:26 +08:00   ❤️ 1
    @nodejx 你的这个其实就是LDAP,或者AD域干的事情。。。


    然后你的想法也是对的,用PAM模块。。。在PAM中启用一个mysql的模块。。有一个类似的例子

    http://lustlost.blog.51cto.com/2600869/959553
    nodejx
        13
    nodejx  
    OP
       2014-01-08 15:53:38 +08:00
    @halfbloodrock Thx!但是这是关于vsftp的,login的貌似也没有找到什么例子。。。
    halfbloodrock
        14
    halfbloodrock  
       2014-01-08 16:34:53 +08:00
    @nodejx 这个PAM module需要你自己写。。。

    我以LDAP为例。。写一个pam module,然后在/etc/nsswitch.conf 的passwd和shadow行加入你自己的认证方式

    rpm -qa | grep ldap
    openldap-clients-2.4.23-32.el6_4.1.x86_64
    openldap-2.4.23-32.el6_4.1.x86_64
    pam_ldap-185-11.el6.x86_64
    nss-pam-ldapd-0.7.5-18.1.el6_4.x86_64
    apr-util-ldap-1.3.9-3.el6_0.1.x86_64



    cat /etc/nsswitch.conf
    # /etc/nsswitch.conf
    #
    # Example configuration of GNU Name Service Switch functionality.
    # If you have the `glibc-doc-reference' and `info' packages installed, try:
    # `info libc "Name Service Switch"' for information about this file.

    passwd: files ldap
    shadow: files ldap
    group: files ldap

    hosts: files dns
    networks: files

    protocols: db files
    services: db files
    ethers: db files
    rpc: db files

    netgroup: ldap
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1028 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:26 · PVG 06:26 · LAX 14:26 · JFK 17:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.