Linux实验笔记
前置
下载信息
cd /home
rm -f download
rm -f teachers.ini
rm -rf course
wget --ftp-user=ftp --ftp-password=ftp --preserve-permissions ftp://47.119.161.215/*
./download zag 47.119.161.215
cd /home/course
cat linux_exam.txt | grep 3119004122
./upload 3119004122 47.119.161.215
./getScore 3119004122 47.119.161.215
环回网卡
环回网卡→属性→ipv4→属性
VMware网卡
编辑→虚拟网络编辑器
虚拟机设置
33网卡
先进入管理员权限
su
1234
再修改网卡配置
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="8972f637-4947-42cb-8150-19db760514ef"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=172.28.149.1
NETMASK=255.255.255.0
断开并重启ens33,查看配置
ifdown ens33
ifup ens33
ifconfig ens33
在 Linux 下测试网络是否连通
ping 172.28.149.100 -c 4
关闭防火墙
查看防火墙状态,active表示开启,inactive表示关闭
systemctl is-active firewalld.service
暂时关闭防火墙
systemctl stop firewalld.service
永久关闭防火墙(重启时不再启动)
systemctl disable firewalld.service
关闭selinux
查看selinux状态,Enforcing表示启动,permissive表示关闭
getenforce
临时关闭
setenforce 0
换源
默认源cn99,下载慢的话就换源
进入yum源配置目录
cd /etc/yum.repos.d
备份原来的yum源,便于恢复
mv CentOS-Base.repo CentOS-Base.repo.bk
下载新的CentOS-Base.repo 到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
运行yum makecache生成缓存
yum clean all
yum makecache
全局替换
命令模式下(:)
%s/要替换的/替换成的/g
例子:
%s/149/36/g
samba
检测有没有安装samba
rpm -qa | grep samba
更新/安装samba
yum -y install samba
启动samba
systemctl enable smb.service
配置smb.conf
vi /etc/samba/smb.conf
[global]
workgroup = wyu
security = user
netbios name = linux149
log file = /var/log/samba/smbd.log
log level = 2
max log size = 50
[homes]
comment = Home Directories
browseable = No
writable = Yes
[tmp]
path = /tmp
read only = No
public = Yes
[share]
read list = @share
write list = @share
public = No
browseable = Yes
writable = Yes
create mask = 0664
directory mask = 0770
path = /home/share
重启samba
systemctl restart smb.service
新建组 share,新建用户 mary,john。密码设为1234
useradd mary
passwd mary
useradd john
passwd john
新建组 share,并且将用户 mary 和 john 加入 share 组中
groupadd share
usermod -G share mary
usermod -G share john
将 mary,john 加入到 smbpasswd 文件
smbpasswd -a mary
smbpasswd -a john
在/home 目录下新建目录 share,将其组属性改成 share 组
mkdir -p /home/share
chown :share /home/share
chmod 770 /home/share
重启samba
systemctl restart smb.service
查看主机 172.28.149.1 的共享信息
smbclient -L //172.28.149.1 -U mary
在/home/share下创建文件 1 2 3 4
cd /home/share
touch 1 2 3 4
访问share目录
smbclient -c ls //172.28.149.1/share -U mary
通过 Windows 访问 Linux,用mary访问(实验时不需要做这步)
右击“我的电脑”,左键单击映射网络驱动器,在文件夹方框内按如下格式填写 \\172.28.149.1\share
创建挂载点
mkdir -p /mnt/smb/win
将远程共享 share 挂载到本地 /mnt/smb/win 目录
mount.cifs -o user=mary //172.28.149.1/share /mnt/smb/win/
进入挂载点
cd /mnt/smb/win
ls
用 mount 命令查看挂装表的内容
mount | grep cifs
保存实验文件
cp /var/log/samba/smbd.log /home/share
cp /etc/samba/smb.conf /home/share
ls /home/share
卸载挂载点(实验时不需要,做了会-6分)
cd /
umount /mnt/smb/win
HTTP
安装DNS
yum install -y bind
修改配置
vim /etc/named.conf
options 字段中,listen-on port 53(第一行) 和 allow-query (尾行)的字段值为 any
修改logging 字段
logging {
channel "default_syslog" {
syslog daemon;
severity info;
};
channel general_log {
file "data/general_log" versions 3 size 20m;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
channel query_log {
file "data/query_log" versions 3 size 20m;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
category general{ general_log; };
category queries{ query_log; };
};
在文件末尾添加正向区域和反向区域配置信息
vim /etc/named.rfc1912.zones
zone "example.com" {
type master;
file "data/example.com.zone";
allow-update { none; };
};
zone "149.28.172.in-addr.arpa" {
type master;
file "data/172.28.149.arpa";
allow-update { none; };
};
正向区域文件以及反向区域文件
cp /var/named/named.localhost /var/named/data/example.com.zone
cp /var/named/named.localhost /var/named/data/172.28.149.arpa
chown named.named /var/named/data/example.com.zone
chown named.named /var/named/data/172.28.149.arpa
修改dns正反配置
正向
vim /var/named/data/example.com.zone
$TTL 1D
example.com. IN SOA dns.example.com. admin.example.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
example.com. IN NS dns.example.com.
dns IN A 172.28.149.1
example.com. IN MX 10 mail.example.com.
example.com. IN MX 11 mail2.example.com.
example.com. IN MX 12 mail3.example.com.
bbs IN CNAME www
samba IN A 172.28.149.1
ftp IN A 172.28.149.1
mail IN A 172.28.149.1
mail2 IN A 172.28.149.1
mail3 IN A 172.28.149.1
www IN A 172.28.149.1
abc IN A 172.28.149.203
xyz IN A 172.28.149.203
反向
vim /var/named/data/172.28.149.arpa
$TTL 1D
149.28.172.in-addr.arpa. IN SOA dns.example.com. admin.example.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
149.28.172.in-addr.arpa. IN NS dns.example.com.
1 IN PTR dns.example.com.
1 IN PTR ftp.example.com.
1 IN PTR mail.example.com.
1 IN PTR mail2.example.com.
1 IN PTR mail3.example.com.
1 IN PTR www.example.com.
1 IN PTR samba.example.com.
203 PTR abc.example.com.
PTR xyz.example.com.
安装HTTP
yum install httpd
修改配置
vim /etc/httpd/conf/httpd.conf
修改severname
在最后加上以下信息
ServerName dns.example.com:80
NameVirtualHost 172.28.149.203
ServerAdmin admin@example.com
DocumentRoot "/var/www/web3"
ServerName abc.example.com
DirectoryIndex index.html
ErrorLog logs/web3/error_log
CustomLog logs/web3/access_log common
ServerAdmin admin@example.com
DocumentRoot "/var/www/web4"
ServerName xyz.example.com
DirectoryIndex index.html
ErrorLog logs/web4/error_log
CustomLog logs/web4/access_log combined
网卡设置
ifconfig ens33:3 172.28.149.203 netmask 255.255.255.0
创建index
mkdir -p /var/www/web3
mkdir -p /var/www/web4
echo "hello,web3" > /var/www/web3/index.html
echo "hello,web4" > /var/www/web4/index.html
创建log
mkdir -p /etc/httpd/logs/web3
mkdir -p /etc/httpd/logs/web4
touch /etc/httpd/logs/web3/error_log
touch /etc/httpd/logs/web3/access_log
touch /etc/httpd/logs/web4/error_log
touch /etc/httpd/logs/web4/access_log
测试
开启dns
systemctl restart named
开启http
systemctl restart httpd
Linux
yum install nscd -y
systemctl restart nscd
打开浏览器,访问abc.example.com和xyz.example.com
Windows
cmd中清空缓存
ipconfig/flushdns
打开浏览器,访问abc.example.com和xyz.example.com
wget abc.example.com
wget xyz.example.com
FTP
安装mysql
yum install gcc gcc-c++ pam-devel
yum install mysql-devel
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server
wget http://downloads.sourceforge.net/project/pam-mysql/pam-mysql/0.7RC1/pam_mysql-0.7RC1.tar.gz
tar -zxf pam_mysql-0.7RC1.tar.gz -C /tmp/
cd /tmp/pam_mysql-0.7RC1/
./configure --with-pam=/usr --with-mysql=/usr --with-pam-mods-dir=/usr/lib64/security
make; make install
创建虚拟用户对应的系统用户
useradd -d /home/virtual -s /sbin/nologin virtual
chmod o+r /home/virtual
创建存储虚拟用户的数据库和表
systemctl restart mysqld
mysql -u root -p
注意:此处密码默认为空,直接回车即可进入。
create database ftpdb;
use ftpdb;
create table ftpusers(name char(20),password char(48));
insert into ftpusers(name,password) values ('mary',password('mary'));
grant select on ftpdb.ftpusers to virtual@localhost identified by '123456';
安装vsftpd
yum install vsftpd
yum install ftp
修改 vsftp 主配置文件
vim /etc/vsftpd/vsftpd.conf
删掉最后那几句
#pam_service_name=vsftpd
#userlist_enable=YES
#tcp_wrappers=YES
pam_service_name=vsftpd.virtual
guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES
建立 pam 认证文件
vim /etc/pam.d/vsftpd.virtual
auth required /usr/lib64/security/pam_mysql.so user=virtual passwd=123456 host=localhost db=ftpdb table=ftpusers usercolumn=name passwdcolumn=password crypt=2
account required /usr/lib64/security/pam_mysql.so user=virtual passwd=123456 host=localhost db=ftpdb table=ftpusers usercolumn=name passwdcolumn=password crypt=2
创建mary并修改属性
mkdir /home/mary
有mary用户跳过
chown virtual.virtual /home/mary/
chmod 755 -R /home/mary/
mkdir -p /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_user_conf
vim mary
local_root=/home/mary
anon_other_write_enable=YES
anon_upload_enable=YES
write_enable=YES
anon_mkdir_write_enable=YES
anon_umask=022
download_enable=YES
启用日志文件
在主配置文件/etc/vsftpd/vsftpd.conf 中找到相关信息进行修改
vim /etc/vsftpd/vsftpd.conf
xferlog_std_format=NO
重启ftp
systemctl restart vsftpd
测试,账号密码都是mary
Linux
ftp localhost
Windows
打开cmd/terminal
echo lbwnb>mary.txt
ftp 172.28.149.1
mkdir upload
cd /upload
put mary.txt
quit