社区
非技术区
帖子详情
如果在Linux下编程修改用户密码?
icuc88
2003-10-18 01:13:47
1. 要使用PAM
2. 不允许交互
3. 用C语言
得分条件:
完全实现述要求。不要给我PAM的例子,网站连接。。。诸如此类,我都有。不要叫我直接修改/etc/passwd文件。
UP更没有分。
...全文
66
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
应用
编程
和网络
编程
实战套餐
《3.
linux
应用
编程
和网络
编程
》总计9个课程(79节、41小时),结构上分为应用
编程
和网络
编程
2部分。本课程主要讲解
linux
的各种API接口及其实践
编程
训练,如文件读写、异步IO、多路复用IO、进程、进程间通信、线程、线程同步、网络基础知识、socket接口等。学完本部分将全面掌握基于
linux
系统的应用层
编程
,并对文件操作完全掌握,从而为继续学习第5部分驱动开发打好坚实基础。
【
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 添加新
用户
,要求
用户
设置
密码
、
【Shell 命令集合 系统设置 】⭐⭐⭐
Linux
更改
用户
密码
passwd命令 使用指南
passwd命令是
Linux
系统中用于更改
用户
密码
的命令。它允许
用户
更改自己的
密码
或超级
用户
更改其他
用户
的
密码
。通过使用passwd命令,
用户
可以保护其账户的安全性,防止未经授权的访问。
非技术区
1,508
社区成员
11,440
社区内容
发帖
与我相关
我的任务
非技术区
Windows专区 非技术区
复制链接
扫一扫
分享
社区描述
Windows专区 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章