6-1.用户和组的相关配置文件__6-2.管理用户和组
6.1.什么是用户?
用户一般来说是指使用计算机的人,计算机针对使用其的每一个人给了一个特定的名称,用户就可以使用这些名称来登录使用计算机,除了人之外,一些系统服务也需要含有部分特权的用户账户运行;因此处于安全考虑,用户管理应运而生,它加以明确限制各个用户账户的权限,root在计算机中拥有至高特权,所以一般只作管理用,非特权用户可以通过SU或SUDO程序来临时获的特权。
GNU/Linux 通过用户和用户组实现访问控制----包括对文件访问、设备使用的控
个人可以拥有很多账户,只不是彼此名称不同,比如root名称已经占用就不能再用了,此外,任意用户可能从属某个用户组,此用户可以加入某些已经存在的组来获得该组的特权。
GNU/Linux 系统中的每一个文件都有属一个用户(属主)和一个用户组(属组)。另外,还有三种类型的访问权限:读(read)、写(write)、运行(execute)。我们可以针对文件的属主、属组而设置相应的访问权限。再次,我们可以通过 ls | stat 命令查询文件属主、属组和权限。
6.2.用户账号
6.2.1 用户的分类
Linux 用户三种角色
超级用户:root 拥有对系统的最高的管理权限 ID=0
普通用户:
系统用户 UID:1-999(centos7 版本) 1-499(centos6 版本)
本地用户 UID:1000+ 500+
UID:即每个用户的身份标示,类似于每个人的身份证号码
虚拟用户:伪用户 一般不会用来登录系统的,它主要是用于维持某个服务的正常运行,如:ftp,apache
下图是用户和组的关系:
一对一:一个用户可以存在一个组中;一对多:一个用户可以存在多个组中
多对一:多个用户可以存在一个组中;多对多:多个用户可以存在多个组中
6.2.2 配置文件
6.3.用户管理
6.3.1 用户命令
命令:useradd
useradd -d -u 'UID' -g '初始组' -G '附加组' -s '登录的 shell' 用户
解释:
-d:-d用户主目录路径,可以指定用户家目录
-M:不创建用户的主目录
-g:设置用户初始组的名称或数字ID;该组必须是存在的;如果没有设置该选项,useradd 会根据/etc/login.defs 文件中的 USERGROUPS_ENAB 环境变量进行设置。默认 USERGROUPS_ENAB yes 会用和用户名相同的名字创建群组,GID等于UID。
-G:用户要加入的附加组列表;使用逗号分隔多个组,不要添加空格;如果不设置,用户仅仅加入初始组。(一个用户只允许有一个主组,可以有多个附属组)
-s:用户默认登录 shell 的路径;启动过程结束后,默认启动的登录 shell 在此处设定;请确保使用的 shell 已经安装,默认是 Bash。有时候需要禁止某些用户执行登录动作,例如用来执行系统服务的用户。将 shell 设置成 /sbin/nologin 就可以禁止用户登录。
6.3.2 添加登录用户
例:添加一个名为harry的用户,并使用bash作为登录的shell
用户harry创建说明:
`useradd harry`命令会自动创建harry组,并成为harry用户的默认主组,同时默认的登录shell是bash,用户账户的全部信息被保存在/etc/passwd文件。这个文件以如下格式保存了每一个系统账户的所有信息(字段以 ":" 分割)
harry:x:1004:1004::/home/harry:/bin/sh 解释每个字段的作用
6.3.3 指定用户UID:-u 用户ID
命令:useradd -u 1100 oracle
6.3.4 指定用户主目录
命令:useradd -d /opt/kill -m kill
6.3.5 指定用户的主组
6.3.6 指定用户的主组
我们也可以把这个附属组成为补充组,用户可以有0个或多个附加组的成员,如果一个组有多个成员,我们是可以在/etc/group文件中最后一个字段看到的
命令:vim /etc/group 查看附属组详情
6.3.7 创建用户的另外一个命令
命令:adduser 用户名
6.3.8 删除用户
命令:userdel [options] 用户名
选项:-r 删除的时候,会同时删除用户的家目录和/var/mail下的目录
6.3.9 密码的文件
给用户添加/修改密码(交互式):
6.3.10 控制添加用户规则文件的两个文件:/etc/default/useradd 和 /etc/login.defs
命令:cat /etc/default/useradd
命令:change
-m:密码可更改的最小天数,为0时表示任何时候都可以更改密码
-M:密码保持有效的最大天数
-W:用户密码到期前,提前收到警告信息的天数
-E:账号到期的日期,过了这天,此账号将不可用
-d:上一次更改的日期,为0表示强制在下次登录时更新密码
例子:修改用户kill 密码信息:让这个用户mk首次登录系统是必须修改其密码
查看用户相关命令:
id 用户和组的信息
whoami 查看当前有效用户名
who 显示目前登入系统的用户信息
w 用于显示已经登录系统的用户列表
users 用户显示当前登录系统的所有用户的用户列表
如下图:
6.3.11 修改用户信息
命令:usermod 【参数】用户名
常用参数:
-u UID
-d 宿主目录
-g 起始组 # 只能有一个
-G 附加组 # 可以有多个
-s 登录shell
-L 锁定
-c 用户的描述信息
6.3.12 解决模板文件被删之后显示不正常的问题