Linux常用命令(五)账号和组管理
一、管理用户账号
1、用户账号的分类
■超级用户:root用户是Linux系统中默认的超级用户账号,对本主机拥有最大的权限,类似于Windows 系统中的Administrator用户。
■普通用户:普通用户账号需要由root用户或其他管理员用户创建;拥有的权限收到一定限制,一般只 在用户自己的宿主目录中拥有完整权限。
■程序用户:在安装linux系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般 不允许登录到系统,而仅用于维持系统或某个程序的正常运行。
2、组账号
基础某种特定联系将多个用户集合在一起,即构成一个用户组,用于表示该组内所有用户的账号称为组账号。每一个用户账号至少属于一个组,这个组称为该用户的基本组(或私有组);若该用户同时还包括在其他的组中,则这些组称为该用户的附加组(或公共组)。
3、UID和GID号
Linux系统中的每一个用户账号都有一个数字形式的身份标记,称为UID,对于系统核心来说,UID作为区分用户的基本依据,每个用户的UID号应该是唯一的。root用户账号的UID号为固定值0,而程序用户账号的UID号默认为1~499,普通用户使用的UID号默认为500~60000。
二、用户账号管理
1、用户账号文件
与用户账号相关的配置文件主要有两个,分别是/etc/passwd、/etc/shadow。
1.1)、passwd文件
passwd文件主要保存用户名称、宿主目录、登录Shell等基本信息。在配置文件中,每一行对应一个用户账号,不用的配置项之间使用冒号“:”进行分隔。
passwd文件的每一行内容中,包含了七个用冒号“:”分隔的配置字段,从左到右各个配置字段的含义分别如下所述。
■第1字段:用户账号的名称,也是登录系统时使用的识别名称。
■第2字段:经过加密的用户密码字串,或者密码占位符“x”。
■第3字段:用户账号的UID号。
■第4字段:所属基本组账号的GID号。
■第5字段:用户全名,可填写与用户相关的说明信息。
■第6字段:宿主目录,即该用户登录后所在的默认工作目录。
■第7字段:登录Shell等信息,用户完成登录后使用的Shell。
所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改。
1.2)、shadow文件中的配置行格式
shadow文件又被称为“影子文件”,其中保存有各用户账号的密码信息,因此对shadow文件的访问应该进行严格限制。默认只有root用户能够读取文件中的内容,而不允许直接编辑该文件中的内容。
■第1字段:用户账号名称
■第2字段:使用MD5加密的密码字符串信息,当为“*”或“!!”时表示此用户不能登录到系统。若 该字段内容为空,则该用户无需密码即可登录系统。
■第3字段:上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码时,间隔的天数。
■第4字段:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认 值为0,表示不进行限制。
■第5字段:密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值 为99999,表示不进行限制。
■第6字段:提前多少天警告用户口令将过期,默认值为7。
■第7字段:密码过期之后多少天内禁用此用户。
■第8字段:账号失效时间,此字段指定了用户作废的天数(从1970年01月01日起计算),默认值为 空,表示账号永久可用。
■第9字段:保留字段,目前没有特定的用途。
2、添加、修改、删除用户账号
2.1)、useradd命令——添加用户账号
useradd [选项] 用户名
使用useradd命令添加用户账号时主要完成以下几项任务。
■ 在/etc/passwd文件和/etc/shadow文件的末尾增加该用户账号的记录。
■ 若未明确指定用户的宿主目录,则在/home目录下自动创建与该用户账号同名的宿主目录,并在该 目录中建立用户的各种初始配置文件。
■ 若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将 保存到/etc/group、/etc/gshadow文件中。
useradd命令中几个常见选项。
■ –u:指定用户的UID号,要求该UID号码未被其他用户使用。
■ –d:指定用户的宿主目录位置(当与-M一起使用时,不生效)。
■ –e:指定用户的账户失效时间,可使用“年-月-日”的日期格式。
■ –g:指定用户的基本组名(或使用GID号)
■ –G:指定用户的附加组名(或使用GID号)
■ –M:不建立宿主目录,即使/etc/login.defs系统配置中已设定要建立宿主目录。
■ –s:指定用户的登录Shell
2.2)、passwd命令——为用户账号设置密码
通过useradd命令新增用户账号以后,还需要为其设置一个密码才能够正常使用。使用passwd命令可以设置或修改密码,root用户有权管理其他账号的密码。例如为zhangsan设置密码,密码要输两遍,第二遍是确认,要和第一遍一样。
这里由于设置的密码为123,所以提示“无效的密码:过短,过于简单”但是没关系,密码已经设置成功了。正常情况密码还是应该设置的复杂一点。
使用passwd命令除了可以修改账号的密码之外,还能够对用户账号进行锁定、解锁,或者也可以将用户的密码设置为空(无需密码即可登录)。常用选项如下:
■ –d:清空指定用户的密码,仅使用用户名即可登录系统。
■ –l:锁定用户账户。
■ –S:查看用户账号的状态(是否被锁定)
■ –u:解锁用户账户。
2.3)、usermod命令——修改用户账号属性
对于系统中已经存在的用户账号,可以使用usermod命令重新设置各种属性。常用参数如下:
■ –u:修改用户的UID号。
■ –d:修改用户的宿主目录位置。
■ –e:修改用户的账户失效时间,格式“年—月—日”
■ –g:修改用户的基本组名(或使用GID号)
■ –G:修改用户的附加组名(或是用GID号)
■ –s:指定用户的登录Shell。
■ –l:更改用户账号的登录名称
■ –L:锁定用户账户。
■ –U:解锁用户账户。
若要修改已有账号的宿主目录,需要先将该账号原有的宿主目录转移到新的位置,然后再通过usermod命令设置新的宿主目录位置。例如,执行以下操作可以将zhangsan用户的宿主目录由/home/zhangsan转移至/zhangsan。
注意:zhangsan账号不能处于登录状态。
2.4)、userdel命令——删除用户账号
格式为
结合“-r”选项可同时删除宿主目录。
3.用户账号的初始配置文件
添加一个新的用户账号后,useradd命令会在该用户的宿主目录中建立一些初始配置文件。这些文件来自于账号模板目录“/etc/skel”,基本上都是影藏文件,较常用的初始配置文件有:
■ .bashrc_profile:文件中的命令将在该用户每次登录时被执行。
■ .bash_logout:文件中的命令将在用户每次退出登陆时执行。
■ .bashrc:文件中的命令会在每次加载“/bin/Bash”程序时(当然也包括登陆系统)执行。
三、组账号管理
1、组账号文件
与组账号相关的配置文件也有两个,分别是“/etc/group”、“/etc/gpasswd”。前者用于保存组账号的名称、GID号、组成员等基本信息,后者用于保存组账号的加密密码字串等信息(很少用)
2、添加、删除、修改组账号
2.1)、groupadd命令——添加组账号
需要指定GID号时,可以使用“-g”选项
2.2)、grpasswd命令——添加、设置、删除组成员
■ –a:添加一个组成员(用户写前边,组写后边)
■ –d:删除组中的某一个成员
■ –M:一次性添加多个用户到一个组里边。
2.3)、groupdel命令——删除组账号
当系统中的某个组账号已经不再使用时,可以使用groupdel命令将该组账号删除。
四、查询账号信息
1、groups命令——查询用户账号所属的组
使用groups命令可以查看指定的用户账号属于那些组。
2、id——查询用户账号的身份标识
使用id命令可以快速查看指定用户账号的UID、GID等标识信息。
3、w命令——查询当前主机的用户登录情况
使用w命令可以查询当前主机中的用户登录情况,列出登录账号名称、所在终端、登录时间、来源地点等信息。
本文出自 “侯良金” 博客,请务必保留此出处http://houliangjin.blog.51cto.com/13112910/1964209
原文地址:http://houliangjin.blog.51cto.com/13112910/1964209