Linux常用命令账号和组管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux常用命令账号和组管理相关的知识,希望对你有一定的参考价值。

Linux常用命令(五)账号和组管理

 

一、管理用户账号

 

1、用户账号的分类

超级用户:root用户是Linux系统中默认的超级用户账号,对本主机拥有最大的权限,类似于Windows         系统中的Administrator用户。

普通用户:普通用户账号需要由root用户或其他管理员用户创建;拥有的权限收到一定限制,一般只                        在用户自己的宿主目录中拥有完整权限。

程序用户:在安装linux系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般                        不允许登录到系统,而仅用于维持系统或某个程序的正常运行。

 

2、组账号

基础某种特定联系将多个用户集合在一起,即构成一个用户组,用于表示该组内所有用户的账号称为组账号。每一个用户账号至少属于一个组,这个组称为该用户的基本组(或私有组);若该用户同时还包括在其他的组中,则这些组称为该用户的附加组(或公共组)。

 

3UIDGID

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字段:上次修改密码的时间,表示从19700101日算起到最近一次修改密码时,间隔的天数。

■第4字段:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认                        值为0,表示不进行限制。

■第5字段:密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值                          为99999,表示不进行限制。

■第6字段:提前多少天警告用户口令将过期,默认值为7

■第7字段:密码过期之后多少天内禁用此用户。

■第8字段:账号失效时间,此字段指定了用户作废的天数(从19700101日起计算),默认值为                          空,表示账号永久可用。

■第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命令将该组账号删除。


四、查询账号信息

1groups命令——查询用户账号所属的组

使用groups命令可以查看指定的用户账号属于那些组。

技术分享


2id——查询用户账号的身份标识

使用id命令可以快速查看指定用户账号的UIDGID等标识信息。

技术分享


3w命令——查询当前主机的用户登录情况

使用w命令可以查询当前主机中的用户登录情况,列出登录账号名称、所在终端、登录时间、来源地点等信息。

技术分享

本文出自 “侯良金” 博客,请务必保留此出处http://houliangjin.blog.51cto.com/13112910/1964209

以上是关于Linux常用命令账号和组管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux命令之账户和组的管理

linux-用户和组的管理

Linux命令详解 三

Linux用户权限管理和组管理相关命令

linux系统账号管理与配置!

超级用户和组管理