Linux学习笔记

1. 忘记秘密的处理方式:
启动时候按e进入修改,在linux16 参数这行的最后面追加“rd.break”参数,然后按下Ctrl + X 组合键来运行修
改过的内核程序:
Mout –o remount,rw /sysroot
Chroot /sysroot
Passwd
Exit
Touch /atuorelabel
Reboot


2.vim文本编辑工具:
命令模式:默认打开的方式
dd:删除
5dd:删除当前行后至5行
yy:复制当前行
5yy:复制当前行至后5行
u:撤销上一次操作
p:粘贴上一次删除或者复制的行
n:向下进行查看,N:向上进行查找
编辑模式:在命令模式输入a,e,i,o 进入编辑;
末行模型:在最后一行输入,在:后输入命令
:q 退出
:w 保存
:q! 强制不保存退出
:wq! 强制退出并保存
:set nun 显示行号
:set nonun 不显示行号
:命令 执行该命令
:整数 跳转到该行
:s/one/two 将当前光标所在行的第一个one 替换成two
:s/one/two/g 将当前光标所在行的所有one 替换成two
:%s/one/two 将全文中的所有one 替换成two
?字符串 在文本中从下至上搜索该字符串
/字符串 在文本中从上至下搜索该字符串


3.修改主机名,可以实现通过越名访问
vim /etc/hostname
4.对网卡信息进行配置,切换至/etc/sysconfig/network-scripts/
设备类型:TYPE=Ethernet
➢ 地址分配模式:BOOTPROTO=static
➢ 网卡名称:NAME=eno16777736
➢ 是否启动:ONBOOT=yes
➢ IP 地址:IPADDR=192.168.10.10
➢ 子网掩码:NETMASK=255.255.255.0
➢ 网关地址:GATEWAY=192.168.10.1
➢ DNS 地址:DNS1=192.168.10.1
5.配置Yum 软件仓库,进入/etc/yum.respos.d/目录,新建一个rhel7.repo的文件
[rhel-name]:Yum 软件仓库唯一标识符,避免与其他仓库冲突。
➢name=description :Yum 软件仓库的名称描述,易于识别仓库用处。
➢baseurl=file:///media/cdrom :提供的方式包括FTP(ftp://..)、HTTP(http://..)、本地
(file:///..)。
➢ enabled=1:设置此源是否可用;1 为可用,0 为禁用。
➢ gpgcheck=1:设置此源是否校验文件;1 为校验,0 为不校验。
➢ gpgchey=file:///media/cdrom/RPM-GPG-KEY-redhat-release:若上面参数开启校验,
6.挂载文件
mkdir -p /media/cdrom
mount /dev/cdrom /media/cdrom


将挂载文件添加至开启启动中(不用每次都进行挂载,系统自动挂载)
/etc/fstab
/dev/cdrom /media/cdrom iso9660 defaults 0 0


安装文件,则用yum 组件名
例如:yum install httpd
7.编写shell脚本文件,命名为test.sh
#! /bin/bash
# 注解
ls -a
8.shell参数设置:
如$0 对应的是当前Shell 脚本程序的名称,
$#对应的是总共有几个参数,
$*对应的是所有位置的参数值,
$?对应的是显示上一次命令的执行返回值,
$1、$2、$3……则分别对应着第N 个位置的参数值


9.判断文件测试的参数:
-d 测试文件是否为目录类型
-e 测试文件是否存在
-f 判断是否为一般文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行
10逻辑判断
在Shell终端中逻辑“与”的运算符号是&&,它表示当前面的命令执行成功后才会执行它后面的命令
在Linux 系统中的运算符号为||,表示当前面的命令执行失败后才会执行它后面的命令
在Linux 系统中的运算符号是一个叹号(!),它表示把条件测试中的判断结果取相反值
例如:[ ! $USER = root ] && echo "user" || echo "root"


11.可用的整数比较运算符
-eq 是否等于
-ne 是否不等于
-gt 是否大于
-lt 是否小于
-le 是否等于或小于
-ge 是否大于或等于
12.常见的字符串比较运算符
= 比较字符串内容是否相同
!= 比较字符串内容是否不同
-z 判断字符串内容是否为空
13.条件判断
if 条件 
then
执行操作
elif 条件判断
then 
执行操作
else
执行操作
fi


14.for 循环语句允许脚本一次性读取多个信息,然后逐一对信息进行操作处理
for 变量 in 列表
do 
执行命令
done
15.while 条件循环语句是一种让脚本根据某些条件来重复执行命令的语句,它的循环结构往往在执行前并不确定最终执行的次数
while 条件判断
do
执行操作(其中包括退出循环的条件,exit 0)
done
16.case 条件测试语句和switch 语句的功能非常相似!case 语句是在多个范围内匹配数据,若匹配成功则执行相关命令并结束整个条件测试;而如果数据不在所列出的范围内,
则会去执行星号(*)中所定义的默认命令
case 变量值 in
变量值1)
执行操作
;;
*)
执行操作
;;
esac


17.计划任务服务
一次性计划任务:今晚11 点30 分开启网站服务。 
操作方法: 使用 at 时间,进入编辑任务;通过at -l查看任务信息;通过atrm 序列号删除任务
长期性计划任务:每周一的凌晨3 点25 分把/home/wwwroot 目录打包备份为backup.tar.gz。
创建、编辑计划任务的命令为“crontab -e”,
查看当前计划任务的命令为“crontab -l”,
删除某条计划任务的命令为“crontab -r”


命令格式:分、时、日、月、星期 命令
用逗号(,)来分别表示多个时间段,例如“8,9,12”表示8 月、9 月和12 月。
用减号(-)来表示一段连续的时间周期(例如字段“日”的取值为“12-15”,则表示每月的12~15 日)
用除号(/)表示执行任务的间隔时间(例如“*/2”表示每隔2 分钟执行一次任务)


分 取值为0~59 的整数
时 取值为0~23 的任意整数
日 取值为1~31 的任意整数
月 取值为1~12 的任意整数
星期 取值为0~7 的任意整数,其中0 与7 均为星期日
命令 要执行的命令或程序脚本


