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