日期:2014-05-16  浏览次数:20719 次

《转》linux用户与组管理

创建组:
? $sudo addgroup ccache

创建用户:
??
$sudo useradd ccache -g ccache -M

创新wfz用户并创建HOME目录,指定用户组为ccache

? $sudo useradd wfz -g ccache -m

增加已存在用户到指定组
? $sudo adduser $USER ccache

? $sudo adduser dbh ccache
? $sudo adduser paul ccache
? $sudo adduser wfz ccache

显示用户ID及组信息:
? ~$ id
??? uid=1001(dbh) gid=1001(dbh) groups=115(admin),1001(dbh)
? $ cat /etc/group
????? ccache:x:1002:dbh,paul,wfz

1.?用户和用户组的管理:

?? Linux的多用户概念是指多个用户同时可以使用这个系统。

(1)用户帐号文件——passwd

???? Passwd是一个文本文件(每一行标识1个用户),定义了系统的用户帐号,该文件位于“/etc”目录下。文件中包含了一个系统帐户列表,存放了每个账户一些有用的信息,如用户ID,组ID,主目录,shell等等(用“:”分隔开来)。只定义了用户帐号,而不保存口令(用“x”表示,如果没有 sun::则表示没有密码)。真正的密码存放在Shadow文件中,普通用户根本不能读,加密后的密文无法读到就可以提高用户帐号的安全性。

例如:

[root@sun root]# head /etc/passwd?

root:x:0:0:root:/root:/bin/bash?? 表示有7个字段:登录名:有无口令:用户ID:组ID:账户备注信息:用户Home目录:登录时用户shell的名称(超级用户有权限修改)

?

(2)用户口令文件——shadow

每行定义了一个用户信息,行中各字段用:分开,为进一步提高安全性,口令文件存放用户已经加密的口令:*,特殊符号

[root@sun root]# head /etc/shadow

登录名:加密的口令(用*或其他特殊字符表示):上次更改口令距离1970.1.1的天数:口令更改后不可更改的天数:口令更改后必须再更改的天数(有效期):口令失效前警告用户的天数:口令失效后距帐号被查封的天数:帐号被封时距1970.1.1的天数:保留未用。

?

(3)用户组帐号文件——group

用户组:逻辑的组织用户帐号的集合的方式,用户允许在其组内共享文件,系统每个文件都有一个用户和附属的用户组。使用“ls -l”命令可以查看每个文件的属性和组。

[root@sun root]# head /etc/group

root:x:0:root,tom,mary? (组名:组加密口令:GID:组成员列表(用,隔开的每个组用户名))

?

(4)用户组口令文件——gshadow

用于定义用户组口令,用户组管理员信息。该文件只有超级用户root才可以读取

每行记录信息:

[root@sun root]# head /etc/gshadow

用户组:用户组加密口令:组管理员帐号(管理员有权进行增删帐号):组成员列表

?

?

2. 用户和用户组账户维护的命令:

(1)增加用户账户:useradd 用户名

useradd –g 组名 用户名 指定该用户所使用的私有组名,默认是与用户帐号同名的私有组。

useradd –D [-g group][-b base][-s shell][-f inactive][-e expire] 用于显示和设置useradd该命令所使用的默认值。

例如:#useradd ?sun? //建立用户帐号 ?

????? #tail -l ?/etc/passwd? //查询passwd中添加的用户账户的信息

????? #tail –l ?/etc/shadow?

????? #ls /home? ?//查看所建立帐号的主目录

?

(2)修改用户帐号属性:usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G<群组>][-l<帐号名称>][-s][-u][用户帐号]

?

(3)删除用户帐号:userdel [-r][用户帐号] //如果不加参数则只删除用户帐号,不删除文件,否则两者都删除。

userdel [-r][用户帐号]? //-r用来删除帐号登入目录和目录中所有文件

举例:#grep sun /etc/passwd???? //查询用户帐号sun是否存在

#userdel sun??? //删除用户帐号sun

#grep sun /etc/passwd??? //再次查询用户帐号sun是否存在

#ll –d /home ???//查询用户sun主目录是否存在

#userdel –r sun?? //删除用户的同时,删除其工作主目录

?

(4)?增加用户组帐号:groupadd [-r][组帐号]

【注意】帐号ID唯一,数值不可为负,预设最小值不得小于500,且每增加一个,组帐号ID逐次自增1。其中-r参数是用来建立系统帐号的。0~499是给系统帐号准备的。

?

举例:#groupadd magicSun? //建立组账户magicSun

#grep magicSun /etc/group?? //查询group文件中magicSun组账户是否建立

#groupadd –r sysWang? //建立系统组账户sysWang

#grep sysWang /etc/group? //查询group文件中sysWang系统组账户是否建立

?

(5)修改组帐号:groupmod [-g <群组识别码GID>]<-o>[-n<新群组名称>][群组名称]

其中-o表示重复使用群组识别码

?

(6)删除组帐号:groupdel [群组名称]