第十周作业【Linux微职位】

一、建立samba共享,共享目录为/data,要求:(描述完整的过程)
1)共享名为shared,工作组为magedu;
2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;
3)添加samba用户gentoo,centos和ubuntu,密码均为“mageedu”;
4)此samba共享shared仅允许develop组具有写权限,其他用户只能以只读方式访问;
5)此samba共享服务仅允许来自于172.16.0.0/16网络的主机访问;

[[email protected] /]# groupadd develop        #添加组develop
[[email protected] /]# useradd -G develop gentoo        #添加用户
[[email protected] /]# useradd -G develop centos
[[email protected] /]# useradd ubuntu

[[email protected] /]# echo gentoo | passwd --stdin gentoo        #设置用户密码
[[email protected] /]# echo centos | passwd --stdin centos
[[email protected] /]# echo ubuntu | passwd --stdin ubuntu

[[email protected] /]# smbpasswd -a gentoo        #添加samba用户
[[email protected] /]# smbpasswd -a centos
[[email protected] /]# smbpasswd -a ubuntu

[[email protected] /]# vim /etc/samba/smb.conf         #修改配置文件
        hosts allow = 10.18.11.        #添加ip白名单
        
[share]
        comment = share
        path = /share        #设置共享路径
        public = no        #设置共享目录是否允许匿名访问
        writable = yes        #设置为有写入权限    
        write list = +develop        #设置具有写入权限的用户列表
        
[[email protected] ~]# smbclient //10.18.11.29/share -U centos        #使用centos用户有写权限
Enter centos‘s password: 
Domain=[MYGROUP] OS=[Windows 6.1] Server=[Samba 4.2.10]
smb: \> ls
  .                                   D        0  Sat Oct 22 17:20:02 2016
  ..                                 DR        0  Sat Oct 22 17:20:02 2016

                77931220 blocks of size 1024. 71904540 blocks available
smb: \> lcd /etc
smb: \> put passwd
putting file passwd as \passwd (946.6 kb/s) (average 946.6 kb/s)    

[[email protected] ~]# smbclient //10.18.11.29/share -U ubuntu        #使用ubuntu用户没有写权限
Enter ubuntu‘s password: 
Domain=[MYGROUP] OS=[Windows 6.1] Server=[Samba 4.2.10]
smb: \> lcd 
smb: \> lcd /etc
smb: \> put fstab 
NT_STATUS_ACCESS_DENIED opening remote file \fstab

二、搭建一套文件vsftp文件共享服务,共享目录为/ftproot,要求:(描述完整的过程)
1)基于虚拟用户的访问形式;
2)匿名用户只允许下载,不允许上传;
3)禁锢所有的用户于其家目录当中;
4)限制最大并发连接数为200:;
5)匿名用户的最大传输速率512KB/s
6)虚拟用户的账号存储在mysql数据库当中。
7)数据库通过NFS进行共享。

实验环境如下

ip 用途
10.18.11.29 mysql+vsftp
10.18.11.30 nfs

1、安装nfs服务器

[[email protected] /]# yum install nfsutil* rpcbind       #安装nfs和rpcbind服务所需软件包
[[email protected] /]# mkdir /nfs        #创建共享文件夹
[[email protected] ~]# groupadd -g 1001 mysql        #添加mysql组
[[email protected] ~]# useradd -u 1001 -g 1001 mysql        #添加mysql用户
[[email protected] ~]# chown mysql:mysql /nfs        #修改/nfs属组为mysql,为之后挂载到mysql服务器上做datadir做准备
[[email protected] /]# vim /etc/exports        #编辑/etc/exports文件,添加权限
/nfs 10.18.11.29(rw,sync,fsid=0,no_root_squash)
[[email protected] /]# systemctl start rpcbind.service        ##启动rpcbind服务
[[email protected] /]# systemctl start nfs-server.service        #启动nfs服务

2、客户端挂载nfs文件夹

[[email protected] /]# mkdir /mysqldata        #创建挂载路径
[[email protected] /]# mount -t nfs 10.18.11.30:/nfs /mysqldata        #挂载nfs目录到/mysqldata

3、安装mysql

