Linux操作系统是多任务(Multi-tasks)多用户(Multi-users)分时操作系统,linux操作系统的用户就是登录到linux的权限;每当我们使用用户名登录操作系统时,linux都会对该用户进行认证、授权审计等操作。操作系统为了识别每个用户,会给每个用户定义一个ID,就是UID。用户组就相当于多个用户的容器;在linux系统中,用户组也有一个ID,GID。本文主要介绍Linux 用户和组管理。

1、Linux系统用户

Linux系统上有三种类型的帐户:

1)root用户

root用户也被称为超级用户,将完全和不受约束的控制系统。超级用户可以不受任何限制地运行任何命令。该用户可以认为是越级系统管理员。

2)系统用户

系统帐户是操作特定于系统的组件所需的帐户,例如,邮件帐户和sshd帐户。系统上的某些特定功能通常需要这些帐户,对它们的任何修改都可能对系统产生不利影响。

3)用户帐户

用户帐户为用户和用户组提供对系统的交互访问。一般用户通常分配给这类帐户,并且通常对关键的系统文件和目录有有限的访问权限。

Linux支持组帐户(Group Account)的概念,它从逻辑上将多个帐户分组。每个帐户将是另一个组帐户的一部分。Linux组在处理文件权限和进程管理中起着重要的作用。

2、管理用户和组

用户管理相关的文件主要有4个,如下:

1)/etc/passwd

/etc/passwd中保存用户帐号和密码信息。也保存了Linux系统上关于帐户的大部分信息。

2)/etc/shadow

 /etc/shadow中保存对应帐户的加密密码。并不是所有的系统都支持这个文件。

3)/etc/group

/etc/group文件包含每个帐户的组信息。

4)/etc/gshadow

 /etc/gshadow文件包含安全组帐户信息。

可以使用cat命令查看上述的文件内容,常用的用于创建和管理帐户和组的命令如下表:

命令

说明

useradd

添加系统用户帐户

usermod


修改账户属性

userdel

删除系统帐户

groupadd

添加用户组

groupmod

修改用户组属性

groupdel

删除系统用户组

 参考文档Linux shell man命令查看帮助文档

2、创建用户组

创建用户之前我们需要创建对应的组,否则也可以利用系统中现有的组。在/etc/groups文件中包含所有的组。所有默认组都是针对系统帐号的组,不建议对普通帐号使用。创建组的方法如下:

 groupadd [-g gid [-o]] [-r] [-f] groupname

相关选项参数说明如下表:

命令选项

描述

-g GID

指定基本组ID,此组得事先存在;

-o

一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

-r

创建系统组

-f

如果指定的组已经存在,该选项只会导致以成功状态退出。使用-g,如果指定的GID已经存在,则选择其他(唯一的)GID

groupname

要创建的组名

如果不指定任何参数,则系统使用默认值。

例如,

$ groupadd developers

3、修改组

要修改组,可以使用groupmod命令:

groupmod -n new_modified_group_name old_group_name

可以将cjavapy组名更改为developer

groupmod -n developer cjavapy

如果想要修改GID可以使用命令如下:

groupmod -g 561 developer
4、删除组

如果要删除已存在的组,只需要使用groupdel命令和组名。

例如,

groupdel developer

注意groupdel developer是只删除组,而不删除与组关联的文件。文件的所有者仍然可以访问这些文件。

5、创建用户

如果我们需要在Linux系统上添加一个用户的帐户,可以使用命令如下:

useradd -d homedir -g groupname -m -s shell -u userid accountname

相关选项参数说明如下表:

命令

描述

-d homedir

指定帐户的主目录

-g groupname

指定此帐户的用户组

-m

如果主目录不存在,则创建它

-s shell

指定此帐户的默认shell

-u userid

可以为这个帐户指定一个用户id

accountname

要创建的帐户名称

注意:如果不指定任何参数,则系统使用默认值。useradd命令修改/etc/passwd/etc/shadow/etc/group文件,并创建home目录。

例如,

useradd -d /home/cjavapy-g developers -s /bin/bash cjavapy

注意:如果创建用户指定的用户组不存在,则需要使用groupadd命令进行添加。

用户登陆完成之后,需要使用passwd命令为用户设置密码,

例如,

$ passwd cjavapy
Enter new UNIX password: //输入新密码,输入的密码不显示
Retype new UNIX password: //确认密码
passwd: password updated successfully

注意:可以使用相同的命令更改密码,不需要指定的帐户名。

6、修改帐户

usermod命令可以从命令行对现有帐户进行更改。它使用与useradd命令相同的参数,加上-l参数,允许更改帐户名称。

例如,

将帐户名cjavapy修改为dev,也修改主目录为/home/dev:

$ usermod -d /home/dev -m -l cjavapy dev

7、删除帐户

userdel命令用于删除已存在的用户。使用这个需要谨慎一点,如果错删除了其它重要用户,会影响很大。

使用-r选项,可以删除帐户的主目录和邮件文件,

例如,

userdel -r cjavapy


推荐文档