第6章 CentOS用户管理
第7章 CentOS 7 文件权限管理
第8章 CentOS 7 程序包的管理与安装
第9章 文件的归档和压缩
第10章 CentOS 7 系统进程管理
Linux运维实战:CentOS7.6操作系统从入门到精通6-10
第6章 CentOS用户管理
6.1 用户和用户组的关系
(1)Linux用户有3种角色:超级用户、普通用户、虚拟用户。
① 超级用户:即root用户,拥有对系统的最高管理权,UID为0。
② 普通用户(包含系统用户和本地用户):在不同的系统版本中,系统用户和本地用户的UID取值范围不相同。
CentOS 7版本:系统用户UID为1~999,本地用户UID为1000及以上。
CentOS 6版本:系统用户UID为1~499,本地用户UID为500及以上。
③ 虚拟用户:伪用户,一般不会用来登录系统,它主要用来维持某个服务的正常运行,如ftp、apache。
6.2 创建用户相关命令
6.2.1 创建用户
1.useradd
命令
useradd
命令用于创建用户,在Linux中,adduser命令也用于创建用户。实际上,adduser是软链接指向useradd的命令程序,所以两者的效果是一样的。
在默认创建用户时,会自动指定UID和GID,默认的UID和GID都是1000以上的。一般情况下,新创建用户的UID和GID是相同的,用户家目录(也叫宿主目录)是/home/
目录下与用户名相同的目录,Shell类型为/bin/bash
。如果在特殊情况下造成不相同,在权限分配时可能会出错。
创建用户完成时默认该用户密码为空,/etc/shadow
文件中的密码位是两个“!!”,没有密码不能直接登录系统,只能用超级用户登录系统以后再切换到该用户。创建用户时如果不指定其附加组,默认会创建一个与用户名同名的组。
这些默认属性是根据/etc/default/useradd
文件中所定义的创建用户默认值来设定的。
命令使用格式如下:useradd [选项 参数] 用户名
。
常用选项如下。
参数 | 作用 |
---|---|
-d | 指定新创建用户的家目录路径。 eg.useradd -d /data/wwx wwx #创建wwx用户并指定其家目录为/data/wwx |
-M | 不创建用户的家目录。 |
-g | 指定用户初始组的名字或GID,前提是该组必须是存在的,如果没有设置该选项,useradd会根据/etc/login.defs 文件中的USERGROUPS_ENAB 环境变量进行设置。USERGROUPS_ENAB 默认为yes,会用和用户名相同的名字创建用户组,并且GID等于UID。eg. useradd -g wwx wwx1 . #创建wwx1用户指定主组为wwx |
-G | 指定用户要加入的附加组列表,使用逗号分隔多个组,不要添加空格,如果不设置,用户仅加入初始组(一个用户只允许有一个初始组,可以有多个附加组)。eg. useradd -G wwx,xuegod,root wwx1 . |
-s | 指定用户登录系统后默认使用的Shell,请确保指定的Shell已经安装,默认的是bash。有时需要禁止某些用户执行登录动作,如用来执行系统服务的用户,将该用户登录系统后默认使用的Shell指定为/sbin/nologin 就可以禁止该用户登录。 |
-u | 指定用户UID。eg. useradd -u 1100 wwx #创建wwx用户,并指定其UID为1100 |
注意:用户初始组是指在创建用户的同时创建的与用户名同名的组,也称为主组。附加组则是指用户创建后或在创建的同时指定的一个额外的组,此组不属于用户初始组,因此称为附加组。
2. passwd文件
passwd用户信息文件每段的含义
3.查看系统中支持哪些Shell
/etc/shells
文件中记录。
[root@jira01 ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
4.使用id命令查看用户信息
[root@jira01 ~]# id wuwenxuan
uid=387801146(wuwenxuan) gid=387801146(wuwenxuan) 组=387801146(wuwenxuan)
5.删除用户
命令使用格式:userdel [选项] 用户名
。
选项如下所示:
-r
:删除时,会同时删除用户的家目录和/var/mail目录下该用户的相关目录。
6.创建用户规则
文件文件/etc/default/useradd
和/etc/login.defs
是创建用户时的规则文件。
使用egrep命令过滤login.defs
文件中的空白行和注释行(以“#”开头的行:egrep -v "^$|^#" /etc/login.defs
),该文件定义了创建用户时,用户属性相关的默认值,在创建用户时,如果明确指定其值时,则不需要从此文件中获取默认值。
[root@utahstu2 ~]# egrep -v "^$|^#" /etc/login.defs
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
UID_MIN 1000 #UID开始的数字,该值可以设置为大于1000,如果小于该值,用户会被识别为系统用户
UID_MAX 60000 #UID结束的数字
SYS_UID_MIN 201
SYS_UID_MAX 999
GID_MIN 1000 #GID开始的数字
GID_MAX 60000 #GID结束的数字
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes #是否为用户建立家目录
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512 #shadow文件的加密算法
/etc/default/useradd
文件中的内容如下
[root@utahstu2 ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100 #表示可以创建普通组,GID为100.如果不指定此项,或者把这个组删除了,在创建用户时,会提示:useradd:group‘100’does not exist.
HOME=/home #指定家目录的存放目录
INACTIVE=-1 #是否启用账号过期,shadow文件中的第7个字段。即密码过期后时否会失效的设定值。-1表示启动
EXPIRE= #账号终止日期,shadow文件中的第8个字段。可以直接设定账号在某个日期之后就直接失效,而不用理会密码的问题。通常不设置,但如果是付费的会员制系统,或许会设定该字段。
SHELL=/bin/bash #用户登录系统后的默认shell
SKEL=/etc/skel #模版目录
CREATE_MAIL_SPOOL=yes #是否创建邮箱文件。
6.2.2 修改用户属性
usermod命令用于修改用户账号属性信息。
命令使用格式:usermod [选项 参数] 用户名
。
常用选项如下。
参数 | 作用 |
---|---|
-u | 修改用户的UID。 |
-d | 修改用户的家目录。(usermod -m -d /mnt/market market # -m:选项会自动创建新目录并将内容移动到新目录中) |
-g | 修改用户初始组,只能有一个。 |
-G | 修改用户附加组,可以有多个。 |
-c | 修改用户描述(说明)信息。eg.usermod -c "hello world" wwx |
-s | 修改用户登录Shell。 |
-L | 锁定用户,锁定用户后,该用户不得登录系统。 |
总结:如果记不住命令,那么直接改vim /etc/passwd文件也是一样的,使用:wq! 强制保存并退出。
6.2.3 用户密码管理
1.passwd命令
普通用户只能使用passwd
命令更改用户自身的密码。对于管理员用户的密码管理权限,可以使用passwd
USERNAME更改所有其他用户的密码。
命令使用格式:passwd [选项] [选项参数] [用户名]
。
/etc/shadow
是用户密码信息文件,用户保存用户密码相关信息,具体含义如图:
更改用户密码:
[root@utahstu2 ~]# passwd wwx # 交互形式更改用户密码
更改用户 wwx 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@utahstu2 ~]#
[root@utahstu2 ~]# echo 123456 | passwd --stdin wwx #以非交互方式更改用户密码
更改用户 wwx 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@utahstu2 ~]#
2.chage命令
chage
命令用于修改用户密码属性。
命令使用格式:chage [选项] [选项参数] 用户名
。
常用选项如下。
参数 | 作用 |
---|---|
-m | 密码可更改的最小天数,参数为0时,表示任何时候都可以更改密码。 |
-M | 密码保持有效的最大天数。 |
-W | 用户密码到期前,提前收到警告信息的天数。 |
-E | 账号到期的日期,过了这一天,此账号将不可用。 |
-d | 上一次更改的日期,参数为0时,表示强制用户在下次登录时更改密码. |
例6.7:修改mk用户密码属性,使mk用户下次登录系统时必须更改其密码。
例6.8:两个用户使用同一个UID。
注意:当某个用户的UID与其他用户的UID相同时,系统会将UID相同的用户识别为同一个用户,因为系统识别用户时,是识别用户的UID。
以上实验结果,系统把mk用户识别为root用户了。
6.2.4 查看用户相关命令
1.id命令
作用:查看用户和组的信息。
命令使用格式:id [选项] [用户名]
。
选项有以下几种。
参数 | 作用 |
---|---|
-n | 和-u/-g/-G组合使用,在查看信息时以名称显示输出;如不加-n选项,则以ID号显示输出。 |
-u | 只显示指定用户的UID。 |
-g | 只显示指定用户的GID。 |
-G | 只显示指定用户的所有组的GID列表 |
2.whoami命令
作用:查看当前登录系统的用户名。
命令使用格式:whoami [选项]
。
3.who命令
作用:显示当前登录系统的用户信息。
命令使用格式:who [选项]
。
4.w命令
作用:显示已经登录系统的用户列表。
命令使用格式:w [用户名]
。
5.users命令
作用:显示当前登录系统的所有用户的用户名列表。
命令使用格式:users [选项]
。
第7章 CentOS 7文件权限管理
7.1 文件的基本权限
7.1.1 文件权限的作用
在用户登录系统时