第1章 查看ip的其他方法 ip
1.1 ip address == ip a
查看所有的网卡信息。
[root@znix ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:a8:e4:14 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.201/24 brd 10.0.0.255 scope global eth0
inet6 fe80::20c:29ff:fea8:e414/64 scope link
valid_lft forever preferred_lft forever
1.2 ip address show eth0 == ip a s eth0
查看第一块网卡的信息。
[root@znix ~]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:a8:e4:14 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.201/24 brd 10.0.0.255 scope global eth0
inet6 fe80::20c:29ff:fea8:e414/64 scope link
valid_lft forever preferred_lft forever
1.3 ip route == ip r
查看网关。
[root@znix ~]# ip r
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.201
169.254.0.0/16 dev eth0 scope link metric 1002
default via 10.0.0.2 dev eth0
第2章 vi/vim常见的错误
2.1 swap file exist 错误
2.1.1 产生原因
2.1.2 错误信息
Found a swap file by the name ".1.swp"
……
Swap file ".1.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
2.1.3 解决办法
(E)dit anyway 继续编辑无视这个错误
(R)ecover 把刚才没有保存的内容先回复 继续编辑
(D)elete it 删除这个临时文件
2.1.4 6.x之前版本解决办法
".1.swp" 找到与编辑的问文件,同名的 .swp 的隐藏文件。
第3章 用户管理
3.1 用户的分类
类型 UID
root 0
虚拟用户 1-499
虚拟用户时为了满足系统中每个服务/进程在运行的时候都要有一个用户和家庭。
普通用户 500+
3.1.1 两种常用的shell
/bin/bash 普通用户默认的命令解释器
/sbin/nologin 傀儡用户虚拟用户使用
3.2 与用户有关的配置文件
[root@znix ~]# ll /etc/passwd /etc/shadow /etc/group /etc/gshadow
-rw-r--r-- 1 root root 648 Sep 12 12:05 /etc/group 用户组信息
---------- 1 root root 529 Sep 12 12:05 /etc/gshadow 用户组密码
-rw-r--r-- 1 root root 1271 Sep 12 12:05 /etc/passwd 用户信息
---------- 1 root root 936 Sep 12 12:09 /etc/shadow 用户密码
3.2.1 /etc/passwd 文件详解
[root@znix ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
用户名:原来存放密码的位置:UID:GID:说明信息:家目录:shell(命令解释器)
第4章 与用户有关的目录
4.1.1 /etc/skel
/etc/skel目录是在linux下面添加一个新用户使用的用户老家的模板。
4.1.2 创建一个新的用户过程
新用户家目录中的三个隐藏文件,与/etc.skel中的相同。
[root@znix skel]# useradd alex888
[root@znix skel]# su - alex888
[alex888@znix ~]$ ll -a
total 20
drwx------ 2 alex888 alex888 4096 Sep 12 10:18 .
drwxr-xr-x. 6 root root 4096 Sep 12 10:18 ..
-rw-r--r-- 1 alex888 alex888 18 Mar 23 08:15 .bash_logout
-rw-r--r-- 1 alex888 alex888 176 Mar 23 08:15 .bash_profile
-rw-r--r-- 1 alex888 alex888 124 Mar 23 08:15 .bashrc
4.1.3 /etc/skel 目录下文件详解
[root@znix skel]# ll -a /etc/skel/
total 20
drwxr-xr-x. 2 root root 4096 Aug 10 18:34 .
drwxr-xr-x. 78 root root 4096 Sep 12 10:18 ..
-rw-r--r--. 1 root root 18 Mar 23 08:15 .bash_logout
-rw-r--r--. 1 root root 176 Mar 23 08:15 .bash_profile
-rw-r--r--. 1 root root 124 Mar 23 08:15 .bashrc
.bash_logout 用户登出的时候运行这个文件里的内容
.bash_profile 环境变量
.bashrc 存放用户的别名数
4.2 -bash-4.1$ 错误的解决办法
4.2.1 产生的原因
因为用户家目录里面的与环境变量相关的文件被删除
.bash_profile
.bashrc
4.2.2 解决办法
第一步 切换到这个用户
[root@znix skel]# su - alex888
bash-4.1$
第二步 将/etc/skel下的文件复制过来 ( .bash 隐藏文件)
注意:复制隐藏文件的是时候使用 .bash 。
-bash-4.1$ cp /etc/skel/.bash* ~
-bash-4.1$ ll -a
total 24
drwx------ 2 alex888 alex888 4096 Sep 12 10:27 .
drwxr-xr-x. 6 root root 4096 Sep 12 10:18 ..
-rw------- 1 alex888 alex888 23 Sep 12 10:25 .bash_history
-rw-r--r-- 1 alex888 alex888 18 Sep 12 10:27 .bash_logout
-rw-r--r-- 1 alex888 alex888 176 Sep 12 10:27 .bash_profile
-rw-r--r-- 1 alex888 alex888 124 Sep 12 10:27 .bashrc
第三步 退出重新连接即可
-bash-4.1$ logout
[root@znix skel]# su - alex888
[alex888@znix ~]$
4.3 .* 极度危险
. 查找的时候匹配 ..
.. 为上级目录
操作文件的时候尽量的精确 .bash
第5章 用户相关的命令
5.1 添加用户 useradd
5.1.1 useradd 与 adduser
[root@znix home]# ls -l `which useradd adduser`
lrwxrwxrwx. 1 root root 7 Aug 10 18:36 /usr/sbin/adduser -> useradd
-rwxr-x---. 1 root root 111320 May 11 2016 /usr/sbin/useradd
5.1.2 useradd参数说明
-c 添加说明信息
-u 指定用户的uid
-s 添加用户的时候指定命令解释器 默认/bin/bash /sbin/nologin
-M 不创建家目录
-g 添加用户的时候 默认会创建一个与用户名一样的家庭
5.1.3 添加用户 指定uid为666 禁止用户登录系统 不创建家目录
[root@znix ~]# useradd znix -u 666 -M -s /sbin/nologin
[root@znix ~]# grep znix /etc/passwd
znix:x:666:666::/home/znix:/sbin/nologin
[root@znix ~]# id znix
uid=666(znix) gid=666(znix) groups=666(znix)
5.1.4 /etc/login.defs 控制用户的默认信息
/etc/login.defs文件定义了与/etc/password和/etc/shadow配套的用户限制设定。这个文件是需要的,缺失并不会影响系统的使用,但是也许会产生意想不到的错误。
如果/etc/shadow文件里有相同的选项,则以/etc/shadow里的设置为准,也就是说/etc/shadow的配置优先级高于/etc/login.defs。
5.1.5 添加用户时的的基本信息(默认信息)
[root@znix ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
5.2 删除用户userdel
5.2.1 方法一 注释/etc/passwd
/etc/passwd里面,在这个用户行的前面加上# 将这一行注释就可以。尽量不要使用userdel去删除用户,可能会发生意料之外的错误。
5.2.2 删除用户时常见的错误信息
[root@znix ~]# userdel alex888
userdel: user alex888 is currently used by process 23823
提示: 用户被23823进程使用中
第一步 检查进程
[root@znix ~]# ps -ef |grep 23864
alex888 23864 23863 0 11:39 pts/1 00:00:00 -bash
root 23885 23718 0 11:39 pts/0 00:00:00 grep --color=auto 23864
第二步 强制结束进程 kill -9
[root@znix ~]# kill -9 23864
第三步 检查是否还有这个进程
[root@znix ~]# ps -ef |grep 23864
root 23923 23904 0 11:45 pts/1 00:00:00 grep --color=auto 23864
#另一个在登陆的窗口提示信息
[alex888@znix ~]$ Killed
[root@znix ~]#
第四步 删除用户 ,没有占用的进程后,删除用户不再报错。
[root@znix ~]# userdel alex888
5.2.3 常见参数
userdel 默认不删除家目录和邮箱
-r 删除与用户有关的所有文件
#########尽量不要使用userdel来删除一个用户
5.3 修改用户的信息 usermod
5.3.1 查看用户的信息
[root@znix ~]# grep znix /etc/passwd
znix:x:666:666:znix super:/home/znix:/sbin/nologin
5.3.2 为用户增加说明信息
[root@znix ~]# usermod -c "Super User" znix
[root@znix ~]# grep znix /etc/passwd
znix:x:666:666:Super User:/home/znix:/sbin/nologin
5.3.3 让用户属于新的家庭
[root@znix ~]# id znix
uid=666(znix) gid=666(znix) groups=666(znix)
[root@znix ~]# usermod -g root znix
[root@znix ~]# id znix
uid=666(znix) gid=0(root) groups=0(root)
5.3.4 用户属于多个家庭(附加组)
[root@znix ~]# id znix
uid=666(znix) gid=666(znix) groups=666(znix)
[root@znix ~]# usermod -G root,clsn znix
[root@znix ~]# id znix
uid=666(znix) gid=666(znix) groups=666(znix),0(root),500(clsn)
5.3.5 usermod常用参数
-c 修改说明信息
-s 修改用户的命令解释器
-g 让用户属于新的家庭
-G 用户属于多个家庭(附加组)
5.4 passwd 修改用户密码
5.4.1 交互式修改
[root@znix ~]# passwd znix
Changing password for user znix.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
#提示密码的强度太弱。
Retype new password:
passwd: all authentication tokens updated successfully.
交互式输入密码要输入两次密码。<br /> 一次只能修改一个用户的密码
5.4.2 非交互式设置密码 —stdin
[root@znix ~]# echo 123456 |passwd --stdin clsn
Changing password for user clsn.
passwd: all authentication tokens updated successfully.
5.5 密码管理软件
keeppass
把密码记录到硬盘中(本地管理)
lastpass
在线软件,把密码存放的别人家(云端管理)
AD统一管理<br /> 动态密码
5.6 让系统更加安全
5.6.1 方法
查看日志 /var/log/secure 查找failed 进行分析
chattr +i +a 给主要文件加上文件系统权限
指纹加密
5.6.2 指纹加密 md5sum 命令
只要文件的内容变量,加密信息就变化
第一步 给一个文件创建指纹
[root@znix ~]# md5sum clsn.txt
058c5119928950d06f48d901a101511a clsn.txt
第二步 进指纹放到一个文件中
[root@znix ~]# md5sum clsn.txt > list.txt
第三步 可以对文件进行校验 正确显示 OK 不一致显示Failed
[root@znix ~]# md5sum -c list.txt
clsn.txt: OK
[root@znix ~]# > clsn.txt
[root@znix ~]# md5sum -c list.txt
clsn.txt: FAILED
md5sum: WARNING: 1 of 1 computed checksum did NOT match
由于文件中保存的式相对路径,所以指纹文件要和目标文件在同一个文件内。
5.7 【企业面试题】
5.7.1 批量添加3个用户stu01,stu02,stu03,并设置123456(禁止使用for,while等循环)
[root@znix ~]# echo stu{01..3}|xargs -n1 -exec useradd
添加密码
[root@znix ~]# echo 123456 |passwd --stdin stu01 stu02 stu03