CentOS 7.2 安裝配置Samba服務器


1背景

轉Linux剛剛1年,vim操作還不能應對工程代碼,之前一直都是Gnome桌面 + Clion 作開發環境,無奈在服務器上沒有這樣的環境,

看同事是(Windows)Source Insight + WinSCP + Linux 開發,來回同步文件有點麻煩,所以想嘗試搭個Samba服務器做共享文件。

不過希望以后還是要轉到vim上來。

 

2環境

CentOS系統

[root@min-base ~]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 

 

Samba服務器

[root@min-base ~]# rpm -qi samba
Name        : samba
Epoch       : 0
Version     : 4.4.4
Release     : 9.el7
Architecture: x86_64
Install Date: Sun 18 Dec 2016 11:59:56 PM CST
Group       : System Environment/Daemons
Size        : 1869290
License     : GPLv3+ and LGPLv3+
Signature   : RSA/SHA256, Mon 21 Nov 2016 04:38:30 AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : samba-4.4.4-9.el7.src.rpm
Build Date  : Mon 07 Nov 2016 06:31:03 PM CST
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.samba.org/
Summary     : Server and Client software to interoperate with Windows machines
Description :
Samba is the standard Windows interoperability suite of programs for Linux and
Unix.

 

3安裝

[root@base ~]# yum -y install samba samba-client

 

4配置

進入samba配置目錄

[root@base ~]# cd /etc/samba/

 

備份smb.conf

[root@base samba]# mv smb.conf smb.conf.origin

 

新建smb.conf

[root@base samba]# vim smb.conf

內容如下,保存並退出

[global]
        workgroup = WORKGROUP
        server string = Ted Samba Server %v
        netbios name = TedSamba
        security = user
        map to guest = Bad User
        passdb backend = tdbsam

[FileShare]
        comment = share some files
        path = /smb/fileshare
        public = yes
        writeable = yes
create mask = 0644
directory mask = 0755 [WebDev] comment = project development directory path = /smb/webdev valid users = ted write list = ted printable = no create mask = 0644 directory mask = 0755

 注釋:

workgroup 項應與 Windows 主機保持一致,這里是WORKGROUP

security、map to guest項設置為允許匿名用戶訪問

再下面有兩個section,實際為兩個目錄,section名就是目錄名(映射到Windows上可以看見)。

第一個目錄名是FileShare,匿名、公開、可寫

第二個目錄嗎是WebDev,限定ted用戶訪問

默認文件屬性644/755(不然的話,Windows上在這個目錄下新建的文件會有“可執行”屬性)

 

創建用戶

[root@base samba]# groupadd co3
[root@base samba]# useradd ted -g co3 -s /sbin/nologin
[root@base samba]# smbpasswd -a ted
New SMB password:
Retype new SMB password:
Added user ted.
[root@base samba]# 

注意這里smbpasswd將使用系統用戶。設置密碼為1

 

創建共享目錄

[root@base samba]# mkdir -p /smb/{fileshare,webdev}
[root@base samba]# chown nobody:nobody /smb/fileshare/
[root@base samba]# chown ted:co3 /smb/webdev/

注意設置屬性,不然訪問不了。

 

啟動Samba服務,設置開機啟動

[root@base samba]# systemctl start smb
[root@base samba]# systemctl enable smb
Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.
[root@base samba]# 

 

開放端口

[root@base samba]# firewall-cmd --permanent --add-port=139/tcp
success
[root@base samba]# firewall-cmd --permanent --add-port=445/tcp
success
[root@base samba]# systemctl restart firewalld
[root@base samba]# 
 
        

或者直接把防火牆關了也行。

 

5使用

本機測試

可以使用testparm測試samba配置是否正確

[root@base samba]# testparm 
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[FileShare]"
Processing section "[WebDev]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
    netbios name = TEDSAMBA
    server string = Ted Samba Server %v
    map to guest = Bad User
    security = USER
    idmap config * : backend = tdb


[FileShare]
    comment = share some files
    path = /smb/fileshare
    guest ok = Yes
    read only = No


[WebDev]
    comment = project development directory
    path = /smb/webdev
    create mask = 0644

valid users = ted write list = ted [root@base samba]#

 

root用戶的話,不用密碼可直接查看samba服務器情況

[root@base samba]# smbclient -L localhost 
Enter root's password: 
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.4.4]

    Sharename       Type      Comment
    ---------       ----      -------
    FileShare       Disk      share some files
    WebDev          Disk      project development directory
    IPC$            IPC       IPC Service (Ted Samba Server 4.4.4)
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.4.4]

    Server               Comment
    ---------            -------

    Workgroup            Master
    ---------            -------
[root@base samba]# 

 

Linux訪問

Samba服務端配置

[root@min-base webdev]# vim /etc/samba/smb.conf

內容如下

[global]        
        workgroup = WORKGROUP
        server string = Samba Server Version %v
        netbios name = MYSERVER
        security = user
        passdb backend = tdbsam

