Linux运维实战:CentOS7.6操作系统( 用户/文件/程序/归档/进程 管理 )

第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 文件权限的作用

在用户登录系统时,会以该用户和该用户组的身份启动一个Shell进程,用户在Shell中运行某个命令时,其实是通过Shell进程启动该命令的进程的。整个过程看似是用户在执行,其实都是由进程来完成的。

当不同的用户登录计算机系统时,同时发起ls进程,他们的权限是不一样的。

Shell进程就是代理某个用户操作。这个操作能不能访问到某个资源,取决于该进程的属主和资源的属主和属组。

内核的安全属性来进行判断:

​ 进程的属主 ——》 是否属于资源的属主 ——> 是否属于资源的属组

1.设定权限

通过对文件设定权限可以达到以下3种访问权限

(1)只允许文件的拥有者访问。

(2)允许一个预先指定的用户组中的用户访问。

(3)允许系统中的任何用户访问。

使用 ll命令来查看文件的权限。

2. 文件权限
[wwx@utahstu2 ~]$ ll /etc/passwd
-rw-r--r--. 1 root root 2296 1020 19:09 /etc/passwd

在这里插入图片描述

文件类型可以为p、d、l、–、s、c和b。

(1)p表示命名管道文件。

(2)d表示目录文件。

(3)l表示符号连接文件。

(4)-表示普通文件。

(5)s表示socket套接口文件,如启用MySQL时会产生一个mysql.sock文件。

(6)c表示字符设备文件。例如,虚拟控制台或tty0。

(7)b表示块设备文件。例如,sda和cdrom。

eg. 查看/dev/sda /dev/cdrom /etc/passwd /dev/tty0三个设备文件的类型。

[wwx@utahstu2 ~]$ ll /dev/sda /dev/cdrom /etc/passwd /dev/tty0
lrwxrwxrwx. 1 root root    3 1021 11:06 /dev/cdrom -> sr0
brw-rw----. 1 root disk 8, 0 1021 11:06 /dev/sda
crw--w----. 1 root tty  4, 0 1021 11:06 /dev/tty0
-rw-r--r--. 1 root root 2296 1020 19:09 /etc/passwd

7.1.2 更改文件的属主和属组

1.改变文件的所属关系用到chown命令和chgrp命令(只有管理员可以使用该命令)

chown命令:用于改变文件或目录的属主。

[root@utahstu2 utah]# chown utah:utah .

执行改命令的时候也需要文件夹的执行权限。

仅改变文件或目录的属主:chown 用户名 文件名

仅改变文件或目录的属组:chown :组名 文件名

自动继承该用户的所有的组(不指定属组):chown 用户名: 文件名

选项-R:递归,目录下的所有内容都更改,不使用该选项则只修改目录。

chgrp命令:仅用于改变文件或目录的默认属组。

选项-R:递归,目录下的所有内容都更改,不使用该选项则只修改目录。

注意⚠️:文件所有者一定可以写文件,即使所有者对于文件也仅仅有只读权限。就像root用户可以对shadow文件强制写,因为shadow文件的拥有者是root用户。

7.1.3 文件权限管理

修改权限用的命令:chmod

命令使用格式:chmod [操作对象] [操作符] [某种权限] 文件名

作用:修改文件、目录的权限。

1.操作对象

u:用户(user),表示文件或目录的所有者。

g:用户组(group),表示文件或目录所属的用户组。

o:其他用户(others)。

a:所有用户(all)。

2.操作符

+:添加权限。

-:取消权限。

=:直接给定一个权限。

3.权限:r w x

在这里插入图片描述

Eg.

chmod a=rwx b.txt. 等价于。 chmod 777 b.txt   # a 表示所有用户(属主,属组,其他用户)

使用八进制值(0~7)表示权限:
在这里插入图片描述


7.1.4 文件权限补码

创建文件的默认权限是644,这个默认权限是怎么来的?

文件默认权限=666 ,目录默认权限=777。

一般在**/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile**中设置umask值。

1.永久生效,编辑用户的配置文件vim .bash_profile

[utah@utahstu2 utah]$ vim /etc/profile

在这里插入图片描述

注:UID大于199且用户的组名和用户名一样,那么umask值为002,否则为022。

-gt在Shell中表示大于;id -g显示用户组ID,id -gn显示组名。

2.临时生效:umask权限补码

权限的算法:一般情况是目录默认权限-umask值。

例7.8:验证,将umask掩码设置为033,再创建文件。

在这里插入图片描述

结果为644。

在Linux中创建的文件,默认是不能带有执行权限的,如果指定的umask是033,创建的文件权限会为644。是因为默认计算后等于rw–wx-wx,此时系统检测到带有执行权限创建的文件都会采取加1机制,即为rw-r–r-。用下面的科学计算方法可以验证该问题。

3.权限科学的计算方法

(1)将默认权限(目录777,文件666)和umask值都转换为二进制值。

(2)对umask取反。

(3)将默认权限和umask取反后的值做与运算。

(4)将得到的二进制值再转换为八进制值,即为权限。

例7.9:umask值为022。

在这里插入图片描述

例7.10:umask值为033,结果为644。
在这里插入图片描述

7.2 文件的特殊权限:SUID、S

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值