2

我需要能够从 cron 任务或 ssh 会话中更改用户的密码。有没有一种简单的方法可以使用 bash 脚本来做到这一点?如果不是,那么在 Cocoa 中最简单的方法是什么?

4

2 回答 2

2

Apple 在 Mac OS 10.5 中引入了允许更改密码的CSIdentitySetPassword API,如下所示:

#import <Collaboration/Collaboration.h>

    AuthorizationRef authRef = NULL; // You have to initialize authRef

    CBIdentityAuthority *authority = [CBIdentityAuthority defaultIdentityAuthority];
    CSIdentityRef identity = [CBIdentity identityWithName:user authority:authority].CSIdentity;
    if (CSIdentityGetClass(identity) == kCSIdentityClassUser) {
        CSIdentitySetPassword(identity, (__bridge CFStringRef)newPassword);
        CSIdentityCommit(identity, authRef, NULL);
    }

AuthenticationRef 可以像 int这个响应一样被初始化。

于 2017-06-21T18:23:32.183 回答
1

使用passwd外壳命令。

于 2008-12-09T18:11:29.737 回答