從Linux小白到大牛——與狼共舞的日子13

馬哥教育網絡班21期+第13周課程練習

1、建立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共享服務僅允許來自于192.168.82.0/24網絡的主機訪問;


1.安裝samba
[root@web ~]# yum install samba.x86_64 -y

2.添加develop組,添加指定用戶
[root@web ~]# groupadd develop
[root@web ~]# useradd -s /sbin/nologin -G develop gentoo
[root@web ~]# echo "gentoo" | passwd --stdin gentoo
[root@web ~]# useradd -s /sbin/nologin -G develop centos
[root@web ~]# echo "centos"|passwd --stdin centos
[root@web ~]# useradd -s /sbin/nologin ubuntu
[root@web ~]# echo "ubuntu" |passwd --stdin ubuntu

3.添加samba用戶
[root@web ~]# smbpasswd -a gentoo
[root@web ~]# smbpasswd -a centos
[root@web ~]# smbpasswd -a ubuntu

4.創建共享目錄/data并設置權限
[root@web ~]# mkdir /data
[root@web ~]# setfacl -m g:develop:rwx /data

5.編輯samba配置文件
[root@web ~]# vim /etc/samba/smb.conf 
    workgroup = magedu
    hosts allow = 192.168.82.0/24
    [shared]
    comment = shared
    path = /data
    public =no
    writable = yes
    valid users = ubuntu,@develop
    read list = ubuntu
    write list = @develop

public = yes/no
說明:public用來指定該共享是否允許guest賬戶訪問。
write list = 允許寫入該共享的用戶
說明:write list用來指定可以在該共享下寫入文件的用戶。
例如:write list = ubuntu,@develop
valid users = 允許訪問該共享的用戶
說明:valid users用來指定允許訪問該共享資源的用戶。
例如:valid users = ubuntu,@develop(多個用戶或者組中間用逗號隔開,
                                如果要加入一個組就用“@+組名”表示。)
writable = yes/no
說明:writable用來指定該共享路徑是否可寫。


6.清空防火墻和selinux
[root@web ~]# iptables -F
[root@web ~]# service iptables save
[root@web ~]# setenforce 0
[root@web ~]# vim /etc/selinux/config
    SELINUX=permissive

7.啟動smb和nmb服務
[root@web ~]# service nmb start
[root@web ~]# service smb start

8.使用windows和linux客戶端測試
linux客戶端
[root@web ~]# smbclient //192.168.82.58/shared -U ubuntu
    smb: \> mkdir aaaa
    NT_STATUS_MEDIA_WRITE_PROTECTED making remote directory \aaaa
    smb: \> ls
      .   D0  Wed Aug 17 01:52:49 2016
      .. DR0  Tue Aug 16 19:29:05 2016
      aa  D0  Thu Aug 11 05:02:33 2016 
[root@web ~]# smbclient //192.168.82.58/shared -U gentoo
    smb: \> mkdir a
    smb: \> ls
      .   D0  Wed Aug 17 01:52:49 2016
      .. DR0  Tue Aug 16 19:29:05 2016
      aa  D0  Thu Aug 11 05:02:33 2016
      a   D0  Wed Aug 17 01:52:49 2016

        39371 blocks of size 1048576. 32252 blocks available
 
注:linux客戶端用exit退出,Windows客戶端用 net use * /del /y

Windows客戶端

從Linux小白到大?!c狼共舞的日子13 從Linux小白到大?!c狼共舞的日子13

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

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

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

  • 3)禁錮所有的用戶于其家目錄當中;

  • 4)限制最大并發連接數為200:;

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

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

  • 7)數據庫通過NFS進行共享。


環境:  RHEL6.4:ftp.example.com,192.168.82.58
       RHEL6.4:mysql.example.com,   192.168.82.57
       RHEL6.4:nfs.example.com, 192.168.82.56

1.在nfs上安裝nfs服務并共享出mysqldata目錄
[root@nfs ~]# yum install nfs-utils.x86_64 
            nfs-utils-lib-1.1.5-6.el6.x86_64  rpcbind-0.2.0-11.el6.x86_64 -y