18.useradd 命令中的用户参数以及作用
格式:useradd [选项] 用户名
-d 指定用户的家目录(默认为/home/username)
-e 账户的到期时间,格式为YYYY-MM-DD.
-u 指定该用户的默认UID
-g 指定一个初始的用户基本组(必须已存在)
-G 指定一个或多个扩展用户组
-N 不创建与用户同名的基本用户组
-s 指定该用户的默认Shell 解释器


groupadd 命令
groupadd [选项] 群组名


usermod 命令
usermod [选项] 用户名
-c 填写用户账户的备注信息
-d -m  参数-m 与参数-d 连用,可重新指定用户的家目录并自动把旧的数据转移过去
-e 账户的到期时间,格式为YYYY-MM-DD
-g 变更所属用户组
-G 变更扩展用户组
-L 锁定用户禁止其登录系统
-U 解锁用户,允许其登录系统
-s 变更默认终端
-u 修改用户的UID


passwd 命令
passwd [选项] [用户名]
-l 锁定用户,禁止其登录
-u 解除锁定,允许用户登录
--stdin 允许通过标准输入修改用户密码,如echo "NewPassWord" | passwd --stdin Username
-d 使该用户可用空密码登录系统
-e 强制用户在下次登录时修改密码
-S 显示用户的密码是否被锁定,以及密码所采用的加密算法名称


userdel 命令
userdel [选项] 用户名
-f 强制删除用户
-r 同时删除用户及用户家目录


SUID
SUID 是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)
例如:-rwsr-xr-x. 1 root root 27832 Jan 29 2017 /bin/passwd
chmod -Rf u+s testdir/
SGID
让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)
在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)
例如:-r-xr-sr-x 1 bin system 59346 Feb 11 2017 ps
chmod -Rf g+s testdir/


chmod 和chown 命令是用于修改文件属性和权限的最常用命令;对目录进行操作时需要加上大写参数-R 来表示递归操作


SBIT
防止其他人删除非自己创建的文件,常用于目录的操作
当目录被设置SBIT 特殊权限位后,文件的其他人权限部分的x 执行权限就会被替换成t 或者T,原本有x 执行权限则会写成t,原
本没有x 执行权限则会被写成T。
chmod -R o+t testdir/


19.文件的隐蔽性
chattr 命令
chattr +或者-[参数] 文件
i
无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
a 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)
S 文件内容在变更后立即同步到硬盘(sync)
s 彻底从硬盘中删除,不可恢复(用0 填充原文件所在硬盘区域)
A 不再修改这个文件或目录的最后访问时间(atime)
b 不再修改文件或目录的存取时间
D 检查压缩文件中的错误
d 使用dump 命令备份时忽略本文件/目录
c 默认将文件或目录进行压缩
u 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
t 让文件系统支持尾部合并(tail-merging)
X 可以直接访问压缩文件中的内容


lsattr 命令用于显示文件的隐藏权限,格式为“lsattr [参数] 文件“




如果希望对某个指定的用户进行单独的权限控制,就需要用到文件的访问控制列表(ACL)
setfacl -Rm u:seven:rwx /root
ls -ld /root 查看可以看到最后一位为+
getfacl 命令用于显示文件上设置的ACL 信息,格式为“getfacl 文件名称”


sudo 命令用于给普通用户提供额外的权限来完成原本root 管理员才能完成的任务。
格式:sudo [参数] 命令名称
-h 列出帮助信息
-l 列出当前用户可执行的命令
-u 用户名或UID 值 以指定的用户身份执行命令
-k 清空密码的有效时间,下次执行sudo 时需要再次进行密码验证
-b 在后台执行指定的命令
-p 更改询问密码的提示语
通过visudo 命令编辑/etc/sudoers文档
谁  允许使用的主机=(以谁的身份) 可执行命令的列表


20.Linux 系统中常见的目录名称以及相应内容
/boot 开机所需文件—内核、开机菜单以及所需配置文件等
/dev 以文件形式存放任何设备与接口
/etc 配置文件
/home 用户家目录
/bin 存放单用户模式下还可以操作的命令
/lib 开机时用到的函数库,以及/bin 与/sbin 下面的命令要调用的函数
/sbin 开机过程中需要的命令
/media 用于挂载设备文件的目录
/opt 放置第三方的软件
/root 系统管理员的家目录
/srv 一些网络服务的数据文件目录
/tmp 任何人均可使用的“共享”临时目录
/proc 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等
/usr/local 用户自行安装的软件
/usr/sbin Linux 系统开机时不会使用到的软件/命令/脚本
/usr/share 帮助与说明文件,也可放置共享文件
/var 主要存放经常变化的文件,如日志
/lost+found 当文件系统发生错误时,将一些丢失的文件片段存放在这里
21.常见的硬件设备及其文件名称
IDE 设备 /dev/hd[a-d]
SCSI/SATA/U 盘 /dev/sd[a-p]
软驱 /dev/fd[0-1]
打印机 /dev/lp[0-15]
光驱 /dev/cdrom
鼠标 /dev/mouse
磁带机 /dev/st0 或/dev/ht0


22.在拿到了一块新的硬盘存储设备后,也需要先分区,然后再格式化文件系统,最后才能挂载并正常使用。
mount 命令
mount 文件系统 挂载目录
-a 挂载所有在/etc/fstab 中定义的文件系统
-t 指定文件系统的类型
umount 命令
umount [挂载点/设备文件]


23.
1.新添加的磁盘,分区
fdisk 命令
fdisk [磁盘名称]
m 查看全部可用的参数
n 添加新的分区
d 删除某个分区信息
l 列出所有可用的分区类型
t 改变某个分区的类型
p 查看分区信息
w 保存并退出
q 不保存直接退出


分区完成后可能不会同步到内核,使用partprobe 命令手动将分区信息同步到内核。
2. 格式化分区的部分
mkfs.文件类型名称 /dev/sdb1
例如:mkfs.xfs /dev/sdb1


3.挂载后可使用
mkdir /newFS
mount /dev/sdb1 /newFS/


23.SWAP交换区:在生产环境中,交换分区的大小一般为真实物理内存的1.5~2 倍
1.新添加的磁盘,分区
fdisk 命令
fdisk [磁盘名称]
2.格式化
mkswap /dev/sdb2
3.挂载设备
swapon /dev/sdb2


