- 论坛徽章:
- 0
|
怎样用非交互方式改变登录用户密码??
使用如下的.c编译生成mypass可以代替passwd命令,配合awk之类工具,把它生成的结果写到shadow里(有的系统是是在passwd里),便可以了。
两位的salt可以随便生成。
#include <stdio.h>
#include <string.h>
main(argc,argv)
int argc;
char *argv[];
{
char line[512],salt[3];
int i,l;
salt[2]='\0';
if(argc == 1) /* No parameters there read from standard input */
{
while(gets(line) != NULL)
{
l=strlen(line);
if(l > 2)
{
salt[0]=line[0];
salt[1]=line[1];
printf("%s\n",crypt(line+2,salt));
}
else
fprintf(stderr,"Too short [%i] \"%s\"\n",l,line);
}
}
else
{
for(i=1;i<argc;i++)
{
l=strlen(argv);
if(l > 2)
{
salt[0]=argv[0];
salt[1]=argv[1];
printf("%s\n",crypt(argv+2,salt));
}
else
fprintf(stderr,"Too short [%i] \"%s\"\n",l,argv);
}
}
}
也有相应的perl程序。 |
|