note 08.05
用户配置文件和密码配置文件
eg. /etc/passwd
每一个用户一行,新建的用户会显示在底端,然后由冒号:分割为了七段
第一段是用户名,第二段表示密码,第三段表示UID,第四段是GID,第五段表示用户的注释信息没有实质作用,第六行表示用户的家目录,第七行表示用户的shell(/bin/bash就是可以登录的用户;/sbin/nologin/是不能登陆的)
/etc/shadow (专门用来存密码)-和用户的文件是一一对应的
各个段的含义
如何设置用户密码
用户组管理
eg. /etc/group
cat /etc/gshadow
Note:观察发现,当ls命令式会看到各个文件分别有一个x- (红框)文件在一起,这是起到备份密码的作用,当不小心删除用户或者shadow/gshadow文件时,可以copy x-(红框)文件恢复
组创建 / 组删除
grp 1
grp 1 with ID of 1005 (在centos7里id要在1000+)
&&&&
groupdel grp1
用户管理
创建用户是同时指定用户ID,以及所属组ID
在指定用户以及所属组ID的同时设置家目录以及shell
创建用户时不创建用户的家目录
根据下图显示如果不指定的话,grpid会随着uid依次增加,如果遇到重复grpid时,随着uid的增加grpid会跳过重复的grpid+1
删除用户
userdel user8
删除user的时候并不会删除user的家目录(用户的家目录留给管理员,以免误删里面文件)
如何在删除用户的时候直接删掉家目录
userdel -r user7
usermod 命令:更改用户属性的命令
用户的UID/GID 的更改
usermod -u/-g 111 username
用户的目录以及shell的更改
usermod -d /home/123123 username 用户目录更改
usermod -s /sbin/nologin username 用户shell更改
usermod -L username 锁定用户 锁定用户
useradd -G grp2 fred 扩展组
Note, id username 此命令可以查询每个用户的uid gid 以及组
通过以下命令表明,fred 不仅属于1000组还属于1005组(扩展组),如果使用同命令G再次添加扩展组时,会替换之前的扩展组
如何同时添加多个扩展组
用户密码管理
如果用户有密码的话就会有加密的字符串,如果没有密码的话,就会是!!
当密码位表示为!或者*均表示空密码,密码被锁定不能用并且不能被登录
锁定用户/解锁用户 passwd -l/-u username(lock/unlock)
当然也可以用usermod锁定用户 user -L username, 解锁是user -U username
用户锁定后就会出现!!
给一个用户设定密码
passwd --stdin username
eg. 通过管道服务把前面命令的结果直接传递给后面的命令
echo "111222" | passwd --stdin username
echo -e 表示换行服务, \表示换行符号,如下
*stdin 同理于 passwd username, 但是passwd username 需要提示两次来确认密码的更改,这时可以用上述 echo -e 以及管道命令,一行输入便可以更改,如下:
mkpasswd命令
生成密码的工具,此命令可以随机生成字符串作为密码, 要通过 yum install -y expect 先安装
常用语写shell脚本是批量创建用户随机生成密码并导出的时候
SU命令
用于用户间的切换
su - username & su uername(不加-的时候你会发现你当前目录还是在之前用户下)
&
同时在SU也可以以用户身份去执行命令
su - -c "touch /tmp/fred.111" username
当然也可以用户之间切换如下(鉴定故障的原因为我们之间锁定了用户)
如下图,用户切换后会产生的是-bash(行开头)而非[email protected],表示user5家目录不存在,并且没有配置文件
Solutions:
首先在root创建/home/user并更改所有者以及所属组到user5下,对于配置文件的添加,要从系统配置文件skel中拷贝cp /etc/skel/.bash*(*符号是统配,表示所有以bash靠头的文件),并设置所有者和所有组
Note: .bash都是配置文件
$!上一条能命令的最后一个参数
$?上一条命令的执行结果
SUDO命令
通常情况下是给普通用户授权root的身份
首先要进入visudu下进行更改
指为了让fred这个用户拥有root这个身份去执行XX命令(etc cat,ls,mv)
在visudo会自动排查语法错误,如下
再次进入编辑页面后先“:ser nu” 来查找错误行,确定command下用绝对路径并且用“, ”分开
通过以上设置,本没有ls权限的fred用户,在sudo命令下就可以有ls权限,cat mv同理
同样赋予user5此权限并不设置密码
在visudo里面也可以设置别名
Cmnd_Alias Fred_CMD = /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
关于用户组的用法
允许、限制root远程登录
将fred用户移入设置无密码登入root中
如何限制root远程登录
首先进入 vi /etc/ssh/sshd_config更改远程登录permission
然后重启服务 systemctl restart sshd.service
存储基础
存在于物理服务器和存储设备间的集中存储方式
&DAS= Direct Attached Storage 直连,通过iscsi协议直接挂到物理服务器上
&SAN=Storage area network 中间有一个交换机(SWICH/普通交换机光纤以及网络交换机),如果通过光纤交换机,走的便是FC协议;如果走的是网络交换机便是iscsi协议(san 走isici或者fc协议)
&NAS= Network attached storage 网络附加存储,类似于百度云盘
磁盘管理
命令df
如何看/swap 容量情况,因无法通过df -h 查看,用free命令查看
查看分区下都有少个inode以及inode使用情况(如果磁盘空间未满却依旧无法存储要查看df -i看inode是否满了)
命令du
du是用来查看一个文件大小的
du -sh 指查看当前目录的总大小
du -sh ./* 查看目录下文件的大小
为什么ls 和du命令显示的大小不一样,是因为ls显示的实际大小,每个块只能放一个文件,不足4k的在du命令下也显示4k
如果直接用du的话会显示/root/下分别内容的容量
磁盘分区
查看磁盘分区情况: lsblk
显示每一个分区的文件系统格式 :df -T
添加硬盘: 虚拟机-设置-添加硬盘
运行fdisk -l命令查询是否识别新硬盘
fdisk /dev/disk name(sdb)
主分区和扩展分区最大值为4
当依次创建四个分区后,会发现以下提示
同时我们删除第四个主分区,建立第四个为扩展分区,如下图
当地四个分区添加为扩展分区是我们仍旧可以添加,会发现sdb5和sdb6逻辑分区的起始扇区和sdb4差不多,是sdb4的构成部分
Note MBR &GPT
MBR
MBR(Master Boot Record)是传统的分区机制,应用于绝大多数使用BIOS引导的PC设备(苹果使用EFI的方式);很多Server服务器即支持BIOS也支持EFI的引导方式
MBR的特点
优点:MBR支持32bit和64bit系统;
缺点:1) MBR支持的分区数量有限制;2)MBR只支持不超过2TB的硬盘,超过2TB的硬盘只能使用2TB的空间(但是有第三方解决方法),应为MBR的寻址空间只有32bit长;
MBR结构:占用硬盘最开头的512字节
前446字节为:引导代码(Bootstrap Code Area)(引导不同的操作系统;不同操作系统,引导代码是不一样的)
接下来的为4个16字节:分别对应4个主分区表信息(Primary Partition Table)
最后2个字节:为启动标示(Boot Signature),永远都是55和AA;55和AA是个永久性的标示,代表这个硬盘是可启动的。
609083065041.png
MBR分区
MBR分区分为:主分区、扩展分区、逻辑分区
主分区:一块硬盘最多只能创建4个主分区(因为在MBR分区表结构中中最多可以创建4个主分区表信息,也就是4个16字节的空间,如上图)
扩展分区:一个扩展分区会占用一个主分区的位置
逻辑分区:
1)是基于扩展分区创建出来的,先有扩展分区,然后在扩展分区的基础上再创建逻辑分区;也就是说我们要使用逻辑分区,必须先要创建扩展分区;
2)扩展分区的空间是不能被直接使用的,我们必须在扩展分区的基础上去建立逻辑分区,才能够被使用;
3)Linux最多支持63个IDE分区和15个SCSI分区
PEL:Primary Partition;Extended Partition;Logical Partition
GPT
GPT(GUID Partition Table):是一个较新的分区机制,解决了MBR的很多缺点
1)支持超过2TB的磁盘:GPT有64bit寻址空间;而MBR对硬盘空间地址寻址最多只支持32bit,2的32次方,硬盘空间是以地址方式来被识别的,所以MBR只支持容量为2TB以内的磁盘
2)向后兼容MBR
3)但是底层硬件必须支持UEFI(Intel提出的取代BIOS的新一代的引导系统)才能使用,也就是底层硬件必须使用UEFI
4)必须使用64位操作系统
5)Mac、LInux系统都能支持GPT分区格式
6)Windows 7 64bit、Windows Server2008 64bit支持GPT
磁盘格式化
Centos所支持的文件系统格式
Centos6以前使用的都是ext格式的文件系统ext4, ext3, ext2;centos 7之后改成了xfs
格式化命令:
mkfsmke2fs -t ext3/4/xfs (指定成什么样格式的文件)
如下例,格式化成ext4的格式的文件系统(当已存在文件系统时mkfs命令要加-f overide )
&
mke2fs -b (指定块的大小)
如何查看一个还没有挂在的分区?
blkid
实际上每个块大小是4k,所以格式化后的每个块如果大于4096就会出现以下提示(如果当你存储视频图片之类的,为了更快的读取,可以块设置大一点)
mke2fs -m /dev/sdb1 指定这个磁盘预留的空间大小
blkid /dev/sdb1不指定格式化
mke2fs -i 指定多少个字节对应一个inode
如下例设置两个块8192对应一个inode(最低是一个块对应一个inode)