c语言中如何添加系统用户

c语言中如何添加系统用户,第1张

给段程序你参考:

#include <windows.h>

#include <lm.h>

BOOL AddMachineAccount(

LPWSTR wTargetComputer,

LPWSTR MachineAccount,

DWORD AccountType

)

{

LPWSTR wAccount

LPWSTR wPassword

USER_INFO_1 ui

DWORD cbAccount

DWORD cbLength

DWORD dwError

//

// Ensure a valid computer account type was passed.

//

if (AccountType != UF_WORKSTATION_TRUST_ACCOUNT &&

AccountType != UF_SERVER_TRUST_ACCOUNT &&

AccountType != UF_INTERDOMAIN_TRUST_ACCOUNT

)

{

SetLastError(ERROR_INVALID_PARAMETER)

return FALSE

}

//

// Obtain number of chars in computer account name.

//

cbLength = cbAccount = lstrlenW(MachineAccount)

//

// Ensure computer name doesn't exceed maximum length.

//

if(cbLength >MAX_COMPUTERNAME_LENGTH) {

SetLastError(ERROR_INVALID_ACCOUNT_NAME)

return FALSE

}

//

// Allocate storage to contain Unicode representation of

// computer account name + trailing $ + NULL.

//

wAccount=(LPWSTR)HeapAlloc(GetProcessHeap(), 0,

(cbAccount + 1 + 1) * sizeof(WCHAR) // Account + '$' + NULL

)

if(wAccount == NULL) return FALSE

//

// Password is the computer account name converted to lowercase

// you will convert the passed MachineAccount in place.

//

wPassword = MachineAccount

//

// Copy MachineAccount to the wAccount buffer allocated while

// converting computer account name to uppercase.

// Convert password (in place) to lowercase.

//

while(cbAccount--) {

wAccount[cbAccount] = towupper( MachineAccount[cbAccount] )

wPassword[cbAccount] = towlower( wPassword[cbAccount] )

}

//

// Computer account names have a trailing Unicode '$'.

//

wAccount[cbLength] = L'$'

wAccount[cbLength + 1] = L'\0'// terminate the string

//

// If the password is greater than the max allowed, truncate.

//

if(cbLength >LM20_PWLEN) wPassword[LM20_PWLEN] = L'\0'

//

// Initialize the USER_INFO_1 structure.

//

ZeroMemory(&ui, sizeof(ui))

ui.usri1_name = wAccount

ui.usri1_password = wPassword

ui.usri1_flags = AccountType | UF_SCRIPT

ui.usri1_priv = USER_PRIV_USER

dwError=NetUserAdd(

wTargetComputer,// target computer name

1, // info level

(LPBYTE) &ui, // buffer

NULL

)

//

// Free allocated memory.

//

if(wAccount) HeapFree(GetProcessHeap(), 0, wAccount)

//

// Indicate whether the function was successful.

//

if(dwError == NO_ERROR)

return TRUE

else {

SetLastError(dwError)

return FALSE

}

}

1、用VisualStudio2010旗舰版,它是专为Win7打造的,其他的版本也可以兼容,而且支持VC/VB/C#多种语言开发,安装下来才2G多,是一款相当不错的开发软件。2、用开发版的比较好,学习版的有些功能减掉了。3、eclipseCDT也可以。纯绿色软件,解压缩就能用。完美支持win7。4、学一门语言最好的方式就是记事本+编译器。什么东西都要自己手写。这样映像才深。学的才透。5、VisualStudio(VS)是一套完整的开发工具集,用于生成ASP.NETWeb应用程序、XMLWebServices、桌面应用程序和移动应用程序。VisualBasic、VisualC++、VisualC#和VisualJ#全都使用相同的集成开发环境(IDE),利用此IDE可以共享工具且有助于创建混合语言解决方案。另外,这些语言利用了.NETFramework的功能,通过此框架可使用简化ASPWeb应用程序和XMLWebServices开发的关键技术。

1.作用

useradd或adduser命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户。

2.格式

3.主要参数

-c:加上备注文字,备注文字保存在passwd的备注栏中。

-d:指定用户登入时的主目录,替换系统默认值/home/用户名>

-D:变更预设值。

-e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效。

-f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.

-g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users。

-G:指定用户所属的附加群组。

-m:自动建立用户的登入目录。

-M:不要自动建立用户的登入目录。

-n:取消建立以用户名称为名的群组。

-r:建立系统账号。

-s:指定用户登入后所使用�š.shell。默认值为/bin/bash。

-u:指定用户ID号。该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的,所以该值必须大于499。

4.说明

useradd可用来建立用户账号,它和adduser命令是相同的。账号建好之后,再用passwd设定账号的密码。使用useradd命令所建立的账号,实际上是保存在/etc/passwd文本文件中。

5.应用实例

建立一个新用户账户testuser1,并设置UID为544,主目录为/usr/testuser1,属于users组:

加-m 如果主目录不存在则自动创建

6.例如

使用管理员账号登陆系统,建立用户tmp_3452 密码3sdt5:Eawhg

添加用户命令:

修改密码命令:

在系统出现提示输入密码是输入密码:3sdt5:Eawhg 系统提示输入确认密码后再输入一次。OK添加成功。

7.useradd批量添加用户

使用useradd时,如果后面不添加任何参数选项,例如:#sudo useradd test创建出来的用户将是默认“三无”用户:一无Home Directory,二无密码,三无系统Shell。

步骤如下:

(1)建立用户名列表文件username.txt (同上)

(2)创建用户密码对应文件serc.txt,格式为username:password (注意文件的格式)

(3)批量添加的脚本文件aa.sh

新建完成useradd命令,在执行没有出错的情况下,不会输出任何的信息,不会与用户交互。但是用户必须要记住那些设置项目,否则添加的用户可能出现一些预想不到的结果。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11549413.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存