您的位置:首页 > 运维架构 > Linux

linux基础-实用用户管理详解

2014-10-30 20:22 162 查看
让我们通过实例的方式,来了解Linux的用户管理命令以及相关的几个文件。本文注重实用与理解,不会介绍所有的命令选项。

1.
useradd新建一个用户

假设我们要增加的用户名为lxjtest,这需要我们以root用户登录,使用useradd命令。

格式:useradd [-g group][-d home][-s shell]…用户名

所有参数:

-c:加上备注文 字,备注文字保存在passwd的备注栏中。

-d:指定用户登入时的启始目录。

-D:变更预设值。

-e:指定账号的有效期限,缺省表示永久有效。

-f:指定在密码过期后多少天即关闭该账号。

-g:指定用户所属的群组。

-G:指定用户所属的附加群组。

-m:自动建立用户的登入目录。

-M:不要自动建立用户的登入目录。

-n:取消建立以用户名称为名的群组。

-r:建立系统账号。

-s:指定用户登入后所使用的shell。

-u:指定用户ID号。
其实,我们可以很简单的这样用:useradd lxjtest,同样可以创建lxjtest用户,默认用户组为lxjtest,默认用户根目录为/home/lxjtest(lxjtest是需要我们手工建立的),使用的shell默认为/bin/bash。

2. 系统做了什么?

执行useradd lxjtest后,系统做了什么呢,系统把账户信息存放于/etc/passwd , 把分组信息存入于/etc/group,把密码存放于/etc/shadow。打开/etc/passwd 看看,为了便于对比,有时我会把原有的一个用户linxiaojia也截图出来:

/etc/passwd:





lxjtest用户号为1001,组号为1001(对应group文件),用户根目录为/home/lxjtest,因为我们创建时没指定shell,最后一栏为空, 但默认都是bash了。看着不爽的话可以通过usermod
-s /bin/bash lxjtest 修改。

/etc/group:





默认建立的lxjtest组,组号为1001。

/etc/shadow:





先看第一个冒号后面是用户的加密过的密码,我们没为lxjtest指定密码,密码栏是个“!”号,表示只允许root登录(root不用输入密码)。

3.
passwd为用户创建密码

passwd lxjtest(回车)

再看看那几个文件,看有什么不同,这里就不列了。

4.
usermod修改用户信息

格式:usermod [-g group][-d home][-s shell]…用户名

参数:

-c<备注>  修改用户帐号的备注文字。

-d登入目录>  修改用户登入时的目录。

-e<有效期限>  修改帐号的有效期限。

-f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。

-g<群组>  修改用户所属的群组。

-G<群组>  修改用户所属的附加群组。

-l<帐号名称>  修改用户帐号名称。

-L  锁定用户密码,使密码无效。

-s<shell>  修改用户登入后所使用的shell。

-u<uid>  修改用户ID。

-U  解除密码锁定。
我们来修改lxjtest的用户组

基础组修改:usermod
-g linxiaojia(组名) lxjtest (用户名)

登录lxjtest执行id查看用户的信息。





可以看到原来属于lxjtest组,现在变成linxiaojia组。

附属组修改:usermod
-G lxjtest(组名) lxjtest(用户名)





用groups命令查看当前用户所加入的组:





5.
/etc/passwd文件





对应的各项解释:

用户名:密码:UID:GID:用户全名:主目录:登录shell

密码:passwd全部用x表示,实际密码存在/etc/shadow中,是加密过的的串密文,如果是“!”说明此用户不能用密码登录

UID:就是用户识别码(ID),当UID为0时说明其账号是管理员身份

GID:与/etc/group文件有关,就是用户初始化组的ID。不同的用户可以属于同一个用户组,享有该用户组共有的权限

用户全名:用户全名,通过useradd/usermod -c 指定

家目录:也叫用户根目录,就是该用户的主目录

Shell:SHELL脚本

注:passwd文件里还有一些账号有着特殊的用途,如bin、daemon、adm、nobody等等,它们在shadow中的口令大部分用(*)号表示,代表他们不能在都能录时使用。

6.
/etc/shadow文件





为了增强系统的安全性,Linux系统还可以为用户提供MD5和Shadow安全密码服务。如果在安装 Linux 时在相关配置的选项上选中了MD5和Shadow服务,那么将看到的/etc/passwd文件里的passwd项上无论是什么用户,都是一个“x”;系统其实是把真正的密码数据放在了/etc/shadow文件里。

与passwd文件格式类似,shadow文件由多条记录组成,每条记录占一行,记录一个用户账号的密钥信息。每行记录由9个字段组成,字段间用冒号‘:’隔开,各个字段用途如下:

账号名称:

第一个字段是账号,必须与/etc/passwd相同。

密码:

这个字段才是真正的密码,该密码经过编码。假如此字段为空,则表示该账号不需要密码就可以登录。如果密码栏的第一个字符为‘*’或者是‘!’,表示这个账号不能用来登录。可以使用这个方法来开启或关闭一个账户的登录权限。

最近更改密码的日期:

这个字段记录了‘更改密码那一天’的日期。该字段使用 1970 年以来的总日数设定。

密码不可被更改的天数:

第四个字段记录了这个账号的密码需要经过多少天才允许被更改,如果是0,则表示密码可随时改动。

密码需要重新更改的天数:

该字段表示拥护必须在这个时间内重新设置密码,否者这个账号将暂时失效。如果该字段的值为99999,表示没有要求用户指定天数内重新更改密码。

密码需要更改期限前的警告期限:

当账号的密码失效期快到的时候,就是上面‘必须变更密码’的那个时间,系统会根据这个字段的设定,发出‘警告’信息,提醒用户再过n天后密码失效。

密码过期的恕限时间:

如果用户过了警告期限仍没有重新设定密码,致密码失效,仍可以使用这个失效密码在n天内登录系统。若再这个期间仍没更改密码,则账号失效。

账号失效日期:

这个账号在此字段规定的日期之后,将无法再使用。该字段与第3个字段一样,使用 1970年以来的总日数设定。

保留:

最后一个字段是保留的,看以后有没有新功能加入。

7.
/etc/group文件





/etc/group文件保存了系统中所有组的名称,以及每个组中的成员列表。文件中每一行表示一个组,由3个冒号分隔开的字段组成。如:

Group_name:Password:Group_ID:User_list

以下是这4个字段的含义:

Group_name: 用户组名称

Password:用户组密码,和passwd文件一样,如果口令字段为x的话,表示有一个/etc/gshadow用于存放组口令。但一般来说,组口令很少用到,因此不必太在意这个字段。即使该字段为空,也不需要担心安全问题。

Group_ID:用户组ID,简称GID。GID用于标识一个组,和UID一样,应保证GID的唯一性。

User_list:用户组列表,每个用户用逗号‘,’分隔。本字段可以为空,如果字段为空表示用户组为GID的用户名。如果一个用户属于/etc/passwd中所指定的某个组,但没有出现在/etc/group文件相应的组中,那么应该以/etc/passwd文件中的设置为准

我的博客 http://www.linxiaojia.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: