Chinaunix首页 | 论坛 | 博客
  • 博客访问: 794823
  • 博文数量: 124
  • 博客积分: 1927
  • 博客等级: 上尉
  • 技术积分: 932
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-31 14:06
文章分类

全部博文(124)

文章存档

2018年(5)

2017年(2)

2016年(6)

2015年(4)

2014年(24)

2013年(7)

2012年(11)

2011年(13)

2010年(52)

我的朋友

分类: LINUX

2014-06-10 17:00:24

Um.c(用户管理)

umconfig.txt

----------------------------------------

TABLE=

ROW=0

name=admin

password=Uz

group=Administrator

prot=1

disable=0

 

 

 

TABLE=groups

ROW=0

name=Administrator

priv=4

method=3

prot=1

disable=0

 

 

 

TABLE=access

ROW=0

name=/main.html

method=3

secure=0

group=Administrator

-------------------------------------

 

GoAhead提供了认证功能:主要是两种认证基本认证和摘要认证。摘要认证比基本认证更安全些,所以选择摘要认证。

认证功能其实是用户管理功能的一部分。要配置认证功能,需要修改umconfig.txt文件,GoAhead在启动时会读取该文件,实现认证功能。

文件大概情况如下:

TABLE=users/*用户配置*/

ROW=0

name=raise/*用户名*/

/*密码,加密的*/

group=RS/*用户所属的组*/

prot=1/*1表示这个用户受保护不能被删除,0表示可以删除*/

disable=0/*0为使能*/

 

TABLE=groups/*组配置*/

ROW=0

name=RS/*组名*/

priv=4/*用户组的访问权限,可以是0124分别代表AM_NONE,.这之间没有权限大小之分*/

method=3/*密码认证方法,可以是01230什么你都没权访问,1什么你都有权限。2密码与用户名简单加密传输(基本认证),3密码和用户名经过更安全的加密(摘要认证)

      AM_NONE = 0,

      AM_FULL,

      AM_BASIC,

      AM_DIGEST,

      AM_INVALID

} accessMeth_t;

*/

prot=1/*1表示这个用户受保护不能被删除,0表示可以删除*/

disable=0/*0为使能*/

 

 

TABLE=access/*访问控制*/

ROW=0

name=/     /*要访问index.htm,需要输入用户名、密码*/

method=3/*摘要认证*/

secure=0/*页面传输时,是否要加密,0为不加密,如果不使用SSL,这项是忽略的*/

group=RS/*可访问该文件的组*/

 

 

 

int umOpen()

功能:在数据库中注册UM

说明:

1.       如果didUM== -1,注册数据库,包括三个表:用户表、用户组表、访问控制表

2.       如果saveFilename == NULL,分配一段内存,内存中存放文件名umconfig.txt

-----------------------------------------------------------------------------------------------------------------

void umClose()

功能:释放数据库中的UM

说明:

 

int    umCommit(char_t *filename)

保存到文件中

说明:

-----------------------------------------------------------------------------------------------------------------

int umRestore(char_t *filename)

存放到数据库中

说明:

-----------------------------------------------------------------------------------------------------------------

static int umEncryptString(char_t *textString)

功能:将字符串进行简单加密

说明:

-----------------------------------------------------------------------------------------------------------------

static char_t *umGetFirstRowData(char_t *tableName, char_t *columnName)

功能:获得table名字为tableName,列名为columnName的数据

说明:例如,前面的umconfig.txt, =Uz的获得就是tableName= userscolumnName= password

-----------------------------------------------------------------------------------------------------------------

static char_t *umGetNextRowData(char_t *tableName, char_t *columnName,

                                                        char_t *keyLast)

功能:获得指定的table项的下一项。

说明:

-----------------------------------------------------------------------------------------------------------------

 

int    umAddUser(char_t *user, char_t *pass, char_t *group,

                       bool_t prot, bool_t disabled)

功能:向用户table中添加一个用户。

说明:必须确保用户名不重复,用户组是存在的。

-----------------------------------------------------------------------------------------------------------------

int    umDeleteUser(char_t *user)

功能:删除一个用户

说明:

-----------------------------------------------------------------------------------------------------------------

char_t *umGetFirstUser()

功能:获得第一个用户名

说明:

-----------------------------------------------------------------------------------------------------------------

char_t *umGetNextUser(char_t *userLast)

功能:获得下一个用户名

说明:

-----------------------------------------------------------------------------------------------------------------

bool_t umUserExists(char_t *user)

功能:判断指定用户是否存在

说明:

-----------------------------------------------------------------------------------------------------------------

char_t *umGetUserPassword(char_t *user)

功能:

说明:

-----------------------------------------------------------------------------------------------------------------

int    umSetUserPassword(char_t *user, char_t *pass)

功能:设置用户的密码

说明:

-----------------------------------------------------------------------------------------------------------------

char_t *umGetUserGroup(char_t *user)

功能:获得该用户所在的用户组

说明:

-----------------------------------------------------------------------------------------------------------------

int    umSetUserGroup(char_t *user, char_t *group)

功能:设置这个用户的用户组

说明:

-----------------------------------------------------------------------------------------------------------------

bool_t     umGetUserEnabled(char_t *user)

功能:该用是否使能

说明:

-----------------------------------------------------------------------------------------------------------------

int    umSetUserEnabled(char_t *user, bool_t enabled)

功能:设置该用户使能

说明:

-----------------------------------------------------------------------------------------------------------------

bool_t umGetUserProtected(char_t *user)

功能:该用户是否被保护,不能删除