[root@nfs ~]# chown 27.27 /mysqldata/
[root@nfs ~]# mkdir /mysqldata
[root@nfs ~]# vim /etc/exports
    /mysqldata 192.168.82.57(rw,no_root_squash)
[root@nfs ~]# service nfs start
[root@nfs ~]# chkconfig --add nfs
[root@nfs ~]# chkconfig nfs on


2.在mysql上安裝mysql服務

(1)掛載nfs共享出來的mysqldata目錄
[root@mysql ~]# showmount -e 192.168.82.56
Export list for 192.168.82.56:
/mysqldata 192.168.82.57
[root@mysql ~]# mkdir /mysqldata
[root@mysql ~]# vim /etc/fstab
    192.168.82.56:/mysqldata/mysqldata  nfs defaults,_netdev,vers=3  0 0
[root@mysql ~]# mount -a

(2)安裝mysql服務并創建數據庫和表
[root@sql ~]# yum install mysql-server.x86_64 -y
[root@mysql ~]# service mysqld start

[root@mysql ~]# mysql
        mysql> create database vsftpd;
        mysql> grant select on vsftpd.* to vsftpd@192.168.82.58 identified by 'magedu';
        mysql> flush privileges;
        mysql> use vsftpd;
        mysql> create table users (
        ->  id int AUTO_INCREMENT NOT NULL,
        ->  name char(20) binary NOT NULL,
        -> password char(48) binary NOT NULL,
        ->  primary key(id)
        ->  );
        mysql> insert into users(name,password) values('magedu1',password('magedu'));
        mysql> insert into users(name,password) values('magedu2',password('magedu'));



3.在ftp上安裝vsftp和pam_mysql
(1)配置epel的yum源
[root@ftp ~]# cat /etc/yum.repos.d/mirrors.aliyun.com_epel_6Server_x86_64_.repo 
    [mirrors.aliyun.com_epel_6Server_x86_64_]
    name=added from: http://mirrors.aliyun.com/epel/6Server/x86_64/
    baseurl=http://mirrors.aliyun.com/epel/6Server/x86_64/
    enabled=1
    gpgcheck=0

[root@ftp ~]# yum install vsftpd.x86_64 pam_mysql.x86_64 -y

(2)創建vsftp.mysql的pam配置文件
[root@ftp ~]# vim /etc/pam.d/vsftpd.mysql
        auth required /lib64/security/pam_mysql.so user=vsftpd 
              passwd=magedu host=192.168.82.57 db=vsftpd table=users 
              usercolumn=name passwdcolumn=password crypt=2
        account required /lib64/security/pam_mysql.so user=vsftpd 
              passwd=magedu host=192.168.82.57 db=vsftpd table=users 
              usercolumn=name passwdcolumn=password crypt=2

(3)創建vuser用戶
[root@ftp ~]# useradd -s /sbin/nologin -d /var/ftproot vuser
[root@ftp ~]# chmod go+rx /ftproot

(4)創建vsftp用戶的配置目錄和配置文件
[root@ftp ~]# mkdir /etc/vsftpd/vusers_config/
[root@ftp ~]# cd /etc/vsftpd/vusers_config/
[root@ftp vusers_config]# touch magedu1 magedu2
[root@ftp vusers_config]# vim magedu1
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
[root@ftp vusers_config]# vim magedu2
    anon_upload_enable=YES
    anon_mkdir_write_enable=NO
    anon_other_write_enable=NO

(5)備份并編輯vsftp的配置文件
[root@ftp ~]# cp /etc/vsftpd/vsftpd.conf{,.bak}
[root@ftp ~]# grep -v '^#' /etc/vsftpd/vsftpd.conf
    anonymous_enable=YES
    local_enable=YES
    write_enable=YES
    local_umask=022
    anon_umask=022
    anon_upload_enable=NO
    anon_mkdir_write_enable=NO
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    chroot_local_user=YES
    listen=YES

    pam_service_name=vsftpd.mysql
    userlist_enable=YES
    tcp_wrappers=YES
    guest_enable=yes#啟用來賓用戶
    guest_username=vuser#來賓用戶名字
    user_config_dir=/etc/vsftpd/vusers_config  #用戶配置文件的目錄
    max_clients=200 #最大并發數
    anon_max_rate=512   #匿名用戶最大傳輸速率


