Linux用户与用户组管理

标签: 操作系统 linux
425人阅读 评论(0) 收藏 举报
分类:

下面介绍中的示例,来自于Win10 Linux子系统。
更多linux命令可参考http://man.linuxde.net/

一、多用户多任务

Linux 是一个多用户、多任务的操作系统。比如通过远程访问,多个用户可以同时登陆一个系统并执行各自的多个任务。

用户在系统中是分角色的,并通过UID和GID进行区分。UID就是用户ID,GID就是群组的ID号。在Linux 系统中,由于角色不同,权限和所完成的任务也不同。

用户大体分为虚拟用户和实体用户:

  • root 用户:系统管理员,可以登录系统,拥有最高权限。
  • 虚拟用户:这类用户也被称之为伪用户或假用户,与真实用户区分开来,这类用户不具有登录系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、mail等;这类用户都是系统自身拥有的,而非后来添加的,当然我们也可以添加虚拟用户。 (比如nobody和ftp 等,我们访问LinuxSir.Org 的网页程序,就是nobody用户;我们匿名访问ftp 时,会用到用户ftp或nobody )
  • 普通实体用户:这类用户能登录系统,但只能操作自己家目录的内容,权限有限,是系统管理员自行添加的。

多用户机制使得系统管理更为方便,同时也使得系统更为安全。不同用户通过权限控制可以用于完成不同的工作。

二、用户(user)和用户组(group)概念

用户组(group)就是具有相同特征的用户(user)的集合体。 比如我们需要对几个用户采用相同的控制操作,那么我们可以将这几个用户加入同一个用户组,通过控制和修改该用户组来达到同时控制几个用户的目的。

用户和用户组的对应关系是:一对一、多对一、一对多或多对多;

  • 一对一:某个用户可以是某个组的唯一成员;
  • 多对一:多个用户可以是某个唯一的组的成员,不归属其它用户组;比如beinan和linuxsir两个用户只归属于beinan用户组;
  • 一对多:某个用户可以是多个用户组的成员;比如beinan可以是root组成员,也可以是linuxsir用户组成员,还可以是adm用户组成员;
  • 多对多:多个用户对应多个用户组,并且几个用户可以是归属相同的组;其实多对多的关系是前面三条的扩展;理解了上面的三条,这条也能理解;

三、用户和用户组相关的配置文件

1、/etc/passwd文件

通常在Linux系统中,用户的关键信息被存放在系统的/etc/passwd文件中,系统的每一个合法用户账号对应于该文件中的一行记录,这行记录定义了每个用户账号的属性,其格式为:

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

其内容示例如下:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
...
  • 用户名,即代表用户账号的字符串。
  • 口令,通常口令字段中只存放一个特别的字符,例如“x”或“*”。而真正的加密后的用户口令则存放到/etc/shadow文件。
  • 用户标识号,系统内部用来标识用户。如果几个用户名对应的用户标识号是相同的,系统内部将把他们视为同一个用户,不过他们能有不同的口令、不同的主目录及不同的登录Shell等。0是终极用户root的标识号,1~99由系统保留,作为管理账号,普通用户的标识号从100开始。
  • 组标识号,记用户所属的用户组,对应着/etc/group文件中的一条记录。
  • 注释性描述,通常是一段任意的注释性描述文字,用做finger命令的输出。
  • 主目录,用户的起始工作目录,他是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。
  • 登陆shell。用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程式,即Shell。Shell是用户和Linux系统之间的接口。 系统管理员能根据系统情况和用户习惯为用户指定某个Shell。如果不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/sh。(Win10 linux子系统下为/bin/bash)
2、/etc/shadow文件

该文件只有root用户可以访问,同样保存了加密的帐号信息。其格式为:

用户名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

其内容示例如下:

root:*:17255:0:99999:7:::
daemon:*:17255:0:99999:7:::
bin:*:17255:0:99999:7:::
sys:*:17255:0:99999:7:::
sync:*:17255:0:99999:7:::
games:*:17255:0:99999:7:::
...
  • 用户名,同/etc/passwd文件中一致。
  • 口令,同/etc/passwd文件中一致。
  • 最后一次修改时间,表示的是从某个时刻起,到用户最后一次修改口令时的天数。一些系统中默认时间起点为1970年1月1日。
  • 最小时间间隔,指的是两次修改口令之间所需的最小天数。
  • 最大时间间隔,指的是口令保持有效的最大天数。
  • 警告时间,字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
  • 不活动时间,表示的是用户没有登录活动但账号仍能保持有效的最大天数。
  • 失效时间,字段给出的是个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是个合法的账号,也就不能再用来登录了。