注意:挂载的信息仅当前开启环境有效,需要将挂载信息放到/etc/fstab后,一直都有效。


24.quota 命令进行磁盘容量配额管理
软限制:当达到软限制时会提示用户,但仍允许用户在限定的额度内继续使用。
硬限制:当达到硬限制时会提示用户,且强制终止用户的操作。
在/boot 目录 类型中,增加uquota(RHEL 6为usrquota)
例如:UUID=812b1f7c-8b5b-43da-8c06-b9999e0fe48b /boot xfs defaults,uquota 1 2


1.fs_quota -x -c 'limit bsoft=3m bhard=6m isoft=3 ihard=6 tom' /boot


1.edquota 


25.ln 命令
ln [选项] 源文件 目标文件
-s 创建“符号链接”(如果不带-s 参数,则默认创建硬链接)
-f 强制创建文件或目录的链接
-i 覆盖前先询问
-v 显示创建链接的过程


26.RAID盘建立
mdadm 命令用于管理Linux 系统中的软件RAID 硬盘阵列
格式为“mdadm [模式] <RAID设备名称> [选项] [成员设备名称]”。
-a 检测设备名称
-n 指定设备数量
-l 指定RAID 级别
-C 创建
-v 显示过程
-f 模拟设备损坏
-r 移除设备
-Q 查看摘要信息
-D 查看详细信息
-S 停止RAID 磁盘阵列
-x 表示备份的盘个数
步骤1
例如:mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc  /dev/sdd /dev/sde
-C 参数代表创建一个RAID 阵列卡;
-v 参数显示创建的过程,同时在后面追加一个设备名称/dev/md0,这样/dev/md0 就是创建后的RAID
磁盘阵列的名称;
-a yes 参数代表自动创建设备文件;
-n 4 参数代表使用4 块硬盘来部署这个RAID 磁盘阵列;
而-l 10 参数则代表RAID 10 方案;
再加上4 块硬盘设备的名称
步骤2
格式化:RAID硬盘
mkfs.ext4 /dev/md0
步骤3
mkdir /RAID
mount /dev/md0 /RAID
步骤5:
查看RAID的设备信息
mdadm -D /dev/md0


模拟设备损坏
一块物理硬盘设备出现损坏而不能继续正常使用后,应该使用mdadm 命令将其
移除,然后查看RAID 磁盘阵列的状态,可以发现状态已经改变。
mdadm /dev/md0 -f /dev/sdb


在RAID 10 级别的磁盘阵列中,当RAID 1 磁盘阵列中存在一个故障盘时并不影响RAID
10 磁盘阵列的使用。当购买了新的硬盘设备后再使用mdadm 命令来予以替换即可,在此期间
我们可以在/RAID 目录中正常地创建或删除文件。由于我们是在虚拟机中模拟硬盘,所以先
重启系统,然后再把新的硬盘添加到RAID 磁盘阵列中。
umount /RAID
mdadm /dev/md0 -a /dev/sdb
mdadm -D /dev/md0


创建一个RAID 5 磁盘阵列+备份盘。在下面的命令中,参数-n 3 代表创建这个
RAID 5 磁盘阵列所需的硬盘数,参数-l 5 代表RAID 的级别,而参数-x 1 则代表有一块备
份盘。当查看/dev/md0(即RAID 5 磁盘阵列的名称)磁盘阵列的时候就能看到有一块备
份盘在等待中
mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm -D /dev/md0
mkfs.ext4 /dev/md0


再次把硬盘设备/dev/sdb 移出磁盘阵列,然后迅速查看
/dev/md0 磁盘阵列的状态,就会发现备份盘已经被自动顶替上去并开始了数据同步。RAID 中
的这种备份盘技术非常实用,可以在保证RAID 磁盘阵列数据安全性的基础上进一步提高数
据可靠性,所以,如果公司不差钱的话还是再买上一块备份盘以防万一。
mdadm /dev/md0 -f /dev/sdb
mdadm -D /dev/md0


在硬盘分好区或者部署为RAID 磁盘阵列之后,再想修改硬盘分区大小就不容易了
因此需要,LVM 逻辑卷管理器 技术
常用的LVM 部署命令
功能 物理卷管理 卷组管理 逻辑卷管理
扫描 pvscan vgscan lvscan
建立 pvcreate vgcreate lvcreate
显示 pvdisplay vgdisplay lvdisplay
删除 pvremove vgremove lvremove
扩展 vgextend lvextend
缩小 vgreduce lvreduce
步骤:
1.添加硬件设备,进行创建物理卷组
pvcreate /dev/sdb /dev/sdc
2.创建卷组
vgcreate storage /dev/sdb /dev/sdc
查看结果:vgdisplay
3.创建逻辑卷组(使用-L 150M 生成一个大小为150MB 的逻辑卷。另外一种是以基本单元的个数为单位,
所使用的参数为-l。每个基本单元的大小默认为4MB。例如,使用-l 37 可以生成一个大小为37×4MB=148MB 的逻辑卷)
lvcreate -n vo -l 37 storeage
lvdisplay
4.把生成好的逻辑卷进行格式化,然后挂载使用(/dev/卷组名称/逻辑卷名称)
mkfs.ext4 /dev/storage/vo
5.挂载
mkdir /lvdir
mount /dev/storage/vo /lvdir


扩容逻辑卷
一定要记得卸载设备和挂载点的关联。
umount  /lvdir
扩展
lvextend -L 290M /dev/storage/vo
检查硬盘完整性,并重置硬盘容量
e2fsck -f /dev/storage/vo
重新挂载
mount /dev/storage/vo /lvdir


逻辑卷快照
实现数据还原至以前某个点
功能有两个特点:
快照卷的容量必须等同于逻辑卷的容量;
快照卷仅一次有效,一旦执行还原操作后则会被立即自动删除。
步骤:
1.:使用-s 参数生成一个快照卷,使用-L 参数指定切割的大小。另外,还需要在命
令后面写上是针对哪个逻辑卷执行的快照操作
lvcreate -L 120M -s -n SNAP /dev/storage/vo
2.需要对逻辑卷进行快照还原操作。在此之前记
得先卸载掉逻辑卷设备与目录的挂载。
umount /lvdir
lvconvert --merge /dev/storage/SNAP
3.重新挂载
mount /dev/storage/vo /lvdir
则数据还原


