gpt4 book ai didi

linux - 密码在用户添加到 FreeIPA 后就过期了?

转载 作者:行者123 更新时间:2023-12-03 09:58:46 31 4
gpt4 key购买 nike

我已经设置了一个 FreeIPA 服务器。我面临一个问题,即首次创建用户时密码已过期。所以新用户在第一次登录时应该总是设置他的密码,定义在 here 中。 .但我不想要这个功能。

我正在使用 this library在 FreeIPA 中创建或添加用户。

所以,我像这样连接 FreeIPA-

private function getIPA()
{
$host = env('FREEIPA_HOST', 'cloud-host-ipa.com');
$certificate = database_path(env('FREEIPA_CERTIFICATE', 'ca.crt'));
try {
return new \FreeIPA\APIAccess\Main($host, $certificate);
} catch (Exception $e) {
throw new \ErrorException("Error {$e->getCode()}: {$e->getMessage()}");
return false;
}
}

private function getIPAConnection() //Ged authinticated admin IPA connection
{
$ipa = $this->getIPA();

try {
$auth = $ipa->connection()->authenticate(env('FREEIPA_ADMIN_NAME', 'oc-ipa-connector'), env('FREEIPA_ADMIN_PASS', 'ADMIN_PASS'));
if ($auth) {
return $ipa;
} else {
$auth_info = $ipa->connection()->getAuthenticationInfo();
$auth_info = implode(' ', $auth_info);
throw new \ErrorException("\nLogin Failed : {$auth_info}");
//return false;
}
} catch (Exception $e) {
throw new \ErrorException("\nError {$e->getCode()}: {$e->getMessage()}");
//return false;
}
}

然后像这样添加一个用户 -
$ipa = $this->getIPAConnection();
try {
$new_user_data = array(
'givenname' => $givenname,
'sn' => $sn,
'uid' => $uid,
//'userpassword' => $_POST["userpassword"],
'mail' => $mail,
'mobile' => $phone
);

$add_user = $ipa->user()->add($new_user_data);
if ($add_user) {
return true;
}
} catch (Exception $e) {
throw new \ErrorException("Error {$e->getCode()}: {$e->getMessage()}");
return false;
}

此代码工作正常,并添加了用户。

然后我用这个代码设置密码-
$ipa = $this->getIPAConnection();

try {
$user_info = $ipa->user()->get($uid);

if($user_info != false)
{
try {
$new_user_data = array(
'userpassword' => $password,
);

$mod_user = $ipa->user()->modify($uid, $new_user_data);

if ($mod_user) {
return true;
}
else
{
return false;
}
} catch (Exception $e) {
throw new \ErrorException("Error {$e->getCode()}: {$e->getMessage()}");
}
}
} catch (Exception $e) {
throw new \ErrorException("Error {$e->getCode()}: {$e->getMessage()}");
}

密码设置也很完美。但是设置的密码一设置就自动失效。

我希望我的用户使用此密码至少 1 周。所以,我想禁用 this特征。有什么实用的方法吗?

关于-

我创建了 this issue在 FreeIPA 中为我们提供解决方法,但问题已关闭并标记为 - 关闭: wontfix .所以,我想知道是否有解决方法?

最佳答案

链接中提供了答案https://www.redhat.com/archives/freeipa-users/2012-June/msg00360.html .

您可以从以下命令中看到密码的全局策略:
[server]$ ipa pwpolicy-show
Group: global_policy
Max lifetime (days): 90
Min lifetime (hours): 1
History size: 0
Character classes: 0
Min length: 8
Max failures: 6
Failure reset interval: 60
Lockout duration: 600

您可以通过运行以下命令为要将用户添加到的组创建新的策略覆盖:
[server]$ ipa pwpolicy-add sysadmin --minlife=0
Priority: 50
Group: sysadmin
Min lifetime (hours): 0
Priority: 50

现在,此策略覆盖全局密码策略并仅为该组创建一个策略。

如果要修改全局策略,可以使用以下命令执行相同操作:[server]$ ipa pwpolicy-mod global_policy --minlife=0
Group: global_policy
Max lifetime (days): 90
Min lifetime (hours): 0
History size: 0
Character classes: 0
Min length: 8
Max failures: 6
Failure reset interval: 60
Lockout duration: 600

请注意将 Min life(hours) 更改为 0,这会导致密码永不过期。

创建用户后,您需要从服务器中的脚本运行此代码:
echo -e $PASSWORD\n$PASSWORD\n$PASSWORD | kinit $username
kdestroy

注意需要发送PASSWORDusername作为脚本的参数并远程执行此脚本。

关于linux - 密码在用户添加到 FreeIPA 后就过期了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59374179/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com