Linux第十週微職位

一、創建samba共享,共享目錄爲/data,要求:(描述完整的過程)mysql

1)共享名爲shared,工做組爲magedu;sql

2)添加組develop,添加用戶gentoo,centos和ubuntu,其中gentoo和centos以develop爲附加組,ubuntu不屬於develop組;密碼均爲用戶名;shell

3)添加samba用戶gentoo,centos和ubuntu,密碼均爲「mageedu」;數據庫

4)此samba共享shared僅容許develop組具備寫權限,其餘用戶只能以只讀方式訪問;ubuntu

5)此samba共享服務僅容許來自於172.16.0.0/16網絡的主機訪問;vim

  1. 創建共享samba目錄文件,建立工做組,添加用戶:centos

    ]# mkdir -pv /data/sharedbash

    [root@localhost CA]# groupadd develop服務器

    [root@localhost CA]# useradd -G develop gentoo網絡

    [root@localhost CA]# useradd -G develop centos

    [root@localhost CA]# useradd ubuntu

    [root@localhost CA]# echo gentoo | passwd --stdin gentoo

    更改用戶 gentoo 的密碼 。

    passwd:全部的身份驗證令牌已經成功更新。

    [root@localhost CA]# echo gentoo | passwd --stdin centos

    更改用戶 centos 的密碼 。

    passwd:全部的身份驗證令牌已經成功更新。

    [root@localhost CA]# echo gentoo | passwd --stdin ubuntu

    更改用戶 ubuntu 的密碼 。

    passwd:全部的身份驗證令牌已經成功更新。

2.安裝samba   :yum install samba

1)編輯smb.conf 文件 vim /etc/samba/smb.conf 

3 添加samba用戶gentoo,centos和Ubuntu,密碼爲各自用戶名:

wKioL1mi0MjATOdxAAApTh7ZGCg398.jpg

] # vim /etc/samba/smb.conf後面添加
       // 自定義共享:
           [shared]
           comment = shared  test  file
           path =  /data/shared
           writable =  yes
           guest ok =  yes

測試配置文件是否有錯誤及生效

#] testparm

4  啓動samba服務:]# systemctl start smb

5 配置共享文件權限:共享權限和文件系統權限兩者缺一不可.必須都擁有寫權限才能寫入.

[root@localhost ~]# setfacl -m group:develop:rwx /data/shared

[root@localhost ~]# set -m user:ubuntu:rx /data/shared

[root@localhost ~]# ls -ld /data/shared

drwxrwxr-x+ 2 root root 6 8月  28 05:49 /data/shared

6 交互式數據訪問:

wKioL1mi2jiCOGrhAABUcH6CdaU974.jpg

7 測試結果

  首先以一臺cent6客戶端分別用centos和Ubuntu用戶登陸samba服務,前者可上傳文件,後者則只讀:

wKioL1mi3CSRH7lWAABuKx69S04825.jpg

wKiom1mi3JmTidQzAAB97AUEj_Y967.jpg

二、搭建一套文件vsftp文件共享服務,共享目錄爲/ftproot,要求:(描述完整的過程)

1)基於虛擬用戶的訪問形式;

2)匿名用戶只容許下載,不容許上傳;

3)禁錮全部的用戶於其家目錄當中;

4)限制最大併發鏈接數爲200:;

5)匿名用戶的最大傳輸速率512KB/s

6)虛擬用戶的帳號存儲在mysql數據庫當中。

7)數據庫經過NFS進行共享

實驗環境以下

ip
用途
192.168.10.132
mysql+vsftp
192.168.10.128 nfs

1 安裝nfs服務器

[root@cent6 /]# yum install nfsutil* rpcbind       #安裝nfs和rpcbind服務所需軟件包
[root@cent6 /]# mkdir /nfs        #建立共享文件夾
[root@cent6 ~]# groupadd -g 1001 mysql        #添加mysql組
[root@cent6 ~]# useradd -u 1001 -g 1001 mysql        #添加mysql用戶
[root@cent6 ~]# chown mysql:mysql /nfs        #修改/nfs屬組爲mysql,爲以後掛載到mysql服務器上作datadir作準備
[root@cent6 /]# vim /etc/exports        #編輯/etc/exports文件,添加權限
/nfs 192.168.10.132(rw,sync,fsid=0,no_root_squash)
[root@cent6 /]# systemctl start rpcbind.service        ##啓動rpcbind服務
[root@cent6 /]# systemctl start nfs-server.service        #啓動nfs服務

若是是Centos6的請注意

啓動rpcbind  rpcbind是6.0版本後默認的RPC服務,因此要先於nfs啓動。若是不啓動rpcidmap則會形成用戶權限的映射錯誤,用戶的權限看起來是一串數字。

#] /etc/init.d/rpcbind start

Starting rpcbind:                                          [  OK  ]

#] /etc/init.d/nfs start    

Starting NFS services:                                     [  OK  ]

Starting NFS mountd:                                       [  OK  ]

Starting NFS daemon:                                       [  OK  ]

Starting RPC idmapd:                                       [  OK  ]

2  客戶端掛載nfs文件夾

[root@localhost /]# mkdir /mydata/data   -pv        #建立掛載路徑
[root@localhost /]# mount -t nfs 192.168.10.128:/nfs /mydata/data        #掛載nfs目錄到/mydata/data  

若是提示錯誤爲mount.nfs: access denied by server while mounting

去nfs服務器修改,添加insecure便可,而後重啓nfs服務

[root@cent6 /]# vim /etc/exports        #編輯/etc/exports文件,添加權限
/nfs 192.168.10.132(insecure,rw,sync,fsid=0,no_root_squash)

3 安裝mysql

[root@localhost ~]# yum install -y mariadb mariadb-devel
[root@localhost ~]# groupadd -g 1001 mysql        #添加mysql組
[root@localhost ~]# useradd -u 1001 -g 1001 mysql        #添加mysql用戶
[root@localhost ~]# vim /etc/my.cnf        #修改mysql配置文件
[mysqld]

datadir=/mydata/data

socket=/var/lib/mysql/mysql.sock

character-set = utf8
user= mysql
[root@localhost /]# mysql_install_db --datadir="/mydata/data/"        #初始化mysql
[root@localhost /]# systemctl status mariadb.service        #啓動mysql

4 建立數據庫

MariaDB [(none)]> create database vsftpd;               
MariaDB [vsftpd]>  grant select on vsftpd.* to vsftpd@‘192.168.10.132‘ 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配置

[root@localhost pam_mysql-0.7RC1]# vim /etc/pam.d/vsftpd         #編輯配置文件,添加以下兩行
auth required /lib64/security/pam_mysql.so user=vsftpd passwd=magedu host=192.168.10.132 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /lib64/security/pam_mysql.so user=vsftpd passwd=magedu host=192.168.10.128 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

6 修改vsftp配置

[root@localhost /]# useradd -s /sbin/nologin -d /var/ftproot vuser        #創建虛擬用戶映射的系統用戶及對應目錄
[root@localhost /]# chmod go+rw /var/ftproot
[root@localhost /]# 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

[root@localhost vusers]# vim /etc/vsftpd/vusers/vsftpd1         #配置虛擬帳號權限
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

7 運行結果

[root@cent6 /]# ftp 192.168.10.132 Connected to 192.168.10.132 (192.168.10.132). 220 (vsFTPd 3.0.2) Name (192.168.10.132: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 (192,168,10,132,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 (192,168,10,132,234,27). 150 Ok to send data. 226 Transfer complete. 365 bytes sent in 9.2e-05 secs (3967.39 Kbytes/sec) ftp>
相關文章
相關標籤/搜索