社区
非技术区
帖子详情
如果在Linux下编程修改用户密码?
icuc88
2003-10-18 01:13:47
1. 要使用PAM
2. 不允许交互
3. 用C语言
得分条件:
完全实现述要求。不要给我PAM的例子,网站连接。。。诸如此类,我都有。不要叫我直接修改/etc/passwd文件。
UP更没有分。
...全文
53
15
打赏
收藏
如果在Linux下编程修改用户密码?
1. 要使用PAM 2. 不允许交互 3. 用C语言 得分条件: 完全实现述要求。不要给我PAM的例子,网站连接。。。诸如此类,我都有。不要叫我直接修改/etc/passwd文件。 UP更没有分。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
icuc88
2003-12-11
打赏
举报
回复
再次UP!
wide288
2003-12-01
打赏
举报
回复
不可以交互,你怎么知道你改的密码啊。
还有PAM 是什么啊,不知道
icuc88
2003-12-01
打赏
举报
回复
to: blh(老猫)
你肯定这样不用输入密码和用户名吗?
如果是PAM的例子,肯定是交互的。
blh
2003-12-01
打赏
举报
回复
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <security/pam_appl.h>
#include <security/pam_misc.h>
#include <pwd.h>
#include <popt.h>
extern int misc_conv(int num_msg, const struct pam_message **msgm,struct pam_response **response, void *appdata_ptr);
/* conversation function & corresponding structure */
static struct pam_conv conv =
{
misc_conv,
NULL
};
const char *username = NULL; /* username specified on the command line */
#ifdef HAVE_PAM_FAIL_DELAY
#define PASSWD_FAIL_DELAY 2000000 /* usec delay on failure */
#endif
static int stdin_conv(int num_msg, const struct pam_message **msgm, struct pam_response **response, void *appdata_ptr)
{
struct pam_response *reply;
int count;
if (num_msg <= 0)
return PAM_CONV_ERR;
reply = (struct pam_response *) calloc(num_msg, sizeof(struct pam_response));
if (reply == NULL) {
return PAM_CONV_ERR;
}
for (count=0; count < num_msg; ++count)
{
reply[count].resp_retcode = 0;
reply[count].resp = strdup(appdata_ptr);
}
*response = reply;
reply = NULL;
return PAM_SUCCESS;
}
int main(int argc, char *argv[])
{
int retval;
pam_handle_t *pamh=NULL;
retval = pam_start("passwd", username, &conv, &pamh);
#ifdef HAVE_PAM_FAIL_DELAY
retval = pam_fail_delay(pamh, PASSWD_FAIL_DELAY);
if (retval != PAM_SUCCESS) {
fprintf(stderr, "passwd: unable to set failure delay\n");
exit(1);
}
#endif
while (retval == PAM_SUCCESS)
{
retval = pam_chauthtok(pamh, 0);
if (retval != PAM_SUCCESS)
break;
retval = pam_end(pamh, PAM_SUCCESS);
if (retval != PAM_SUCCESS)
break;
printf( "passwd: all authentication tokens updated successfully\n");
exit(0);
}
if (retval != PAM_SUCCESS)
fprintf(stderr, "passwd: %s\n", pam_strerror(pamh, retval));
if (pamh != NULL)
{
(void) pam_end(pamh,PAM_SUCCESS);
pamh = NULL;
}
exit(1);
}
michaelowenii
2003-12-01
打赏
举报
回复
我不行!
hecCIBN
2003-12-01
打赏
举报
回复
等着接分
delphimm
2003-11-30
打赏
举报
回复
有啊,我来也!! 接分!!!
icuc88
2003-11-04
打赏
举报
回复
没有人来吗?散分!
icuc88
2003-10-28
打赏
举报
回复
散分!
zeng_xiangyang
2003-10-18
打赏
举报
回复
ai
ravingboy
2003-10-18
打赏
举报
回复
顺便问一下怎么编程实现修改/etc/passwd文件呢?
zaiquansun
2003-10-18
打赏
举报
回复
太难了,同志
icuc88
2003-10-18
打赏
举报
回复
要求还不少,呵呵
^^^^^^^^^^^^^^^^
我在这个板块只能送100分,如果觉得不够,解决后可以另外给。
warton
2003-10-18
打赏
举报
回复
要求还不少,呵呵
icuc88
2003-10-18
打赏
举报
回复
没有人知道吗?如果没有,我就移动帖子,当送分了。
【
Linux
编程
】三分钟让你学会
Linux
下
用户
密码
更改
Linux
环境下
密码
更改包括两种: 第一种:root
用户
(管理员)
密码
更改 第二种:非root
用户
(普通
用户
)
密码
更改 可能需要进行
密码
更改的场景: ①购买云服务后,原始的root
密码
过于复杂,不方便记忆和使用,需要进行root
密码
更改。 ②创建一个新的
用户
后,发现最初设置的
密码
不好管理,或者之前把这个账号分享给其他人,但是又想要收回账号 。 ③没啥事情,就是玩儿~ 一、root
用户
密码
更改 总思路:要进行root
密码
更改,必须在root
用户
下进行。 步骤一:前期准备,登录root
用户
我们可以直
linux
系统批量
修改
用户
密码
脚本目的:批量
修改
linux
系统
用户
密码
条件:必须是
修改
的
用户
是root,因为只有root才有权限使用passwd命令 说明:先把IP、
用户
、
密码
、端口信息写到old_info文件中,脚本从这个文件读取对应的信息,利用expect免交互登陆系统。将随机生成的8位
密码
修改
为root
用户
新
密码
。然后将新
密码
保存到net_info文件中。 # cat old_info # ip
shell
编程
(四) : [
Linux
基础]
Linux
用户
和组管理
2.4.1
Linux
用户
Linux
安全系统的核心是
用户
账户。
用户
权限是通过创建
用户
时分配的
用户
ID(User ID,通常缩写为UID)来跟踪的。 这些信息保存在 /etc/passwd 和 /etc/shadow 文件中,关于
用户
账户与权限管理的内容详见
Linux
用户
和
用户
组管理相关文件内容详解 关于
Linux
用户
的管理,
Linux
系统提供了以下工具: 命令 描述 useradd 添加新
用户
,默认无
密码
、无主目录、不指定shell版本 adduser 添加新
用户
,要求
用户
设置
密码
、
Linux
入门到精通:第 2 关——
Linux
用户
密码
管理(第二章:
Linux
之
用户
管理)
第 2 关——
Linux
用户
密码
管理 任务描述 相关知识
用户
密码
存放地及方式 使用passwd命令
修改
用户
密码
案例演示 使用chpasswd命令
修改
用户
密码
案例演示
编程
要求 评测说明 任务描述 恭喜你已经完成了第一关的挑战,现在你已经学会了如何创建一个新
用户
和删除一个已经存在的
用户
,接下来,我们一起学习为新创建的
用户
设置登录
密码
。 本关的任务是新创建一个
用户
,并设置登录
密码
。 相关知识 通过本关学习,你将掌握如下知识点:
Linux
中
用户
登录
密码
存放地以及方式 怎么使用passwd命令修
【Shell 命令集合 系统设置 】⭐⭐⭐
Linux
更改
用户
密码
passwd命令 使用指南
passwd命令是
Linux
系统中用于更改
用户
密码
的命令。它允许
用户
更改自己的
密码
或超级
用户
更改其他
用户
的
密码
。通过使用passwd命令,
用户
可以保护其账户的安全性,防止未经授权的访问。
非技术区
1,508
社区成员
11,440
社区内容
发帖
与我相关
我的任务
非技术区
Windows专区 非技术区
复制链接
扫一扫
分享
社区描述
Windows专区 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章