您的位置:首页 > 其它

cabbage liunx学习之路之用户与用户组管理篇

2011-04-20 20:55 162 查看
什么是用户?
什么是组?
用户基本组,附加组

在Linux中,用户的相关信息保存在对应的文件中,这些文件分别是:/etc/passwd和/etc/shadow。
/etc/passwd
系统的每一个合法用户帐号都对应于该文件中的一行记录。每行记录定义了一个用户帐号的属性。可以用#cat /etc/passwd或者#vim /etc/passwd打开查看。
passwd文件中每行对应一个帐号,每个帐号由7部分组成,各部分之间用“:”分隔。分别代表
用户名:用户密码(用x密码占位符表示):UID(用户标识号):GID(用户基本组标识号):备注(用户全名及用户信息):用户家目录:默认使用的shell(命令解释程序)
/etc/shadow
Linux将用户的口令(密码)保存在shadow文件中,该文件不能被普通用户读取,只有root用户才有权利读取。shadow文件与passwd文件一样,
每个用户对应其中的一行,并且用8个冒号分成了9个部分(称为“域”)。如上图,每段分别表示
1、用户名:与passwd用户名相对应。

2、用户密码:已被加密如果它的开头是“$ 1 $”这意味着基于MD5算法的加密!如果是在密码栏的第一个字符为*或者是!,表示此账号并不会被用来登入,
如果是!!表示帐号被锁定(禁用),如果为空,表示用户不需要密码即可登陆。

3、最近更动密码的日期:这个字段记录了更动密码的那一天的日期。注意:Linux 日期的时间是以1970/01/01作为 1 ,而1971/01/01则为366,所以这
个日期是累加的天数是一个绝对时间!

4、密码不可被更动的天数:如果是0,表示密码随时可以更动。如果在此期间修改系统会提示:You must wait longer to change your password
passwd: Authentication token manipulation error

5、密码必须在限制的天数内修改的天数:必须要在这个时间之内重新设定的密码,否则这个账号将会暂时失效。而99999,表示密码不需要重新输入!

6、密码需要修改期限前的警告期限:当账号的密码失效期限快要到的时候,系统会依据这个字段的设定,发出警告(Warning: your password will
expire in 5 days)给这个账号,提醒再过n天密码就要失效了。。。

7、密码过期的宽限时间:当密码失效后,还可以用这个密码在n天内进行登入。 而在这个天数后还没有修改密码,账号就绝对失效了!

8、账号失效日期:也是用1970 年以来的总天数设定。账号在此规定的日期之后,将无法再使用。通常应用在收费服务的系统中,可以规定一个日期让
该账号不能再使用!
9、保留:最后一个字段是保留的,看以后有没有新功能加入

用户组的信息保存在/etc/group和/etc/gshadow文件下

/etc/group
该文件记录了系统中所有用户组的信息,分为四段,各段含义如下:

1、 用户组名称:就是组的名字

2、 用户组密码:通常不需要设置,如果需要不一个用户临时加入其他组可能要用到。密码记录在/etc/gshadow中。

3、 GID:用户组标识。

4、 用户列表:以该组为附加组的所有帐号(如果该组是某用户的基本组则该用户不再此段列出),每个用户用“,”隔开。

/etc/gshadow

与/etc/group类似,也分为四个段,各段含义如下:

1、 用户组名称

2、 密码栏:同样的,开头为!表示无法登陆

3、 用户管理员帐号:

4、 该用户组的所属帐号:与/etc/group内容相同。

帐号管理常用命令

1、 新增用户命令:useradd

语法:useradd[-c][-d][-e][-f][-g][-G group[,...]][-m[-k skeleton_dir]/-M]

[-s][-u[-o][-n][-r] username
选项:-c【comment】新帐号说明栏,对应于/etc/passwd第五栏的内容。
-d【home_dir】设定用户的家目录,不设定时使用预设值。
-e【expire_date】帐号终止日期,日期的指定格式为MM/DD/YY。

-f【inactive_days】帐号过期几日后永久停权。当值为0时帐号则立刻被停权。而当值为-1则关闭此功能。预设值为-1.

-g【initial_group】设置用户所属的组。

-G【group,[...]】设置用户的附加组。

-m

-M 不建立使用者目录。

-n

-r 建立系统帐号。

-s 【shell】使用者登录后使用的shell

-u uid用户ID 值。
2、添加密码命令:passwd
格式:passwd username
选项:

注释:使用useradd建立帐号之后,默认情况,该帐号暂时被封锁,需要给他设置密码才能启用。passwd常用的方式用两种,
一种是root用户帮其他用户设置或改密码,命令格式#passwd otherusername root可以不用知道该用户的密码。另一种是
用户自己改密码直接passwd 回车即开始更改。
3、修改帐号信息命令:usermod
格式:usermod [-cdegGlsuLu] username
选项:-L 暂时冻结用户密码,让其无法登陆
-U 解冻用户密码。
4、删除用户命令:userdel

语法:#userdel [-r] username

选项: -r : 连同用户的家目录也一起删了,不加则只删除帐号,不删除家目录。

用户组的管理:

1、新增用户组命令:groupadd

语法:#groupadd [-g gid] [-r] groupname

选项:-g :后边接某个特定的GID,用来指定GID

-r :建立系统用户组。

2、修改用户组命令:groupmod

语法:groupmod [-g newgid] [-n newgroup_name] oldgroup_name

选项:-g :修改已有的用户组GID号。

-n :修改已有的用户组名称。

注释:不要随意更改GID,否则容易造成系统资源的混乱。

3、删除用户组命令:groupdel

语法:groupdel [groupname]

注释:要删除一个用户组必须确认没有用户使用该组作为初始用户组。

4、设置用户组密码:gpasswd

语法:#gpasswd [-r] groupname

选项: :如果没有参数,表示给groupname 设置密码。

-r :将groupname的密码删除。

-R :让groupname的密码栏失效,所以newgrp就不能用了。
本文出自 “cabbage” 博客,请务必保留此出处http://cabbage.blog.51cto.com/2128421/550120
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: