次のメソッドは、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 ユーザーを作成するための適切なオブジェクトは何でしょうか?