[[email protected] ~]# yum install -y mariadb mariadb-devel
[[email protected] ~]# groupadd -g 1001 mysql        #添加mysql组
[[email protected] ~]# useradd -u 1001 -g 1001 mysql        #添加mysql用户
[[email protected] ~]# vim /etc/my.cnf        #修改mysql配置文件
[mysqld]
datadir=/mysqldata
socket=/var/lib/mysql/mysql.sock
character-set = utf8
user= mysql
[[email protected] /]# mysql_install_db --datadir="/mysqldata/"        #初始化mysql
[[email protected] /]# systemctl status mariadb.service        #启动mysql

4、创建数据库

MariaDB [(none)]> create database vsftpd;               
MariaDB [vsftpd]>  grant select on vsftpd.* to [email protected]‘10.18.11.29‘ identified by ‘magedu‘;        #创建数据库用户,添加查询权限
MariaDB [vsftpd]> create table users (id int AUTO_INCREMENT NOT NULL,name char(50) binary NOT NULL,password char(48) binary NOT NULL,primary key(id));        #在vsftpd数据库中创建表users
MariaDB [vsftpd]> use vsftpd
MariaDB [vsftpd]> flush privileges;
MariaDB [vsftpd]> insert into users(name,password) values(‘vsftpd1‘,password(‘magedu‘));        #插入用户vsftpd1            
Query OK, 1 row affected (0.02 sec)

MariaDB [vsftpd]> select * from users;
+----+---------+-------------------------------------------+
| id | name    | password                                  |
+----+---------+-------------------------------------------+
|  1 | vsftpd1 | *6B8CCC83799A26CD19D7AD9AEEADBCD30D8A8664 |
+----+---------+-------------------------------------------+
1 row in set (0.00 sec)

5、pam-mysql配置

[[email protected] pam_mysql-0.7RC1]# vim /etc/pam.d/vsftpd         #编辑配置文件,添加如下两行
auth required /lib64/security/pam_mysql.so user=vsftpd passwd=magedu host=10.18.11.29 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /lib64/security/pam_mysql.so user=vsftpd passwd=magedu host=10.18.11.29 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

6、修改vsftp配置

[[email protected] /]# useradd -s /sbin/nologin -d /var/ftproot vuser        #建立虚拟用户映射的系统用户及对应目录
[[email protected] /]# chmod go+rw /var/ftproot
[[email protected] /]# vim /etc/vsftpd/vsftpd.conf         #修改vsftpd配置文件
guest_enable=YES        #允许虚拟用户账号访问
guest_username=vuser        #gusest用户映射为vuser
max_clients=200        #最多同时允许100个客户连接          
anonymous_enable=YES        #允许匿名用户访问
local_enable=YES
anon_max_rate=512000        #限制anonymous传输速率为512KB/s     
anon_upload_enable=NO        #anonymous是否具有上传的权限
anon_mkdir_write_enable=NO        #anonymous是否具有建立目录的权限
anon_other_write_enable=NO        #anonymous是否具有写入的权限
chroot_local_user=YES        #对用户访问只限制在主目录不能访问其他目录
user_config_dir=/etc/vsftpd/vusers    #虚拟账号配置目录
pam_service_name=vsftpd.mysql

[[email protected] vusers]# vim /etc/vsftpd/vusers/vsftpd1         #配置虚拟账号权限
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

7、运行结果

[[email protected] /]# ftp 10.18.11.29
Connected to 10.18.11.29 (10.18.11.29).
220 (vsFTPd 3.0.2)
Name (10.18.11.29:root): vsftpd1        #用虚拟账号登陆
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> lcd /shell/
Local directory now /shell
ftp> get test        #下载文件
local: test remote: test
227 Entering Passive Mode (10,18,11,29,195,159).
150 Opening BINARY mode data connection for test (0 bytes).
226 Transfer complete.
ftp> put case.sh         #上传文件
local: case.sh remote: case.sh
227 Entering Passive Mode (10,18,11,29,234,27).
150 Ok to send data.
226 Transfer complete.
365 bytes sent in 9.2e-05 secs (3967.39 Kbytes/sec)
ftp>
时间: 2024-08-08 09:34:49

第十周作业【Linux微职位】的相关文章

软件工程_东师站_第十周作业

