Linux系统学习 九、日志、命令、身份鉴别、目录、文件查看、控制台终端、文件属性
一、配置静态ip地址
输入ifconfig后没有配置ip地址,接下来进行手动配置。
输入以下命令进入ip配置文件进行配置
原始内容
进入vi后,输入i进入编辑状态,编辑完成后,按esc键退出编辑状态,输入:wq进行保存退出。
编辑后的内容
重新启动一下
遇到的问题:
ip配置完成,重启后,可以和本机ping通,但是无法ping通百度。
原因猜测:
ip地址冲突;网关不对
解决:
最后经检查是网关配置错误
二、history命令
该命令可以回显从开机到当前时间输入过的所有指令
三、
在刚进入系统时所处的当前目录是root目录下
四、日志
存在于/var/log目录下
日志文件
日志文件 |
含义 |
/var/log/secure |
linux系统安全日志,记录用户和工作组的情况、用户登陆认证情况 |
/var/log/boot.log |
该文件记录了系统在引导过程中发生的事件 |
/var/log/messages |
内核及公共信息日志,是许多进程日志文件的汇总 |
/var/log/dmesg |
系统引导日志,该日志使用dmesg命令快速查看最后一次系统引导的引导日志 |
/var/log/lastlog |
该日志不能用诸如cat、tail等查看,因为该日志里面是二进制文件,可以用lastlog命令查看,它根据uid排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示 never logged。 |
/var/log/wtmp |
该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。该日志为二进制文件,不能用诸如tail/cat/等命令,使用last命令查看。 |
/var/log/mailog |
记录邮件的收发 |
/var/log/btmp |
此文件是记录错误登录的日志,可以记录有人使用暴力破解ssh服务的日志。该文件用lastb打开 |
/var/log/utmp |
该日志记录当前用户登录的情况,不会永久保存记录。可以用who/w命令来查看 |
who 和 w命令
五、安装vmtool
出现问题:
解决:yum groupinstall "perl support"
说明:这个安装文件应该是用perl写的,需要perl的运行环境,安装好"perl support"之后,重新执行 ./vmware-install.pl
六、根据等保测评中对linux的要求进行学习
1、身份鉴别
1)对登陆操作系统和数据库系统的用户进行身份表示和鉴别
1、密码文件中的口令字段是否不为空
2、检查各个用户主目录下的.rhosts文件
3、查看/etc/hosts.equiv
学习:
1、用户主目录
~代表用户主目录
对一般用户而言,~表示/home/(用户名)
对root用户而言,~表示/root
root用户主目录
显示当前目录
pwd 显示当前目录
pwd –p 显示当前目录的绝对路径
4、查看/etc/passwd文件中各种用户的第二段处是否不为空
5、输入find / -name “.rhosts”,查看那各个.hosts文件
6、查看/etc/hosts.equiv
学习:
/etc/passwd文件默认是隐藏的,可以用ls –al /etc/查看或者直接cat /etc/passwd读取内容
passwd的文件内容
含义
在passwd中的内容
每行信息代表每个用户信息,用“:”分割开来,一共7个字段
含义如下:
用户名:
代表用户身份的字符串,但是在linux中真正识别用户身份的是uid,这个字符串就是为了用户方便记忆。
密码:
“x”代表该用户设置了密码,但真正的密码内容没有显示出来(保存在/etc/shadow中)
uid:
是用户的id,让linux来识别不同用户的。
uid取自0~65535之间的数,不同范围代表不同的含义
uid含义
gid:
全称是“group id”,简称“组id”,表示用户初始组的id号。
初始组,指用户登陆时就拥有这个用户组的相关权限。每个用户的初始组只能有一个,通常就是将和此用户的用户名相同的组名作为该用户的初始组。比如说,我们手工添加用户 lamp,在建立用户 lamp 的同时,就会建立 lamp 组作为 lamp 用户的初始组。
附加组,指用户可以加入多个其他的用户组,并拥有这些组的权限。每个用户只能有一个初始组,除初始组外,用户再加入其他的用户组,这些用户组就是这个用户的附加组。附加组可以有多个,而且用户可以有这些附加组的权限。
举例来说,刚刚的 lamp 用户除属于初始组 lamp 外,又把它加入了 users 组,那么 lamp 用户同时属于 lamp 组和 users 组,其中 lamp 是初始组,users 是附加组。
初始组和附加组的身份是可以修改的,但是在工作中不修改初始组,只修改附加组,因为修改了初始组有时会让管理员逻辑混乱。
描述性信息:
该字段就是解释该用户的一些意义。
主目录:
就是用户登录后有操作权限的访问目录,通常称为用户的主目录。
默认的shell:
就是命令解释器(命令提示符,终端),该字段也可以理解为用户登陆之后所拥有的的权限。
shadow文件查看:
文件内容
密码存储的结构。
账户名:账户名与/etc/passwd里面的账户名是一一对应的关系。
密码:这里可以看到3类,分别是字符串、*和!!其中,字符串就是加密过的密码文件;*代表帐号被锁定;!!表示这个密码已经过期了。字符串是以$6$开头的,表示是用sha-512加密的;$1$ 表示是用md5加密的;$2$ 表示是用blowfish加密的;$5$表示是用 sha-256加密的。
修改日期:这个是表示上一次修改密码的日期与1970-1-1相距的天数密码不可改的天数:假如这个数字是8,则8天内不可改密码,如果是0,则随时可以改。
密码需要修改的期限:如果是99999则永远不用改。如果是其其他数字比如12345,那么必须在距离1970-1-1的12345天内修改密码,否则密码失效。
修改期限前n天发出警告:比如你在第五条规定今年6月20号规定密码必须被修改,系统会从距离6-20号的n天前向对应的用户发出警告。
密码过期的宽限:假设这个数字被设定为m,那么帐号过期的m天内修改密码是可以修改的,改了之后账户可以继续使用。
帐号失效日期:假设这个日期为x,与第三条一样,x表示的日期依然是1970-1-1相距的天数,过了x之后,帐号失效。
保留:被保留项,暂时还没有被用上。
查看/etc/login.defs内容,该文件记录的是所设置的密码长度以及跟换周期
查看/etc/pam.d/system-auth内容,该文件记录的是密码复杂度要求
指令:
ls –al ~
ls -al ~
ls –a -l ~
上述三种命令的输写方式并不一样,但是他们的输出结果是一样的
date <
date <
date <
上面三个命令,虽然只是改变了字母的大小写,但是输出的结果并不一样
注意:在linux中任何命令都是区分大小写的,大小写不一样代表的命令是不一样的。
locale 回显目前所支持的语系
其中包括输出方面,时间输出等方面的表示
最后一行lc_all= 是指全部的数据同步更新的设置值
如果语系为中文系则上述的命令输入后,回显的会是一串乱码,不会正常显示。
基础指令操作:
date 回显当前日期与时间
cal 回显日历
date输出格式化
这里我错把“:”输成了“;”,导致回显错误。
cal 2019 | more 以翻页的形式回显2019年整年的日历
cal的语法格式如下:
cal [month] [year]
如要想回显2016年12月日历
tab键功能
具有文件补全和命令补全的功能
当输入cl后连续按两次tab键就会显示出cl开头的命令
ls –al ~/.bash按两次tab键,回显以.bash开头的文件
总结:
tab键接在一串指令的第一个字后面是“命令补全”
tab键接在一串指令的第二个字以后是“文件补全”
ctrl+c 强制停止程序
ctrl+d 键盘输入结束
shift+page up和shift+page down
上下翻页,对于输出结果很长的情况下。
info 查询指令的用法或者文件的格式
按“q”退出
按“?”
按“d”返回初始界面
按“h”
关机
将数据同步写入的硬盘 sync
惯用关机指令 shutdown
重启 reboot,halt,poweroff
shutdown语法:
控制台终端:在 linux 系统中,计算机显示器通常被称为控制台终端,也有人叫工作组。
以下三幅图是kali中的图形化的表示
/dev/pts 虚拟终端,应该是在图形化的系统中使用的是这种
tty是teletype的缩写。
默认情况下,linux 中有 7 个 tty。它们被称为 tty1、tty2……tty7。1 到 6 的 tty 只是命令行。第 7 个 tty 是 gui(你的 x 桌面会话)。你可以使用 ctrl+alt+fn 键在不同的 tty 之间切换。
w命令:
行首将以下面这个顺序展示:当前的时间,系统已经运行了多久,当前系统有多少用户在登录,系统在过去的1,5,15分钟的平均负载。
第二行展示每个用户:登录名,tty 名,远程的(登录)主机,登录时间,空闲时间,jcpu,pcpu,以及当前进程的命令行。
ps –ax
控制终端(/dev/tty)
如果当前进程有控制终端(controlling terminal)的话,那么/dev/tty就是当前进程的控制终端的设备特殊文件。可以使用命令”ps –ax”来查看进程与哪个控制终端相连。对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。使用命令”tty”可以查看它具体对应哪个实际终端设备。/dev/tty有些类似于到实际所使用终端设备的一个联接。
通信:
echo “hello word” > /dev/tty1
停止tty
ps –ef | grep tty1 查看该tty的pid
kill -9 [pid] 结束进程
文件属性
> [-][rwx][r-x][r--] > 1 234 567 890
1 为:代表这个文件名为目录或文件,本例中为文件(-);
当为[ d ]则是目录,
当为[ - ]则是文件,
当为[ l ]则表示为链接文件(link file);
当为[ b ]则表示为设备文件里面的可供储存的周边设备(可随机存取设备);
若是[ c ]则表示为设备文件里面的序列埠设备,例如键盘、鼠标(一次性读取设备)。
234为:拥有者的权限,本例中为可读、可写、可执行(rwx);
567为:同群组使用者权限,本例中为可读可执行(rx);
890为:其他使用者权限,本例中为可读(r),就是只读之意。
改变属性:
这里新建的一个1.txt文件,
属性为:
文件;
拥有者root的权限为可读,可写,不可执行;
同群组使用者root的权限为可读,不可写,不可执行;
其他使用者的权限为可读,不可写,不可执行。
改变所属群组:
将1.txt文件的所属群组由root改为users
将1.txt文件的拥有者由root改为bin
也可以用cp命令更改文件拥有者,将文件复制给你之外的其他人时。
cp [来源文件] [目标文件]
top命令:
查看系统进程
第一行的含义:
pid:进程的id
user:进程的所有者
pr:进程的优先级别,越小越优先被执行
ninice:值
virt:进程占用的虚拟内存
res:进程占用的物理内存
shr:进程使用的共享内存
s:进程的状态。s表示休眠,r表示正在运行,z表示僵死状态,n表示该进程优先值为负数
%cpu:进程占用cpu的使用率
%mem:进程使用的物理内存和总内存的百分比
time+:该进程启动后占用的总的cpu时间,即占用cpu使用时间的累加值。
command:进程启动命令名称
可以使用
shift+p切换至按照cpu排序(或p)
shift+m切换至按照mem排序(或m)
结束进程
kill -9 [pid]
lsop –p [pid] 可以查看该进程打开的文件
file [文件名] 查看文件类型
strings [文件名] 显示二进制文件中可读字符
安装lsof命令
yum install lsof
tailf [文件名] 适合动态读取日志