函数说明——getopt():
函数说明 getopt()用来分析命令行参数。参数argc和argv分别代表参数个数和内容,跟main()函数的命令行参数是一样的。
optstring中的指定的内容的意义(例如getopt(argc, argv, "ab:c:de::");)
1.单个字符,表示选项(如下例中的abcde各为一个选项)。
2.单个字符后接一个冒号:表示该选项后必须跟一个参数。参数紧跟在选项后或者以空格隔开。该参数的指针赋给optarg(如下例中的b:c:)。
3 单个字符后跟两个冒号,表示该选项后可以跟一个参数,也可以不跟。如果跟一个参数,参数必须紧跟在选项后不能以空格隔开。该参数的指针赋给optarg。(如上例中的e::,如果没有跟参数,则optarg = NULL)
数据库内定义的表,以及每个表的字段:
表内字段的截图:
命令行操作样式-h打印信息:
[root@localhost workwork]# ./userGroupUser users -h
Usage:
-----------------------------------------
-S show , show user information!
-A add , add user information!
-D delete , delete user information!
-E edit , edit user information!
-h help , display this help note!
-n name , user`s name!
-p password , user`s password!
-a authentication , authentication type(0:pass 1:KEY 2:third)!
-g(+) group , the group to which the user belongs to!
-e(+) enable , usergroups`s enable type(0:enable 1:disable)!
-o(+) policy , usergroups`s policy type!
-r(+) remark , remark!
可以进行的操作:
显示操作: -S
//-S显示名为xxx用户具体信息(所在组、改组定义了什么策略) 提示必须加-n参数
./userGroupUser users -S //显示用户表 用户组表 所有信息
./userGroupUser users -S -n root //显示用户表内 name=root的用户的信息
//可以显示该用户对应用户组内 所在的组 定义的策略信息
[root@localhost workwork]# ./userGroupUser users -S
[root@localhost workwork]# ./userGroupUser users -S -n root
新增操作: -A
/* 全:./userGroupUser users -A s -n test3 -p test3 -a 2 -groot -rasdc*/
/**添加用户 (-g(+) group ; -r(+) remark)**/
//新增用户的时候必须有-n|-p|-a选项 name password authentication
//一次性输入所有选项也是错误的 需要为每个参数赋值
// printf("ADD -- Please enter necessary parameters -n|-p|-a,and assign a value to each parameter!\n");
//-g的参数必须紧跟 否则改用户会默认加入root组;
//-r的参数必须紧跟 否则判定为输入为空
//当-g选项没有加参数时候 默认该用户属于root组;
//-g后的参数不存在则加入失败,提示该用户组不存在
./userGroupUser users -A -n ddf -p aa -a 1//添加用户 name=ddf authentication=1 默认加到用户组root
//insert into users values(7,'ddf','aa','2018-7-2 16:23:39',1,1,' ','KEY认证需要的文件','');
./userGroupUser users -A -n dds -a 1 -p sd -rkj -gaa //添加用户 name=dds authentication=1 group=aa
//insert into users values(6,'dds','sd','2018-7-2 16:20:33',1,1,' ','KEY认证需要的文件','kj');
//-g后的参数 用户组名不存在不允许加入users usergroups表
/**添加用户组 (-e(+) enable; -o(+) policy; -r(+) remark)**/
/*全: ./userGroupUser usergroups -A -n dd -e1 -oWEB,HTTP -rddWH*/
//新增用户时候有必须参数-n选项 name
//只有-n参数时候 策略状态( enable_type_)为0 默认策略( policy_type_)为所有策略资源
//其他参数 -e(+) 策略状态enable; -o(+)策略类型policy; -r(+) 标记内容remark
./userGroupUser usergroups -A //提示 Please enter other parameters when you want to add someone!!
./userGroupUser usergroups -A -n aa //用户组表中添加name=aa policy默认如下 remark默认为空 的用户组信息
//insert into usergroups values(2,'aa','2018-7-2 16:14:19',0,'GET,HEAD,POST,PUT,DELETE,OPTIONS','')
./userGroupUser usergroups -A -n aa -oGET -rasd //向用户组中添加 name=aa policy=GET remark=asd的用户
//insert into usergroups values(2,'aa','2018-7-2 16:14:46',0,'GET','asd');
# ./userGroupUser usergroups -A -n dd -e1 -oWEB,HTTP -rusername-name-dd
# ./userGroupUser users -A s -n test3 -p test3 -a 2 -gdd -ras
修改操作: -E
/**修改用户**/
/*全:./userGroupUser users -E -n test33 -p test33 -a 1 -gaa -rtest3totest33 where name test3 password test3*/
//修改用户操作必须有where name password 字符;且where后个数需为偶数; name password参数需参数值
//判断要进行改的用户是不是管理员用户,禁止对管理员用户进行任何操作
//参数 :-n newname;-p newpassword;-a authentication; -ggroup; -rremark;
./userGroupUser users -E -n test22 where name test2 password test2 //把名为test2密码为test2的用户名改为test22
/**修改用户组**/
/*全:./userGroupUser usergroups -E -n aaa -e1 -oGET,HEAD -raatoaaa where name aa*/
//修改用户组操作必须有where name字符;且where后个数需为偶数; name 参数需参数值
//判断要进行改的用户是不是管理员用户,禁止对管理员用户进行任何操作
//参数 : -n newname;-eenabled ; -opolicy; -rremark;
./userGroupUser usergroups -E -n AA where name aa//把aa用户名改为AA
./userGroupUser usergroups -E -n csa -e1 -oAAA,WEB,HTTP -rAAA where name aaa
//修改 用户组name为aaa为 name=csa enable=1 policy=AAA,WEB,HTTP remark=AAA
# ./userGroupUser users -E -n test34 -p test33 -a 0 -groot -rtest3totest34 where name test3 password test3
# ./userGroupUser usergroups -E -n ddd -e0 -oGET,HEAD -rddtoddd where name dd
删除操作: -D
./userGroupUser users -D // 提示 Please enter other parameters when you want to add someone!!
./userGroupUser users -D -n root -p r //root用户不允许删除
//name或passwd 不正确不允许删除
./userGroupUser usergroups -D //提示 Please enter other parameters when you want to add someone!!
./userGroupUser usergroups -D -n as//判断是否有用户属