C 如何在Linux中添加用户及其信息

C 如何在Linux中添加用户及其信息,c,linux,shell,command-line,C,Linux,Shell,Command Line,我想创建一个C应用程序,用useradd命令在Linux中添加用户 我在使用it终端打印错误消息时编写此代码: useradd :permission denied useradd :cannot lock/etc/passwd; try again later 这是我添加用户的C代码,比如我想添加user1,只需编写user1 char a[50]; char command[150]; fgets(a,sizeof(a),stdin); strcpy(command,"useradd "

我想创建一个C应用程序,用useradd命令在Linux中添加用户

我在使用it终端打印错误消息时编写此代码:

useradd :permission denied
useradd :cannot lock/etc/passwd; try again later 
这是我添加用户的C代码,比如我想添加user1,只需编写user1

char a[50];
char command[150];
fgets(a,sizeof(a),stdin);
strcpy(command,"useradd ");
strcat(command,a);

如何使用正确的语法或命令解决此问题?

这是因为您需要以root权限运行命令


试试这样的方法,sudo-useradd

如果没有安装sudo包,您可以安装它。或者可以使用su将其创建为根。在您可以使用任何超级用户caommnads之后,它将询问root密码。

您如何调用您的程序?通过sudo?这只是一个许可问题。您是以用户身份启动程序的。用户不能添加其他用户,只有root用户可以。试试sudo myapp,它会让你的应用以root用户身份运行,你就可以添加用户了。@Adam我用gcc编译我的program@user3602366在执行、运行等过程中调用并不重要,为什么不使用shell中的useradd目录呢?为什么要将其包装在C程序中?如何正确使用此命令请为我要添加的用户添加密码首先运行根访问的命令。第二次运行de useradd commandi install sudo软件包,但在使用该软件包时,终端将停止运行您正在使用的发行版。我认为这不是sudo的问题。安装后,您必须修改etc/sudoers中的内容,该内容将处于只读模式。首先更改权限,然后添加一行user ALL=ALL:ALL。user应该是您的系统用户名之后,您必须再次将权限更改为-r-r--然后它将开始工作。