删除逻辑卷过程:
删除挂载
umount /linuxprobe
删除逻辑卷
lvremove /dev/storage/vo
删除卷组
vgremove storage
删除物理卷
pvremove /dev/sdb /dev/sdc
27. 防火墙
iptables服务会把配置好的防火墙策略交由内核层面的netfilter 网络过滤器来处理;
而firewalld 服务则是把配置好的防火墙策略交由内核层面的nftables 包过滤框架来处理。
iptables 中常用的参数以及作用
-P 设置默认策略
-F 清空规则链
-L 查看规则链
-A 在规则链的末尾加入新规则
-I num 在规则链的头部加入新规则
-D num 删除某一条规则
-s 匹配来源地址IP/MASK,加叹号“!”表示除这个IP 外
-d 匹配目标地址
-i 网卡名称 匹配从这块网卡流入的数据
-o 网卡名称 匹配从这块网卡流出的数据
-p 匹配协议,如TCP、UDP、ICMP
--dport num 匹配目标端口号
--sport num 匹配来源端口号
注意:一定要把允许动作放到拒绝动作前面
例如:
1.添加一条允许ICMP 流量进入的策略规则
iptables -I INPUT -p icmp -j ACCEPT
2.删除以上创建的规则
iptables -D INPUT 1
3.添加网段接收的策略
iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT
4.添加端口的访问为拒绝
iptables -I INPUT -p tcp --dport 12345 -j REJECT
iptables -I INPUT -p udp --dport 12345 -j REJECT
5.拒绝端口范围的访问
iptables -A INPUT -p tcp --dport 1000:1024 -j REJECT
iptables -A INPUT -p udp --dport 1000:1024 -j REJECT
6.配置完成后,需要保存
service iptables save


28.绑定两块网卡
1.添加两张网卡
2.编辑两张网卡信息(路径:/etc/sysconfig/network-scripts/下)
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=eno16777736
MASTER=bond0
SLAVE=yes


TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=eno33554968
MASTER=bond0
SLAVE=yes
3.创建新的网卡:vim /etc/sysconfig/network-scripts/ifcfg-bond0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=bond0
IPADDR=192.168.10.10
PREFIX=24
DNS=192.168.10.1
NM_CONTROLLED=no
4.:让Linux 内核支持网卡绑定驱动
mode0(平衡负载模式):平时两块网卡均工作,且自动备援,但需要在与服务器本地网卡相连的交换机设备上进行端口聚合来支持绑定技术。
mode1(自动备援模式):平时只有一块网卡工作,在它故障后自动替换为另外的网卡。
mode6(平衡负载模式):平时两块网卡均工作,且自动备援,无须交换机设备提供辅助支持。
创建一个用于网卡绑定的驱动文件
创建一个用于网卡绑定的驱动文件,使得绑定后的bond0 网卡设备能够支持绑定技术(bonding);
同时定义网卡以mode6 模式进行绑定,且出现故障时自动切换的时间为100 毫秒。
vim /etc/modprobe.d/bond.conf


alias bond0 bonding
options bond0 miimon=100 mode=6
5.加载bonding模块
modprobe bonding
5.重启网络服务
service network restart


29.安全密钥验证
1.在客户端主机中生成“密钥对"
ssh-keygen
2.把客户端主机中生成的公钥文件传送至远程主机
ssh-copy-id 192.168.10.10
3.对服务器进行设置,使其只允许密钥验证,拒绝传统的口令验证方式。在修改配置文件后保存并重启sshd 服务程序
vim /etc/ssh/sshd_config
PasswordAuthentication no
systemctl restart sshd
4.在客户端尝试登录到服务器,此时无须输入密码也可成功登录.
ssh 192.168.10.10
30.远程传输命令
scp [参数] 本地文件 远程帐户@远程IP 地址:远程目录
scp [参数] 远程用户@远程IP 地址:远程文件 本地目录
-v 显示详细的连接进度
-P 指定远程主机的sshd 端口号
-r 用于传送文件夹
-6 使用IPv6 协议


30.SELinux 服务
三种配置模式:
enforcing:强制启用安全策略模式,将拦截服务的不合法请求。
permissive:遇到服务越权访问时,只发出警告而不强制拦截。
disabled:对于越权的行为不警告也不拦截。
1.使用getenforce 命令获得当前SELinux服务的运行模式;
2.SELinux 安全上下文是由用户段、角色段以及类型段等多个信息项共同组成的
ls -Zd /var/www/html
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html
3.semanage 命令用于管理SELinux 的策略,格式为“semanage [选项] [文件]”
-l 参数用于查询;
-a 参数用于添加;
-m 参数用于修改;
-d 参数用于删除


semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/*
restorecon 命令将设置好的SELinux 安全上下文立即生效.
可以加上-Rv 参数对指定的目录进行递归操作,
restorecon -Rv /home/wwwroot/


getsebool 命令查询并过滤出所有与HTTP 协议相关的安全策略
httpd_enable_homedirs --> off
修改对应的值
setsebool -P httpd_enable_homedirs=on


强制解析DNS方式:
/etc/hosts 是Linux 系统中用于强制把某个主机域名解析到指定IP 地址的配置文件
31.Apache服务介绍
1.可以实现基于ip,域名,端口进行网站的设置
配置Apache的文件路径(httpd服务):vim /etc/httpd/conf/httpd.conf
32.文件共享vsftpd
ftp:20端口用于传输数据,21端口用于传输命令
配置路径:cat /etc/vsftpd/vsftpd.conf
listen=[YES|NO] 是否以独立运行的方式监听服务
listen_address=IP 地址 设置要监听的IP 地址
listen_port=21 设置FTP 服务的监听端口
download_enable=[YES|NO] 是否允许下载文件
userlist_enable=[YES|NO] 设置用户列表为“允许”还是“禁止”操作
max_clients=0 最大客户端连接数,0 为不限制
max_per_ip=0 同一IP 地址的最大连接数,0 为不限制
anonymous_enable=[YES|NO] 是否允许匿名用户访问
anon_upload_enable=[YES|NO] 是否允许匿名用户上传文件
anon_umask=022 匿名用户上传文件的umask 值
anon_root=/var/ftp 匿名用户的FTP 根目录
anon_mkdir_write_enable=[YES|NO] 是否允许匿名用户创建目录
anon_other_write_enable=[YES|NO]  是否开放匿名用户的其他写入权限(包括重命名、删除等操作权限)
anon_max_rate=0 匿名用户的最大传输速率(字节/秒),0 为不限制
local_enable=[YES|NO] 是否允许本地用户登录FTP
local_umask=022 本地用户上传文件的umask 值
local_root=/var/ftp 本地用户的FTP 根目录
chroot_local_user=[YES|NO] 是否将用户权限禁在FTP 目录,以确保安全
local_max_rate=0 本地用户最大传输速率(字节/秒),0 为不限制


三种模式:匿名开放模式、本地用户验证模式、虚拟用户模式
需安装软件:yum install vsftpd/ftp 实现Linux系统之间的文件传输
ftp 是Linux 系统中以命令行界面的方式来管理FTP 传输服务的客户端工具
注意:一定要注意设置Selinux的ftp权限,getsebool -a | grep ftp
查看相关配置,然后设置 setsebool -P ftpd_full_access=on


1.匿名模式:系统默认;还要做开放匿名用户的上传、下载文件的权限,以及让匿名用户创建、删除、更名文件的权限;
anonymous_enable=YES 允许匿名访问模式
anon_umask=022 匿名用户上传文件的umask 值
anon_upload_enable=YES 允许匿名用户上传文件
anon_mkdir_write_enable=YES 允许匿名用户创建目录
anon_other_write_enable=YES 允许匿名用户修改目录名称或删除目录
客户端连接方式:使用anonymous账户,密码为空 登录
在vsftpd 服务程序的匿名开放认证模式下,默认访问的是/var/ftp 目录;
创建文件需要修改权限
chown -Rf ftp /var/ftp
getsebool -a | grep ftp #修改ftpd_full_access --> on
setsebool -P ftpd_full_access=on
2.本地用户模式
anonymous_enable=NO 禁止匿名访问模式
local_enable=YES 允许本地用户模式
write_enable=YES 设置可写权限
local_umask=022 本地用户模式创建文件的umask 值
userlist_enable=YES 启用“禁止用户名单”,名单文件为ftpusers 和user_list
userlist_deny=YES 开启用户作用名单文件功能


使用登录的用户 ,不能再以下文件中
cat /etc/vsftpd/user_list
cat /etc/vsftpd/ftpusers


在采用本地用户模式登录FTP 服务器后,默认访问的是该用户的家目录;需要启动Selinux权限
setsebool -P ftpd_full_access=on #一定记得添加-P参数,否则服务器在重启后就会按照原有的策略进行控制


3.虚拟用户模式
步骤:
1.创建用于进行FTP 认证的用户数据库文件,其中奇数行为账户名,偶数行为密码
vim vuser.list
seven
seven
2.使用db_load 命令用哈希(hash)算法将原始的明文信息文件转换成数据库文件,并且降低数据库文件的权限(避免
其他人看到数据库文件的内容),然后再把原始的明文信息文件删除.(安装db_load方法:rpm -ivh db4-utils-4.2.52-7.1.i386.rpm)
db_load -T -t hash -f vuser.list vuser.db
chmod 600 vuser.db
rm -f vuser.list
3.创建vsftpd 服务程序用于存储文件的根目录以及虚拟用户映射的系统本地用户(当虚拟用户登录后所访问的默认位置)
让虚拟用户默认登录到与之有映射关系的这个系统本地用户的家目录中
useradd -d /var/ftproot -s /sbin/nologin virtual
chmod -Rf 755 /var/ftproot/
4.建立用于支持虚拟用户的PAM 文件。
新建一个用于虚拟用户认证的PAM 文件vsftpd.vu,其中PAM 文件内的“db=”参数为
使用db_load 命令生成的账户密码数据库文件的路径,但不用写数据库文件的后缀:
vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser


在vsftpd 服务程序的主配置文件中通过pam_service_name 参数将PAM 认证
文件的名称修改为vsftpd.vu,PAM 作为应用程序层与鉴别模块层的连接纽带,可以让应用程
序根据需求灵活地在自身插入所需的鉴别功能模块。当应用程序需要PAM 认证时,则需要在
应用程序中定义负责认证的PAM 配置文件,实现所需的认证功能
例如:在vsftpd 服务程序的主配置文件中默认就带有参数pam_service_name=vsftpd,表
示登录FTP 服务器时是根据/etc/pam.d/vsftpd 文件进行安全认证的
配置如下(vim /etc/vsftpd/vsftpd.conf)
anonymous_enable=NO 禁止匿名开放模式
local_enable=YES 允许本地用户模式
guest_enable=YES 开启虚拟用户模式
guest_username=virtual 指定虚拟用户账户
pam_service_name=vsftpd.vu 指定PAM 文件
allow_writeable_chroot=YES 允许对禁止的FTP 根目录执行写入操作,而且不拒绝用户的登录请求


其他说明:为虚拟用户设置不同的权限
mkdir /etc/vsftpd/vusers_dir/
cd /etc/vsftpd/vusers_dir/
touch lisi


vim zhangsan
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
修改vsftpd配置
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers_dir


5.设置SELinux 域允许策略,然后使用虚拟用户模式登录FTP 服务器
setsebool -P ftpd_full_access=on


32.共享文件夹
Samba/NFS,重点讲解NFS(Samba初衷解决Linux系统与window之间的共享问题,服务器)
NFS(网络文件系统)服务可以将远程Linux 系统上的文件共享资源挂载到本地主机的目录上。
安装:yum install nfs-utils
1.为了检验NFS 服务配置的效果,我们需要使用两台Linux 主机(一台充当NFS服务器,一台充当NFS 客户端),
NFS 服务器 RHEL 7 192.168.10.10
NFS 客户端 RHEL 7 192.168.10.20


另外,不要忘记清空NFS 服务器上面iptables 防火墙的默认策略,以免默认的防火墙策
略禁止正常的NFS 共享服务
iptables -F
service iptables save


2.在NFS 服务器上建立用于NFS 文件共享的目录,并设置足够的权限确保其他人也有写入权限
mkdir /nfsfile
chmod -Rf 777 /nfsfile3
3.NFS 服务程序的配置文件为/etc/exports,默认情况下里面没有任何内容。我们可以按照“共享目录的路径 
允许访问的NFS 客户端(共享权限参数)”的格式,定义要共享的目录与相应的权限
用于配置NFS 服务程序配置文件的参数
ro 只读
rw 读写
root_squash 当NFS 客户端以root 管理员访问时,映射为NFS 服务器的匿名用户
no_root_squash 当NFS 客户端以root 管理员访问时,映射为NFS 服务器的root 管理员
all_squash 无论NFS 客户端使用什么账户访问,均映射为NFS 服务器的匿名用户
sync 同时将数据写入到内存与硬盘中,保证不丢失数据async优先将数据保存到内存,
然后再写入硬盘;这样效率更高,但可能会丢失数据


vim /etc/exports
/nfsfile 192.168.10.*(rw,sync,root_squash)
4.启动和启用NFS 服务程序。由于在使用NFS 服务进行文件共享之前,需要使
用RPC(Remote Procedure Call,远程过程调用)服务将NFS 服务器的IP 地址和端口号等信
息发送给客户端。因此,在启动NFS 服务之前,还需要顺带重启并启用rpcbind 服务程序,
并将这两个服务一并加入开机启动项中。


systemctl restart rpcbind
systemctl enable rpcbind
systemctl start nfs-server
systemctl enable nfs-server
5.客户端配置;先使用showmount 命令查询NFS 服务器的远程共享信息,其输出格式为“共享的目录名称 允许使用客户端地址”。
showmount 命令中可用的参数以及作用
-e 显示NFS 服务器的共享列表
-a 显示本机挂载的文件资源的情况
-v 显示版本号
showmount -e 192.168.10.10
6.在NFS 客户端创建一个挂载目录。使用mount 命令并结合-t 参数,指定要挂载的文
件系统的类型,并在命令后面写上服务器的IP 地址、服务器上的共享目录以及要挂载到本地
系统(即客户端)的目录。
mkdir /nfsfile
mount -t nfs 192.168.10.10:/nfsfile /nfsfile


33.DNS(Domain Name System) 域名解析服务


用于管理和解析域名与IP 地址对应关系的技术
将域名解析为IP 地址(正向解析),或将IP 地址解析为域名(反向解析)
主服务器:在特定区域内具有唯一性,负责维护该区域内的域名与IP 地址之间的对应关系。
从服务器:从主服务器中获得域名与IP 地址的对应关系并进行维护,以防主服务器宕机等情况。
缓存服务器:通过向其他域名解析服务器查询获得域名与IP 地址的对应关系,并将经常查询的域名信息保存到服务器本地,以此来提高重复查询时的效率。


安装bind服务
建议大家在生产环境中安装部署bind 服务程序时加上chroot(俗称牢笼机制)扩展包,以便有效地限制bind 服务程序仅能对自身的配置文件进行操作,以确
保整个服务器的安全。
yum install bind-chroot
配置文档
主配置文件(/etc/named.conf):只有58 行,而且在去除注释信息和空行之后,实际有效的参数仅有30 行左右,这些参数用来定义bind 服务程序的运行。
区域配置文件(/etc/named.rfc1912.zones):用来保存域名和IP 地址对应关系的所在位置。类似于图书的目录,对应着每个域和相应IP 地址所在的具体位置,当需要查看
或修改时,可根据这个位置找到相关文件。
数据配置文件目录(/var/named):该目录用来保存域名和IP 地址真实对应关系的数据配置文件。


步骤:
1.主配置文件,然后把第11 行和第17 行的地址均修改为any,分别表示服务器上的所有IP地址均可提供DNS 域名解析服务,以及允许所有人对本服务器发送DNS 查询请求。
listen-on port 53 { any; };
allow-query { any; };


执行named-checkconf 命令和named-checkzone 命令分别检查主配置文件与数据配置文件中语法或参数的错误。
2.将下面的参数添加到区域配置文件的最下面,当然,也可以将该文件中的原有信息全部清空,而只保留自己的域名解析信息:
vim /etc/named.rfc1912.zones
zone "linuxprobe.com" IN {
type master;
file "linuxprobe.com.zone";
allow-update {none;};
};
3.编辑数据配置文件。参考正向解析的模板文件(named.localhost),在复制时记得加上-a 参数
cd /var/named/
cp -a named.localhost linuxprobe.com.zone


vim linuxprobe.com.zone


$TTL 1D #生存周期为1 天
@ IN SOA linuxprobe.com. root.linuxprobe.com. (
#授权信息开始 #DNS 区域的地址 #域名管理员的邮箱(不要用@符号)
0;serial #更新序列号
1D;refresh #更新时间
1H;retry #重试延时
1W;expire #失效时间
3H);minimum
#无效解析记录
的缓存时间
NS ns.linuxprobe.com. #域名服务器记录
ns IN A 192.168.10.10 #地址记录(ns.linuxprobe.com.)
IN MX 10 mail.linuxprobe.com. #邮箱交换记录
mail IN A 192.168.10.10 #地址记录(mail.linuxprobe.com.)
www IN A 192.168.10.10 #地址记录(www.linuxprobe.com.)
bbs IN A 192.168.10.20 #地址记录(bbs.linuxprobe.com.)




systemctl restart named


编辑数据配置文件。在保存并退出后文件后记得重启named 服务程序。


4.检验解析结果。为了检验解析结果,一定要先把Linux 系统网卡中的DNS 地址参数修改成本机IP 地址,这样就可以使用由本机提供的DNS 查询服务了
systemctl restart network
nslookup


反向解析实验
步骤
1.编辑区域配置文件。。在编辑该文件时,除了不要写错格式之外,还需要记住此处定义的数据配置文件名称
vim /etc/named.rfc1912.zones
#把下列参数添加至正向解析参数的后面
zone "linuxprobe.com" IN {
type master;
file "linuxprobe.com.zone";
allow-update {none;};
};
zone "10.168.192.in-addr.arpa" IN {
type master;
file "192.168.10.arpa";
};
2.编辑数据配置文件。首先从/var/named 目录中复制一份反向解析的模板文件(named.loopback),然后把下面的参数填写到文件中。
cp -a named.loopback 192.168.10.arpa
vim 192.168.10.arpa


$TTL 1D
@ IN SOA linuxprobe.com. root.linuxprobe.com. (
0;serial
1D;refresh
1H;retry
1W;expire
3H );minimum
NS ns.linuxprobe.com.
ns A 192.168.10.10
10 PTR ns.linuxprobe.com. #PTR 为指针记录,仅用于反向解析
10 PTR mail.linuxprobe.com.
10 PTR www.linuxprobe.com.
20 PTR bbs.linuxprobe.com.


systemctl restart named


3.检验解析结果。在前面的正向解析实验中,已经把系统网卡中的DNS 地址参数修改成了本机IP 地址;
nslookup


34.部署从服务器
1.在主服务器的区域配置文件中允许该从服务器的更新请求,即修改allow-update {允许更新区域信息的主机地址;};参数,然后重启主服务器的DNS 服务程序。
vim /etc/named.rfc1912.zones
zone "linuxprobe.com" IN {
type master;
file "linuxprobe.com.zone";
allow-update { 192.168.10.20; };
};
zone "10.168.192.in-addr.arpa" IN {
type master;
file "192.168.10.arpa";
allow-update { 192.168.10.20; };
};


systemctl restart named


2.在从服务器中填写主服务器的IP 地址与要抓取的区域信息,然后重启服务。注意此时的服务类型应该是slave(从),而不再是master(主)。masters 参数后面应该为主服务器
的IP 地址,而且file 参数后面定义的是同步数据配置文件后要保存到的位置,稍后可以在该目录内看到同步的文件。
vim /etc/named.rfc1912.zones


zone "linuxprobe.com" IN {
type slave;
masters { 192.168.10.10; };
file "slaves/linuxprobe.com.zone";
};
zone "10.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.10.10; };
file "slaves/192.168.10.arpa";
};


systemctl restart named


3.检验解析结果。当从服务器的DNS 服务程序在重启后,一般就已经自动从主服务器上同步了数据配置文件,而且该文件默认会放置在区域配置文件中所定义的目录位置中。
随后修改从服务器的网络参数,把DNS 地址参数修改成192.168.10.20,这样即可使用从服务器自身提供的DNS 域名解析服务。最后就可以使用nslookup 命令顺利看到解析结果了。
cd /var/named/slaves
#查看文件是否同步过来
nslookup 
# 输入www.linuxprobe.com ,192.168.10.10 测试


35.安全的加密传输
互联网中的绝大多数DNS 服务器(超过95%)都是基于BIND 域名解析服务搭建的,安全传输很重要
1.在主服务器中生成密钥。dnssec-keygen 命令用于生成安全的DNS 服务密钥,其格式为“dnssec-keygen [参数]”
-a 指定加密算法,包括RSAMD5(RSA)、RSASHA1、DSA、NSEC3RSASHA1、NSEC3DSA
-b 密钥长度(HMAC-MD5 的密钥长度在1~512 位之间)
-n 密钥的类型(HOST 表示与主机相关)
在执行该命令后默认会在当前目录中生成公钥和私钥文件


dnssec-keygen -a HMAC-MD5 -b 128 -n HOST master-slave


cat Kmaster-slave.+157+46845.private
# 记录私钥
Key: 1XEEL3tG5DNLOw+1WHfE3Q==
2.在主服务器中创建密钥验证文件。进入bind 服务程序用于保存配置文件的目录,把刚刚生成的密钥名称、加密算法和私钥加密字符串按照下面格式写入到tansfer.key 传输配
置文件中。为了安全起见,我们需要将文件的所属组修改成named,并将文件权限设置得要小一点,然后把该文件做一个硬链接到/etc 目录中
cd /var/named/chroot/etc/
vim transfer.key
key "master-slave" {
algorithm hmac-md5;
secret "1XEEL3tG5DNLOw+1WHfE3Q==";
};


chown root:named transfer.key
chmod 640 transfer.key
ln transfer.key /etc/transfer.key


3.开启并加载Bind 服务的密钥验证功能。首先需要在主服务器的主配置文件中加载密钥验证文件,然后进行设置,使得只允许带有master-slave 密钥认证的DNS 服务器同步
数据配置文件:
vim /etc/named.conf


include "/etc/transfer.key";


allow-transfer { key master-slave; };


4.配置从服务器,使其支持密钥验证。配置DNS 从服务器和主服务器的方法大致
相同,都需要在bind 服务程序的配置文件目录中创建密钥认证文件,并设置相应的权限,然后把该文件做一个硬链接到/etc 目录中。
cd /var/named/chroot/etc
vim transfer.key


key "master-slave" {
algorithm hmac-md5;
secret "1XEEL3tG5DNLOw+1WHfE3Q==";
};


chown root:named transfer.key
chmod 640 transfer.key
ln transfer.key /etc/transfer.key
5.开启并加载从服务器的密钥验证功能。
9 include "/etc/transfer.key";
43 server 192.168.10.10
44 {
45 keys { master-slave; };
46 };


6.DNS 从服务器同步域名区域数据。
systemctl restart named
ls /var/named/slaves/


36.部署缓存服务器:把用户经常使用到的域名与IP 地址的解析记录保存在主机本地,缓存服务器是否可以成功解析还与指定的上级DNS 服务器的允许策略有关。
1.配置系统的双网卡参数
缓存服务器 RHEL 7   网卡(外网):根据物理设备的网络参数进行配置(通过DHCP 或手动方式指定IP 地址与网关等信息)
网卡(内网):192.168.10.10
客户端 RHEL 7 192.168.10.20


2.在bind 服务程序的主配置文件中添加缓存转发参数。在大约第17 行处添加一
行参数“forwarders { 上级DNS 服务器地址; };”,上级DNS 服务器地址指的是获取数据配置文件的服务器
17 forwarders { 210.73.64.1; };
3.重启DNS 服务,验证成果。把客户端主机的DNS 服务器地址参数修改为DNS缓存服务器的IP 地址192.168.10.10,
nslookup


36.分离解析技术
配置设置:
DNS 服务器 RHEL 7
北京网络:122.71.115.10
美国网络:106.185.25.10
使用DNS 服务的分离解析功能,即可让位于不同地理范围内的访问者通过访问相同的网址
1.修改bind 服务程序的主配置文件,把第11 行的监听端口与第17 行的允许查询
主机修改为any。由于配置的DNS 分离解析功能与DNS 根服务器配置参数有冲突,所以需要
把第51~54 行的根域信息删除。
2.编辑区域配置文件。把区域配置文件中原有的数据清空,然后按照以下格式写
入参数。首先使用acl 参数分别定义两个变量名称(china 与american),当下面需要匹配IP 地
址时只需写入变量名称即可,这样不仅容易阅读识别,而且也利于修改维护。这里的难点是
理解view 参数的作用。它的作用是通过判断用户的IP 地址是中国的还是美国的,然后去分
别加载不同的数据配置文件(linuxprobe.com.china 或linuxprobe.com.american)。这样,当把相
应的IP 地址分别写入到数据配置文件后,即可实现DNS 的分离解析功能
1 acl "china" { 122.71.115.0/24; };
2 acl "american" { 106.185.25.0/24;};
3 view "china"{
4 match-clients { "china"; };
5 zone "linuxprobe.com" {
6 type master;
7 file "linuxprobe.com.china";
8 };
9 };
10 view "american" {
11 match-clients { "american"; };
12 zone "linuxprobe.com" {
13 type master;
14 file "linuxprobe.com.american";
15 };
16 };


3.建立数据配置文件。
cd /var/named
cp -a named.localhost linuxprobe.com.china
cp -a named.localhost linuxprobe.com.american


vim linuxprobe.com.china
$TTL 1D #生存周期为1 天
@ IN SOA linuxprobe.com.
root.linuxprobe.com
.
(#授权信息开始
#DNS 区域的地

#域名管理员的邮箱(不要用@符
号)
0;serial #更新序列号
1D;refresh #更新时间
1H;retry #重试延时
1W;expire #失效时间
3H);minimum
#无效解析记录的
缓存时间
NS ns.linuxprobe.com. #域名服务器记录
ns IN A 122.71.115.10 #地址记录(ns.linuxprobe.com.)
www IN A 122.71.115.15 #地址记录(www.linuxprobe.com.)




vim linuxprobe.com.American
$TTL 1D #生存周期为1 天
@ IN SOA linuxprobe.com.
root.linuxprobe.com
.
(
#授权信息开始
#DNS 区域的地

#域名管理员的邮箱(不要用@符
号)
0;serial #更新序列号
1D;refresh #更新时间
1H;retry #重试延时
1W;expire #失效时间
3H);minimum
#无效解析记录的
缓存时间
NS ns.linuxprobe.com. #域名服务器记录
ns IN A 106.185.25.10 #地址记录(ns.linuxprobe.com.)
www IN A 106.185.25.15 #地址记录(www.linuxprobe.com.)


4.重新启动named 服务程序,验证结果。将客户端主机(Windows 系统或Linux
系统均可)的IP 地址分别设置为122.71.115.1 与106.185.25.1,将DNS 地址分别设置为服务
器主机的两个IP 地址。
nslookup


37.动态主机配置协议( DHCP,Dynamic Host Configuration Protocol)
为局域网内部的设备或络供应商自动分配 IP地址等参数。
yum install dhcp
配置信息:/etc/dhcp/dhcpd.conf




ddns -update -style none;#设置 DNS服不自动进行动态更新
ignore client -updates;#忽略客户端更新 DNS记录
subnet 192.168.10.0 netmask 255.255.255.0 {#作用域为 192.168.10.0/24网段
range 192.168.10.50 192.168.10.150;#IP地址池为 192.168.10.50-150(约 100个 IP地址)
option subnet -mask 255.255.255.0;#定义客户端默认的子网掩码
option routers 192.168.10.1;#定义客户端的网关地址
option domain -name "linuxprobe.com";#定义默认的搜索域
option domain -na me -servers 192.168.10.1;#定义 客户端的 DNS地址
default -lease -time 21600;#定义默认租约时间(单位:秒)
max -lease -time 43200;定义最大预约时间(单位:秒)
}#结束符


38.分配固定 IP 地址
将IP地址和固定的网卡地址绑定,格式如下
host 主机名称 {
hardware ethernet 该主机的 MAC地址 ;
fixed-address 欲指定的 IP地址 ;
}
例如:
host linuxprobe {
 hardware ethernet 00:0c:29:27:c6:12;#注意此格式为: ,而不是window中的-
 fixed -address 192.168.10.88;
 }


39.使用 Squid 部署代理缓存服务
系统中最为流行的一款高性能代理服务软件,通常用作 系统中最为流行的一款高性能代理服务软件,通常用作 Web网站的前置 网站的前置 缓存服务, 能够代替用户向网站器请求页面数据并进行。































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux学习笔记是关于学习Linux操作系统的记录和总结。在学习Linux时,你可能会遇到以下几个方面的内容。 首先,Linux一个面向网络服务的操作系统,因此你可以随意更换桌面系统。Linux有多种不同的桌面系统供你选择。这意味着你可以根据自己的喜好和需求,选择适合自己的桌面环境。 其次,在Ubuntu中,root用户默认是被锁定的,因此你无法直接使用root权限进行操作。但是,你可以使用sudo命令来提升权限,以执行需要root权限的操作。通过sudo命令,普通用户可以在需要时暂时获得root权限,以便进行需要的操作。 此外,如果你需要修改内核为bash,可以使用vim编辑器打开/etc/passwd文件进行修改。在Linux系统中,vim是一种常用的文本编辑器,类似于Windows的记事本。通过编辑/etc/passwd文件,你可以修改用户登录shell为bash。 总结起来,Linux学习笔记记录了学习Linux操作系统的过程和经验,包括选择适合自己的桌面环境、使用sudo提升权限以及通过vim编辑器修改/etc/passwd文件等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Linux学习笔记](https://blog.csdn.net/m0_65379736/article/details/125700177)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值