3、/etc/group文件

用户组信息保存在/etc/group配置文件中,任何用户均可读取。用户组的加密密码保存在/etc/gshadow配置文件中。其格式为:

组名:口令:组标识号:组内用户列表

其内容示例如下:

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog
...
4、/etc/gshadow文件

用于存储真实加密口令的组信息。

其格式为:

组名:口令:组的管理员(组长):组内用户列表

四、用户和用户组相关的控制指令

1、管理用户的工具或命令
  • useradd 或 adduesr: 添加用户
  • passwd: 为用户设置密码
  • usermod: 修改用户属性,如登录名、用户的home目录等
  • pwcov: 同步用户从/etc/passwd 到/etc/shadow
  • pwck: 校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;
  • pwunconv:与pwconv功能相反,用来关闭用户的投影密码。它会把密码从shadow文件内,重回存到passwd文件里,然后删除 /etc/shadow 文件。
  • finger:查看用户信息工具
  • id:查看用户的UID、GID及所归属的用户组
  • chfn:更改用户信息工具
  • su:用户切换工具
  • sudo:用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
  • visudo: 用于编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers 的效果是一样的。
2、管理用户组的工具或命令

该部分命令与“用户”命令很相似。

  • groupadd:添加用户组
  • groupdel:删除用户组
  • groupmod:修改用户组信息
  • groups:显示用户所属的用户组
  • grpck:用于验证组文件的完整性
  • grpconv:通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;
  • grpunconv:通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件;

参考文档:

查看评论

Linux 用户和组管理详解

用户与组的分类   Linux系统对用户分配如下:    -系统管理员:root    -普通用户:普通用户分为以下两种               系统用户:系统用户通常是不可登陆的,执行某些...
  • wangye1989_0226
  • wangye1989_0226
  • 2017-03-26 19:38:44
  • 2133

Linux用户和用户组管理命令

1. 用户管理命令 (1) 用户添加命令 useradd 命令格式:useradd [选项] 用户名 选项:  -u UID: 手工指定用户的UID号 -d 家目录: 手工指定用户的家目录 -c 用...
  • wxbmelisky
  • wxbmelisky
  • 2016-04-26 11:29:39
  • 9105

LINUX用户和用户组管理

Linux是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控...
  • rider628
  • rider628
  • 2012-02-23 13:41:00
  • 4150

Linux常用命令(五)用户及用户组管理

5 用户及用户组管理       chmod         用来改变权限        useradd      用来增加用户       su               用来修改用户 5...
  • boon_228
  • boon_228
  • 2016-05-11 09:12:58
  • 694

Linux 用户管理完整篇

1.常用配置文件 用户信息文件:  /etc/password 密码文件:      /etc/shadow 用户组文件:    /etc/group 用户组密码文件:/etc/gshad...
  • fubaohai11
  • fubaohai11
  • 2014-05-21 18:04:32
  • 6735

Linux 系统中通过用户组来管理用户

当你需要管理一台容纳多个用户的 Linux 机器时,比起一些基本的用户管理工具所提供的方法,有时候你需要对这些用户采取更多的用户权限管理方式。特别是当你要管理某些用户的权限时,这个想法尤为重要。比如说...
  • ZHAICAN
  • ZHAICAN
  • 2017-12-12 20:34:26
  • 71

实验报告4:用户和用户组的管理

实验报告四 课程名称 Unix/Linux系统设计 实验日期 2016/9/29 实验项目名称 用户管理 实验地点...
  • dkh_321
  • dkh_321
  • 2017-06-01 11:56:58
  • 821

Linux的用户和用户组管理

  • 2010年01月23日 13:00
  • 131KB
  • 下载

Linux下CVS用户的管理方式

CVS在创建用户时可以不用依赖与系统用户,具体方法如下:1. 用cvsroot用户登陆系统,在CVS的根目录(通常是CVSROOT)创建一个文件并命名为passwd2.在此目录下执行htpasswd ...
  • lironghai
  • lironghai
  • 2005-06-09 14:04:00
  • 1114

3linux用户及用户组管理.ppt

  • 2012年11月26日 21:47
  • 169KB
  • 下载
    个人资料
    持之以恒
    等级:
    访问量: 77万+
    积分: 7542
    排名: 3607