1

次のメソッドは、OpenLDAP データベースでPOSIXログイン機能を持つユーザーを作成するために使用されます。以下の方法で作成したアカウントを持つユーザーは、どの OpenLDAP クライアント Linux マシンにもログインできます。このメソッドを呼び出すときは、次の変数を渡す必要があります。

  • $ldapconn: によって返されましたldap_connect
  • $username: 作成するユーザー名。
  • $password: アカウントにログインするためのパスワード。

    public static function createNewUser($ldapconn, $username, $password) {
        if (!$ldapconn) { return false; }
        require_once("LDAPConfigurator.php");
        $r = ldap_bind($ldapconn, "cn=admin,dc=test,dc=com", "12345");

        // Prepare data
        $info = [
            'cn'            => $username,
            'sn'            => $username,
            'gidNumber'     => 502,
            'homedirectory' => "/home/ldap/".$username,
            'loginShell'    => "/bin/sh",
            'password'      => $password,
            'uidNumber'     => 2333, // Can I set auto increment for this value?
            'username'      => $username,
            'objectclass'   => [
                'inetOrgPerson',
                'posixAccount',
                'top'
            ]
        ];

        // Add data to directory
        $r = ldap_add($ldapconn, "cn=".$username",cn=users,ou=groups,dc=test,dc=com", $info);

        return true;
    }

オブジェクトを設定するために、 phpLDAPadmin$infoの POSIX ユーザー アカウントで使用される属性を参照し、すべてラベルを持っています。ただし、最終的に次のエラーが発生します。required

Warning: ldap_add(): Add: Undefined attribute type 

$infoでは、POSIX ユーザーを作成するための適切なオブジェクトは何でしょうか?

4

1 に答える 1