(6)重啟vsftp服務并加入開機啟動列表
[root@ftp ~]# service vsftpd restart
[root@ftp ~]# chkconfig vsftpd on

(7)測試vsftp的虛擬用戶和匿名用戶
測試ftp匿名用戶,可以下載不能上傳
[root@ftp ~]# ftp 192.168.82.58
    Connected to 192.168.82.58 (192.168.82.58).
    220 (vsFTPd 2.2.2)
    Name (192.168.82.58:root): ftp
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> ls
    227 Entering Passive Mode (192,168,82,58,201,37).
    150 Here comes the directory listing.
    drwxr-xr-x2 004096 Aug 17 09:04 pub
    226 Directory send OK.
    ftp> cd pub
    250 Directory successfully changed.
    ftp> put /aa
    local: /aa remote: /aa
    227 Entering Passive Mode (192,168,82,58,64,156).
    550 Permission denied.
    ftp> get aa
    local: aa remote: aa
    227 Entering Passive Mode (192,168,82,58,143,3).
    150 Opening BINARY mode data connection for aa (0 bytes).
    226 Transfer complete.

測試magedu1用戶可以上傳,下載,刪除等
[root@ftp ~]# ftp 192.168.82.58
    Connected to 192.168.82.58 (192.168.82.58).
    220 (vsFTPd 2.2.2)
    Name (192.168.82.58:root): magedu1
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> put aa
    local: aa remote: aa
    227 Entering Passive Mode (192,168,82,58,29,124).
    150 Ok to send data.
    226 Transfer complete.
    ftp> get aa
    local: aa remote: aa
    227 Entering Passive Mode (192,168,82,58,53,196).
    150 Opening BINARY mode data connection for aa (0 bytes).
    226 Transfer complete.
    ftp> delete aa
    250 Delete operation successful.

原創文章,作者:N21_孤狼,如若轉載,請注明出處:http://www.www58058.com/64923

(0)
N21_孤狼N21_孤狼
上一篇 2017-01-03 11:05
下一篇 2017-01-03 11:33

相關推薦

  • CentOS 7, lamp (php-fpm);(Blog 15)

    要求:
    (1) 三者分離于三臺主機;
    (2) 一個虛擬主機用于提供phpMyAdmin;另一個虛擬主機用于提供wordpress;
    (3) xcache

    2017-12-20
  • Linux Shell基礎腳本示例

    1、編寫腳本/root/bin/systeminfo.sh,顯示主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小.   2、編寫腳本/root/bin/backup.sh,可實現自動將/etc/目錄備份到/root/etcYYYY-mm-dd中.   3、編寫腳本/root/bin/disk.…

    Linux干貨 2016-08-15
  • 用戶與組

    一、用戶與組的概念 1、Linux多用戶,多任務的特性    Linux是多用戶多任務操作系統,多用戶多任務就是可在系統上建多個用戶,多個用戶可同一時間同一個系統互不影執行的響各自不同的任務。例如linux服務器上有root、www、ftp,四個用戶。同一時間內,root用戶在查看系統日志,管理維護系統,www用戶在修改自己的網頁程序,f…

    Linux干貨 2016-10-25
  • 操作系統概述

                                 操作系統概述 對于一個真正的計算機系統來說,我們可以說它是由硬件+軟件組成。沒有軟件的計算機,我們稱它為裸機。當然,它也干不成什么事。所以,要想使得計算…

    Linux干貨 2016-10-27
  • Homework Week-9 bash腳本之順序、選擇、循環

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash #Elephant echo "nologin users:" user1=$(cat /etc/passwd&n…

    Linux干貨 2016-10-17
  • linux中文本處理工具

      對于linux來講,文本處理是非常重要的,因為linux系統就是由無數的文件組成的,linux中一切皆文件。文件的處理方式有很多種,所以就有眾多的文本處理工具,各自作用于不同的文本處理方式。 一、查看文件命令:    cat命令:處理顯示文件內容,不改變原文件    cat命令常用于查看文件內容,也可通過…

    Linux干貨 2016-08-08
欧美性久久久久