高性能linux服务器运维实战 运维深入实践

用户权限管理

用户与用户组

用户与角色分类

用户是根据角色定义的。可分三类用户角色,root用户,普通用户,虚拟用户

虚拟用户实际不存在,只是为了方便管理,满足进程或文件的属主需求

用户和组配置文件

/etc/passwd

对所有用户可读,每行含义如下

用户名:口令:用户标识:组表示:注释:主目录:默认shell

口令 其中口令是加密的口令,而且不是明文,比如用x *代替,这种是shadow技术,真正加密的用户口令在/etc/shadow中

用户标识 即uid,uid范围在0-65535,0是root用户的uid,1-99系统保留作为管理账号,普通用户uid从100开始。在linux系统中,普通用户uid默认从500开始。当给普通用户的uid设为0后,就具有了root用户的权限,存在风险

/etc/shadow

这个文件存放/etc/passwd的加密密码,只有root用户有读权限,文件格式

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

加密口令 若加密口令是* ! x等字符,则用户不能登录系统

最后一次修改时间 当前到最近一次用户改密码的间隔天数,可用passwd改用户密码,查看此字段变化

最小时间间隔 两次改密码时间最小间隔

最大时间间隔 最大改密码时间间隔

警告时间 系统开始警告用户到密码正是失效的间隔天数

不活动时间 表示用户口令过期多少天后,系统会自动禁用此用户,用户无法登录系统

失效时间 表示用户生存期 超过该字段账号失效 若该字段为空 则用户永久可用

/etc/group

存放用户组信息,文件格式如下

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

口令 也是加密非明文,存在了/etc/gshadow中

组标识 即GID

组内用户列表 以逗号间隔

/etc/login.defs

该文件用来定义创一个用户时的默认配置,看几个常见的配置

MAIL_DIR /var/xxx/mail  # 创用户时,在该目录创一个用户mail目录

PASS_MAX_DAYS 999 # 密码持续保持有效最大天数

PASS_MIN_DAYS 5 # 同上,最小天数

PASS_MIN_LEN # 密码最小长度

PASS_WARN_AGE # 口令到期前多少天通知用户密码快到期了

UID_MIN 500 创用户时最小的UID,从该uid开始

UID_MAX GID_MIN GID_MAX

CREATE_HOME yes/no # 创用户时是否创用户主目录

/etc/default/useradd

定义了创建用户后一些默认属性,比如用户主目录,适用的shell等

GROUP=123 # 用户默认的GID

HOME=/home # 用户主目录默认创建位置

INACTIVE=-1 # 是否启用用户过期是否禁用,-1表示不用此配置

EXPIRE= # 账号过期日期,不设置表示不启用

SHELL=/bin/bash # 指定新建用户的shell类型

SKEL=/etc/skel # 指定用户主目录默认文件来源,即新用户主目录下文件都是从这里复制来的

改此文件除了文本编辑器 还可以用useradd命令的-D选项改

添加 切换 删除用户组命令

groupadd

groupadd -g GID -o(表示新用户组GID可以与已存在组的GID相同)

newgrp

可以切换用户的属组。创用户时可先指定用户可以所属的组有哪些,再用这个命令根据需要切换属组

groupdel

增删改查用户命令

useradd

创建用户过程 创用户时,先读取login.defs 和/etc/default/useradd根据这两个配置添加用户,然后向/etc/passwd 和/etc/group添加用户和用户组记录,其中的加密文件也会自动生成,然后按/etc/default/useradd配置创建用户主目录,最后复制/etc/skel所有文件到用户主目录

usermod

注意 改用户组可以usermod也可以newgrp

userdel

文件权限

常见文件类型有 -(普通文件) d(目录) c(字符设备文件) b(块设备文件) s(套接字文件) p(管道文件) l(符号链接文件) 

ll命令每行如下:

drwxrwxrwx 3 root root 4096 Jun 19 testfile

3是该文件的硬连接数量

4096是文件大小,单位默认是bytes

testfile 以.开头的文件是隐藏文件,只能ls -a才能显示

chmod

主要有两种格式

chmod who +|-|= mode filename 比如chmod u=rwx,g+w,o+w testfile

chmod 755 testfile

磁盘存储管理

/dev下有大量设备文件,可分为字符设备(c)和块设备(b)。字符设备的存取是以字符流方式进行的,依次传一个字符,比如打印机,终端等;块设备是以数据块方式存取的,常见设备是磁盘。通过块设备读取时,先从内存中读写,而不是直接传到物理盘

磁盘设备的表示法

常见磁盘类型有IDE,STAT,SCSI。表示法主要有两种

1 主设备号+次设备号+磁盘分区号

对于IDE磁盘 hda1 hdb2

对于SCSI磁盘 sda1 sdb2

对于终端设备 tty1 tty2 ttyS5

2 主设备号+[0-n],y

对于IDE (hd[0-n], y)

对于SCSI (sd[0-n], y)

UEFI BIOS MBR GPT

UEFI 统一可扩展固件接口,定义了一种在操作系统和平台固件之间的接口标准,用于操作系统自动从预启动的启动系统环境加载到一种操作系统上,时开机化繁为简。UEFI准确说是一种规范,不同厂商根据UEFI进行实现做出的PC固件,可以叫UEFI固件

BIOS 基本输入输出系统 用汇编语言编程,用中断执行输入输出操作。UEFI比BIOS好在:读取分区表,访问某些特定文件,执行特定格式代码

MBR 主引导分区 即硬盘的主引导记录分区列表,硬盘的0柱面,0磁头,1扇区成为主引导分区。MRBR主要有三部分组成,分别是主引导程序/硬盘分区表DPT和硬盘有效标志。主引导程序占446字节,DPT占64字节,硬盘有效标志占2字节。MBR分区表64字节,所以只有4个分区,因为每个分区长16字节,所以MBR不支持2T以上分区

GPT 全局唯一分区列表 是一个物理硬盘的分区结构,用来代替BIOS中的MBR。相比MBR,GPT没有4个主分区的限制,最大盘大小为18EB,仅支持64位系统

UEFI目标是取代BIOS,UEFI不支持MBR,仅支持GPT

fdisk分盘

分盘有很多命令,如fdisk,cfdisk,parted,此处介绍fdisk

fdisk可命令执行或交互执行

进入交互窗口后,输入m可查看命令帮助,常用的交互命令有 d删除 n新增盘 l查看分区信息 p查看分区表 q不保存退出 w保存退出 m查看帮助 t修改磁盘类型(比如将主分区改为逻辑分区 或者反过来改) 

分区以后还要格式化分区,可以使用命令mkfs(默认为ext2,也可以加参数指定类型) 或 mkfs.ext4/...

parted分盘

fdisk只能划分小于2T的盘,可以用parted命令完成对2T以上盘的划分

parted由GNU开发,命令,功能等比fdisk更强大

GPT和MBR相比,每个盘支持128个分区,支持大于2T的分区,最大卷大小18EB

文件系统管理

文件系统选择标准

linux常见文件系统有dos文件系统,windows下有FAT系列(FAT16 FAT32),NTFS,光盘文件系统ISO-9660,单一文件系统EXT2和日志文件系统EXT3/4,XFS,集群文件系统GFS,分布式文件系统HDFS等

读操作频繁同时小文件很多

可以EXT4。因为EXT3是线性的,当目录下文件较多,EXT3性能就下降较多,相比之下,EXT4有延迟分配,多块分配盘区,使EXT4适合大量小文件操作。因此从性能考虑,此种场景下EXT4首选。业务如果需对文件进行大量增删,EXT4也是更高效文件系统,接下来依次是XFS,EXT3

写操作频繁

可以选XFS。写入性能在XFS,EXT4,EXT3差别不大,但效率(cpu)最好的是XFS

对性能和数据安全要求不高的情况

可以考虑EXT3或EXT2,因为EXT2没有日志记录功能,可以节省很多磁盘性能

网络文件系统安装与配置(NFS)

安装

安装服务rpcbind,libnfsidmap,nfs-utils即可

工作模式

远端挂盘使用

定义nfs服务端

配置

配置文件在/etc/exports

/home/share  192.168.1.*(rw,root_squash)    *(ro,anonuid=123)

ro read only

rw read+write

no_root_squash 信任客户端 如果客户端的UID是root,则此用户有对共享资源最高权限。权限大有风险需谨慎

root_squash 当客户端root登入时,对资源的使用属主和属组都会被转为nfsnobody,只有可读权限

all_squash 不管客户端已什么用户登入nfs,权限都会转变为nfsnobody

no_all_squash 客户端UID和GID和服务端相同时,才对资源有读写权限

anonuid 将登入NFS的用户权限均设为指定UID,此UID必须已存在

anongid 和anonuid类似

sync 同步写入磁盘 默认选项

async 资料先写道内存 不会直接写入硬盘

服务操作

当仅修改/etc/export时,无需重启服务生效,执行exportfs即可生效

exportfs可以批量对共享资源进行分享,收回分享等操作

定义nfs客户端

客户端需要安装nfs-utils和rpcbind

nfs受防火墙影响,使用需注意

挂载资源

用正常mount命令挂载即可

开机自动挂载nfs

编辑/etc/fstab即可

安全设定

nfs没有实际对用户验证,只通过UID GID等,存在安全风险,有如下应对方法

合理编辑/etc/export权限

设定nfs目录最大copy数量,该参数在/etc/sysconfig/nfs文件中RPCNFSDCOUNT设定,默认为8,改了以后需要生效,重启nfs,nfs-config服务可生效

linux进程管理监控

进程分类和状态

进程分类

系统进程:对内存等系统资源分配的进程,root用户也无法干预系统进程

用户进程:顾名思义。用户进程可细分为交互进程,批处理进程和守护进程

父子进程

所有进程都是pid为1进程的后代,

进程监控管理

ps

ps -aux|head -1;ps -aux|grep httpd

进程状态

S表休眠进程

R表正在运行进程

Z表僵尸进程

<表高优先进程

N表低优先级进程

+表后台进程

s表父进程

top

TIME单位是0.01秒,表示进程到现在总共占用cpu的时间

lsof

lsof可以列举打开的文件,可以关联文件和进程

lsof filename

lsof -c nfs 显示nfs进程打开的文件

lsof -p pid

lsof -i 监控指定协议,端口,主机等信息

pgrep

pgrep可根据程序名查询进程pid

-l 打印pid和进程名(默认只打印pid,一个数字)

-o打印所有进程第一个进程pid

-n 打印所有进程最后一个pid

cron

介绍

任务分为两类,系统任务调度和用户任务调度

系统任务调度 /etc/crontab

用户任务调度 /var/spool/cron

使用

crontab [-u user] [file]

-u user 为某个用户设定定时任务

file表示将file内容作为任务列表传入cron,如果文件不存在,则cron交互接收任务列表

-e 编辑当前用户的cron文件内容

-l 显示某用户的cron文件内容

五个时间分别代表:分钟 小时 天 月 周

时间操作符

* 所有时间值

, 时间列表范围

- 连续时间范围

/ 时间间隔频率

关闭进程

kill -9强制结束

kill -2 非强制结束,ctrl+c一般发出信号等于kill -2

kill -15 正常结束进程

部分父进程结束后未释放子进程,此时子进程的父进程pid会变成1,此时再kill子进程即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值