说明:

-----------------------------------------------------------------------------------------------------------------

int    umSetUserProtected(char_t *user, bool_t protect)

功能:设置该用户被保护

说明:

-----------------------------------------------------------------------------------------------------------------

int    umAddGroup(char_t *group, short priv, accessMeth_t am,

                        bool_t prot, bool_t disabled)

功能:添加一个组table

说明:

-----------------------------------------------------------------------------------------------------------------

int    umDeleteGroup(char_t *group)

功能:删除一个组

说明:

-----------------------------------------------------------------------------------------------------------------

bool_t umGroupExists(char_t *group)

功能:该组是否存在

说明:

-----------------------------------------------------------------------------------------------------------------

bool_t umGetGroupInUse(char_t *group)

功能:该用户是否使能

说明:

-----------------------------------------------------------------------------------------------------------------

char_t *umGetFirstGroup()

功能:获得第一个用户组

说明:

-----------------------------------------------------------------------------------------------------------------

char_t *umGetNextGroup(char_t *groupLast)

功能:获得下一个用户组

说明:

-----------------------------------------------------------------------------------------------------------------

accessMeth_t umGetGroupAccessMethod(char_t *group)

功能:获得用户组的方法

说明:

-----------------------------------------------------------------------------------------------------------------

int    umSetGroupAccessMethod(char_t *group, accessMeth_t am)

功能:设置用户组的方法

说明:

-----------------------------------------------------------------------------------------------------------------

short umGetGroupPrivilege(char_t *group)

功能:获得用户组的访问权限   

说明:

-----------------------------------------------------------------------------------------------------------------

int    umSetGroupPrivilege(char_t *group, short privilege)

功能:设置用户组的访问权限

说明:

-----------------------------------------------------------------------------------------------------------------

bool_t umGetGroupEnabled(char_t *group)

功能:获得用户组是否使能

说明:

-----------------------------------------------------------------------------------------------------------------

int umSetGroupEnabled(char_t *group, bool_t enabled)

功能:设置用户组使能

说明:

-----------------------------------------------------------------------------------------------------------------

bool_t umGetGroupProtected(char_t *group)

功能:获得用户组是否被保护

说明:

-----------------------------------------------------------------------------------------------------------------

int    umSetGroupProtected(char_t *group, bool_t protect)

功能:设置用户组被保护

说明:

-----------------------------------------------------------------------------------------------------------------

int    umAddAccessLimit(char_t *url, accessMeth_t am, short secure, char_t *group)

功能:添加访问限制,能访问哪个目录或文件

说明:

-----------------------------------------------------------------------------------------------------------------

int    umDeleteAccessLimit(char_t *url)

功能:删除访问限制

说明:

-----------------------------------------------------------------------------------------------------------------

char_t *umGetFirstAccessLimit()

功能:获得第一个用户的访问限制路径

说明:

-----------------------------------------------------------------------------------------------------------------

char_t *umGetNextAccessLimit(char_t *urlLast)

功能:获得指定访问限制路径的下一个访问限制路径

说明:

-----------------------------------------------------------------------------------------------------------------

bool_t     umAccessLimitExists(char_t *url)

功能:这个访问限制路径是否存在

说明:

-----------------------------------------------------------------------------------------------------------------

accessMeth_t umGetAccessLimitMethod(char_t *url)

功能:获得这个路径的访问方法

说明:typedef enum {

      AM_NONE = 0,

      AM_FULL,

      AM_BASIC,

      AM_DIGEST,

      AM_INVALID

} accessMeth_t;

 

-----------------------------------------------------------------------------------------------------------------

int    umSetAccessLimitMethod(char_t *url, accessMeth_t am)

功能:设置这个访问路径的方法

说明:

-----------------------------------------------------------------------------------------------------------------

short umGetAccessLimitSecure(char_t *url)

功能:获得这个访问路径的安全设置

说明:加密还是不加密

-----------------------------------------------------------------------------------------------------------------

int    umSetAccessLimitSecure(char_t *url, short secure)

功能:设置访问路径的安全标志

说明:

-----------------------------------------------------------------------------------------------------------------

char_t *umGetAccessLimitGroup(char_t *url)

功能:获得这个访问路径的组

说明:

-----------------------------------------------------------------------------------------------------------------

int    umSetAccessLimitGroup(char_t *url, char_t *group)

功能:设置访问路径的组

说明:

-----------------------------------------------------------------------------------------------------------------

char_t *umGetAccessLimit(char_t *url)

功能:获得给定路径的所在的访问限制路径

说明:

-----------------------------------------------------------------------------------------------------------------

accessMeth_t umGetAccessMethodForURL(char_t *url)

功能:获得给定路径的所在的访问限制方法

说明:

-----------------------------------------------------------------------------------------------------------------

bool_t umUserCanAccessURL(char_t *user, char_t *url)

功能:判断这个路径用户是否能够访问

说明:1.用户要在

2.用户要能

3.用户组的权限要足够大,AM_READ,AM_WRITE,AM_ADMIN都可

4.用户组要使能

5.用户组访问限制的方法必须是AM_FULL AM_BASICAM_DIGEST之一

6.在判断url是否属于访问限制路径,如果是,获得这个路径的访问方法和组,然后这个访问方法不能是AM_NONE,组必须和user的组一样。

 

-----------------------------------------------------------------------------------------------------------------

static bool_t umCheckName(char_t *name)

功能:检查字符串是否是有效的

说明:

-----------------------------------------------------------------------------------------------------------------

阅读(803) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~