Linux用户管理
Linux用户分类
在Linux系统中,由于角色不同,每个用户的权限和所能完成的任务各不相同。Linux用户分为如下的三类:
root用户
在Linux系统中,root用户的权限是最高的。普通用户无法执行的操作,root用户都能完成,所以root用户也被称为超级管理用户。在Linux系统中,每一个文件、目录和进程都是归属于某一个用户的,如果没有获得用户的许可,其它普通用户是无法进行操作的。但root用户不受限制。root用户还可以超越任何用户和用户组群对文件或目录进行读取、修改和删除。可以控制程序的执行、中止;可以对硬件设备进行添加、创建和删除等操作。
虚拟用户
这类用户也被称为伪用户或假用户,这类用户不具备登录系统的能力,但却是系统运行不可缺少的用户。比如 bin、daemon、adm、ftp、mail等,这类用户都是系统自身拥有的。
普通用户
这类用户能够登录系统,只能擦欧总自己目录的内容,权限有限,这类用户都是系统管理员创建的。
用户文件
用户的配置文件主要包括:
- 用户信息文件:/etc/passwd
- 密码文件:/etc/shadow
- 用户组文件:/etc/group
- 用户组密码文件:/etc/gshadow
Linux系统中对于用户的管理主要通过修改配置文件来实现的。
/etc/passwd文件
/etc/passwd文件是系统识别用户的一个文件,系统所有的用户都在这里有登录记载。在/etc/passwd文件中,每一行都表示一个用户信息,一行有7个段位,每个段位用maohao分隔,如下所示:在文件中,各字段的含义如下:
- 用户名:也称为登录名,在系统内用户名具有唯一性
- 密码:存放加密的密码,显示的是一个 x ,密码被映射到 /etc/shadow文件中
- 用户标识号:系统用一个整数标识用户ID,每个用户的UID都是唯一的,root用户的UID是0,普通用户的UID从500开始
- 组群标识号:系统内用一个整数标识用户所属的组群ID号,每个组群的GID是唯一的
- 用户名全称:用户名描述,可以不设置
- 用户宿主目录:用户登录系统后首先进入的目录
- 命令解释器:用户使用的shell类型
/etc/shadow文件
/etc/shadow文件是 /etc/passwd的影子文件,这个文件并不由/etc/passwd文件产生,两个文件是对应互补的。shadow文件涉及内容包括用户及被加密的密码以及其它/etc/passwd文件不能包括的信息,比如用户的有效期限等。/etc/shadow文件包括9个段位,每个段位之间用maohao分隔,文件内容如下:
/etc/shadow各个字段的含义如下:
- 用户名:这里的用户名和/etc/passwd中的用户名一致
- 密码:经过加密的密码,如上图所示
- 上次修改秘密的时间:从1970年1月1日算起到最近以此修改密码的时间间隔(天数)
- 两次修改密码间隔最少天数:如果设置为0,则禁用此功能。指用户可以更改密码的天数
- 两次修改密码间隔最多的天数:如果设置为0,则禁用此功能,指用户必须更改密码的天数
- 提前多少天警告用户密码将过期:用户登录系统后,系统登录程序提醒用户密码将要过期
- 在密码过期后多少天禁用此用户:密码过期后系统不会让此用户登录
- 用户过期日期:指定用户过期的天数(从1970年1月1日开始的天数),如果这个字段的数值为空,账户永久可用
- 保留字段:目前为空,以备将来使用
/etc/group文件
具有某种共同特征的用户集合就是用户组群,/etc/group 是用户组群的配置文件,内容包括用户和用户组群,并且能够显示用户属于哪个组群或哪几个组群。一个用户可以归属于一个或多个不同的用户组群,同一用户组群的用户具有相似的特征。比如把某一个用户加入到root用户组群,那么这个用户就可以浏览root用户宿主目录的文件,如果root把某个文件的读写执行权限开放,root用户组群所有用户都可以修改此文件;如果是可执行文件,root用户组群的用户也是可以执行的。/etc/group文件内容如下:
每个用户组群以添记录,一行有4个段位,每个段位用maohao分隔,各个段位的定义如下:
- 组群名:用户组群的名称
- 群群密码:存放的是组群密码,显示为x,密码映射到/etc/gshadow文件中
- 组群标识:系统内用一个整数ID号,每个组群的UDI都是唯一的,普通组群的GID从500开始
- 组群成员:属于这个组群的成员
/ect/gshadow文件
/etc/gshasdow文件是 /etc/group的加密文件,文件中每个用户群都有一条记录,一行有4个段位,每个段位用maohao分隔,文件的内容如下:
每个段位的定义如下:
- 组群名:组群的名称
- 组群密码:组群加密后的密码
- 组群的管理员:有权限对该组添加、删除用户
- 组群成员:授予改组的成员列表,多个用户用 douhao分隔
实际操作
新增用户
新增用户如下命令与操作:
useradd [选项] 用户名
选项参数说明:
- -c comment 指定一段注释性描述。
- -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
- -g 用户组 指定用户所属的用户组。
- -G 用户组,用户组 指定用户所属的附加组。
- -s Shell文件 指定用户的登录Shell。
- -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
如下添加一个名为jinan(济南)的用户:
useradd user_name
执行上述操作后,即可在/home目录下查看到jinan文件夹。
还可添加指定用户主目录创建用户,如下命令与操作:
useradd -d path user_name
删除帐号
如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。
删除一个已有的用户账号使用userdel命令,其格式如下:
userdel 选项 用户名
常用的选项是 -r,它的作用是把用户的主目录一起删除。例如:
userdel -r qingdao
修改账号
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
修改已有用户的信息使用usermod命令,其格式如下:
usermod 选项 用户名
用户口令管理
用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:
passwd 选项 用户名
可使用的选项:
- -l 锁定口令,即禁用账号。
- -u 口令解锁。
- -d 使账号无口令。
- -f 强迫用户下次登录时修改口令。
- 如果默认用户名,则修改当前用户的口令。
例如,假设当前用户是jinan,则下面的命令修改该用户自己的口令:
用户组管理
参考菜鸟教程