從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客戶端
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.