一.PSP Data Type Job start Int End Total 20160510 助教 团队作业二 20:00 5 21:00 55 20160511 助教 团队作业二.三 18:45 16 20:45 104 20160512 耐撕 站立会议 18:15   18:35 20 二.进度条   代码行数 博客字数 知识点 第一周 400 430 见我博客软件工程——师大站1 第二周 0 5200 见我博客软件工程_东师站_课堂笔记 第三周 0 63 站立会议.单元测试 第四周 1

第十周作业补做

20165326第十周课上测试补做 知识点简介 课上代码 1 2 ch15代码分析 ch15课后习题 (1)使用堆栈结构输出an的若干项,其中a_n=2a_n-1+2a_n=2a_(n-1)+2a_(n-2),a_1=3,a_2=8 import java.util.*; public class E1 { public static void main(String[] args) { Stack<Integer> stack = new Stack<Integer>(); st

第十二、十三周作业【Linux微职位】

一.结合图形描述LVS的工作原理: lvs-nat模型 主要是修改目标IP地址为挑选出新的RS的IP地址.即请求进入负载均衡器时做DNAT,响应出负载均衡器时做SNAT. 1.当用户请求到达Director Server,此时请求的数据报文会先到达内核的PREROUTING链,此时报文的源IP是CIP,目标IP是VIP. 2.PREROUTING链检查发现数据包的目标IP是本机,将数据包送至INPUT链. 3.IPVS内核模块比对数据包请求的服务是否为集群服务,如果是,则修改数据包的目标IP为后

第五周作业【Linux微职位】

一.请描述网桥.集线器.二层交换机.三层交换机.路由器的功能.使用场景与区别. 网桥(Bridge) 网桥是第2层的设备,它设计用来创建两个或多个LAN分段.其中,每一个分段都是一个独立的冲突域.网桥设计用来产生更大可用宽带.它的目的是过滤LAN的通信流,使得本地的通信流保留在本地,而让那些定向到LAN其他部分(分段)的通信流转发到那里去.每一台网络设备在NIC(网络接口卡)中都有一个惟一的MAC(介质访问控制)地址.网桥会记录它每一边的MAC地址,然后基于这张MAC地址表作出转发决策.网桥已被

Linux系统管理第七周作业【Linux微职位】

1.写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin):分别这两类用户的个数:通过字符串比较来实现: [[email protected] ~]# vim usershell.sh #!/bin/bash # declare -i nologin_num=0 declare -i login_num=0 for i in $(cut -d: -f7 /etc/passwd);do     if [ "$i" == &

Linux系统管理第六周作业【Linux微职位】

1.请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) CentOS系统启动流程如下: POST --> Boot Sequence(BIOS) --> Boot Loader(MBR) --> GRUB --> Kernel(ramdisk) --> rootfs --> switchroot --> /sbin/init --> (/etc/inittab, /etc/init/*.conf) --> 设定默认运行级别 --&g

Linux服务及安全管理第九周作业【Linux微职位】

1.请描述一次完整的http请求处理过程: (1)建立或处理连接:接收请求或拒绝请求: (2)接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程: (3)处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息: (4)访问资源:获取请求报文中请求的资源: (5)构建响应报文: (6)发送响应报文: (7)记录日志: 2.httpd所支持的处理模型有哪些,他们的分别使用于哪些环境. MPM:Multipath Processing Modules(多路处理模块)

Linux系统管理第五周作业【Linux微职位】

1.请描述网桥.集线器.二层交换机.三层交换机.路由器的功能.使用场景与区别. 网桥(Network Bridge):工作在OSI模型的第二层数据链路层,主要用于将两个局域网(LAN)连起来,根据MAC地址来转发帧(Frame).它可以有效地联接两个局域网,使本地通信限制在本网段内,并转发相应的信号至另一端.网桥主要用于联接数量不多.同一类型的网段. 集线器(Hub):工作在OSI的第一层物理层,主要用于对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上

Linux基础入门第二周作业【Linux微职位】

1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 1.目录管理类的命令: mkdir:创建目录 常用参数: -p: 自动按需创建父目录 -v: 显示详细过程 -m MODE:直接给定权限 [[email protected] ~]# mkdir -pv -m 600 /tmp/a/b mkdir: created directory '/tmp/a' mkdir: created directory '/tmp/a/b' [[email protected] ~]#