[tvms]
        path = /root/tvms-test
        public = yes
        valid user = root
        writeable = yes
        printable = no
        create mask = 0644
        directory mask = 0755

 

在局域網內另外一台機器上,

掛載目錄

安裝cifs

[root@min-base ~]# yum -y install cifs-utils

 

掛載smb目錄

[root@min-base ~]# mkdir /mnt/tvms
[root@min-base ~]# mount //192.168.118.133/tvms /mnt/tvms
Password for root@//192.168.118.133/tvms:  *
[root@min-base ~]# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        18G  988M   17G   6% /
devtmpfs                devtmpfs  479M     0  479M   0% /dev
tmpfs                   tmpfs     489M     0  489M   0% /dev/shm
tmpfs                   tmpfs     489M  6.7M  483M   2% /run
tmpfs                   tmpfs     489M     0  489M   0% /sys/fs/cgroup
/dev/sda1               xfs       497M  117M  381M  24% /boot
tmpfs                   tmpfs      98M     0   98M   0% /run/user/0
//192.168.118.133/tvms  cifs       18G  8.5G  9.1G  49% /mnt/tvms
[root@min-base ~]# ll /mnt/tvms/
total 3952
drwxr-xr-x. 10 root root       0 Dec 21 03:40 suricata-3.1.2
-rw-r--r--.  1 root root 4042824 Dec 21 03:22 suricata-3.1.2.zip
[root@min-base ~]# 

輸入密碼:1

 

卸載目錄

[root@min-base mnt]# umount /mnt/tvms/

 

如果出現

umount: /mnt/tvms: target is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

 

可以使用fuser卸載

[root@min-base ~]# yum -y install psmisc
[root@min-base ~]# fuser -m -v -i -k /mnt/tvms
                          USER        PID ACCESS COMMAND
/mnt/tvms:                root     kernel mount /mnt/tvms
                          root       2760 ..c.. bash
Kill process 2760 ? (y/N) y

Connection closed by foreign host.

Disconnected from remote host(192.168.118.132) at 19:46:12.

Type `help' to learn how to use Xshell prompt.
[c:\~]$ 

Connecting to 192.168.118.132:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Wed Dec 21 03:27:53 2016 from 192.168.118.1
[root@min-base ~]# umount /mnt
[root@min-base ~]# df
Filesystem              1K-blocks    Used Available Use% Mounted on
/dev/mapper/centos-root  18307072 1011444  17295628   6% /
devtmpfs                   490236       0    490236   0% /dev
tmpfs                      500680       0    500680   0% /dev/shm
tmpfs                      500680    6836    493844   2% /run
tmpfs                      500680       0    500680   0% /sys/fs/cgroup
/dev/sda1                  508588  118860    389728  24% /boot
tmpfs                      100136       0    100136   0% /run/user/0

 

自動掛載目錄

[root@min-base ~]# vi /etc/fstab 

 

添加如下內容

//192.168.118.133/tvms  /mnt/tvms               cifs    defaults,username=root,password=1       0 0

 

重新掛載

[root@min-base ~]# mount -a
[root@min-base ~]# df
Filesystem              1K-blocks    Used Available Use% Mounted on
/dev/mapper/centos-root  18307072 1012316  17294756   6% /
devtmpfs                   490236       0    490236   0% /dev
tmpfs                      500680       0    500680   0% /dev/shm
tmpfs                      500680    6836    493844   2% /run
tmpfs                      500680       0    500680   0% /sys/fs/cgroup
/dev/sda1                  508588  118860    389728  24% /boot
tmpfs                      100136       0    100136   0% /run/user/0
//192.168.118.133/tvms   18307072 8819380   9487692  49% /mnt/tvms
[root@min-base ~]# 

 

Windows訪問

1)在Windwos資源管理器訪問

訪問路徑里填上: \\${Samba服務器的IP} ,然后回車,可以看見共享的目錄。

 

FileShare是可以匿名訪問的,可以訪問、新建、刪除文件。

這里拖進去一個txt文件,可以在Linux上看見該文件。

 

2)映射網絡驅動器

右邊的WebDev目錄是需要密碼訪問的

 

這里演示一下映射該目錄為網絡驅動器。

“桌面” 右鍵單擊“此電腦”,選擇“映射網絡驅動器”

在文件夾位置填寫該共享文件的網絡路徑,這里是\\192.168.118.132\WebDev

勾選“使用其他憑據連接”,點“完成”。

 

 

填寫用戶密碼

 

 在我的電腦可以看見該網絡驅動器(Y)

 

這里可以放源碼工程,然后用Windows下的IDE打開、編輯,再在Linux編譯、運行。

 

enjoy it~

以后有需求再補充Linux掛載samba共享目錄、權限配置等等。

 

6參考文獻

Linux Samba服務器配置

CentOS7安裝配置SAMBA服務器

CentOS7下Samba的安裝與配置

配置samba服務器,中加入了security=share,但是testparm輸出的信息里沒有這一條,客戶機也無法訪問

smb服務器目錄和文件權限設置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM