samba 檔案共享(共享檔案夾)
完成了windows和linux的檔案共享
配置SMB共享
Samba軟體項目
用途:為客戶機提供共享使用的檔案夾
協定:SMB(TCP 139),CIFS(TCP 445)
所需軟體包:samba
系統服務:smb
在RHCE7 中有這樣一道題:
搭建基本的samba服務
通過 Samba 釋出共享目錄
在 system1 通過 SMB 共享/common 目錄:
您的 SMB 伺服器必須是 STAFF 工作組的一個成員
共享名必須為 common
隻有 example.com 域内的用戶端可以通路 common 共享
common 必須是可以浏覽的
使用者 harry 必須能夠讀取共享中的内容,如果需要的話,驗證的密碼是 migwhisk
1.安裝samba軟體包
[root@system1 ~]# yum -y install samba
2.建立samba的共享帳号 與系統使用者名相同 但有獨立密碼
使用pdbedit管理工具
添加使用者:pdbedit -a 使用者名
查詢使用者:pdbedit -L [使用者名]
删除使用者:pdbedit -x 使用者名
[root@system1 ~]# useradd -s /sbin/nologin harry#防止使用者直接登陸作業系統
[root@system1 ~]# grep 'harry' /etc/passwd
harry:x:1003:1004::/home/harry:/sbin/nologin
[root@system1 ~]# pdbedit -a harry#添加Samba使用者
[root@system1 ~]# pdbedit -L#查詢是以Samba使用者
harry:1003:
3.修改配置檔案及參數
檔案路徑:/etc/samba/smb.conf
[root@system1 ~]# vim /etc/samba/smb.conf
...
workgroup = STAFF#89行 選改工作組 現在都不用了
[common]#321行 共享名
path = /common# 共享的實際路徑
[root@system1 ~]# mkdir /common
[root@system1 ~]# echo 'test' > /common/tset.txt
4.重新開機服務,并設定開機自啟
[root@system1 ~]# systemctl restart smb
[root@system1 ~]# systemctl enable smb.service
5.測試并通路
使用smbclient測試(一般直接挂載 不用裝包)
所需軟體包:samba-client
列出共享資源
smbclient -L 伺服器位址
連接配接到共享檔案夾
smbclient -U 使用者名 //伺服器位址/共享名
[root@system2 ~]# yum -y install samba-client.x86_64
[root@system2 ~]# smbclient -L //172.25.0.11
Enter root's password:
Anonymous login successful
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
Sharename Type Comment
--------- ---- -------
common #共享名 Disk #共享類型
IPC$ IPC IPC Service (Samba Server Version 4.1.1)
Server Comment
--------- -------
Workgroup Master
[root@system2 ~]# smbclient -U harry //172.25.0.11/common
Enter harry's password: #這裡輸入密碼
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \*#不能通路
6.SELinux: 布爾值(功能的開關)
getsebool 檢視SELinux開關
setsebool 控制SELinux開關
需要加 -P 選項才能實作永久設定 (記憶體太小會當機)
[root@system1 ~]# getsebool -a | grep samba 檢視
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off #隻讀
samba_export_all_rw --> off#
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
use_samba_home_dirs --> off
virt_sandbox_use_samba --> off
virt_use_samba --> off
[root@system1 ~]# setsebool -P samba_export_all_ro=on
[root@system1 ~]# getsebool -a | grep samba_export_all_ro
samba_export_all_ro --> on
Enter harry's password:
smb: \> ls#可以成功顯示配置檔案
. D 0 Mon Nov 6 10:43:17 2017
.. D 0 Mon Nov 6 10:42:56 2017
tset.txt N 5 Mon Nov 6 10:43:17 2017
40913 blocks of size 262144. 28492 blocks available
7.用戶端通路點
安裝軟體包cifs-utils
[root@system2 ~]# yum -y install cifs-utils.x86_64
修改/etc/fstab
[root@system2 ~]# mkdir /mnt/samba/
[root@system2 ~]# vim /etc/fstab
//172.25.0.11/common /mnt/samba cifs username=harry,password=123,_netdev 0 0
#_netdev 先啟動網絡 在完成挂載
驗證
[root@system2 ~]# mount -a
[root@system2 ~]# df -h
檔案系統 容量 已用 可用 已用% 挂載點
/dev/vda1 10G 3.1G 7.0G 31% /
devtmpfs 906M 0 906M 0% /dev
tmpfs 921M 80K 921M 1% /dev/shm
tmpfs 921M 17M 904M 2% /run
tmpfs 921M 0 921M 0% /sys/fs/cgroup
//172.25.0.11/common 10G 3.1G 7.0G 31% /mnt/samba
在RHCE7中還有這樣的一道題
配置多使用者Samba挂載
在 system1 通過 SMB 共享目錄/devops,并滿足以下要求:
共享名為 devops
共享目錄 devops 隻能被 example.com 域中的用戶端使用
共享目錄 devops 必須可以被浏覽
使用者 kenji 必須能以讀的方式通路此共享,該問密碼是 atenorth
使用者 chihiro 必須能以讀寫的方式通路此共享,通路密碼是 atenorth
此共享永久挂載在 system2.example.com 上的/mnt/dev 目錄,并使用使用者 kenji 作為認證。任何使用者可以通過使用者 chihiro 來臨時擷取寫的權限
為了友善了解 将這到題目分成兩部分進行實驗
1) chihiro 讀寫的方式通路此共享
1.建立samba的共享帳号
[root@system1 ~]# useradd -s /sbin/nologin kenji
[root@system1 ~]# useradd -s /sbin/nologin chihiro
[root@system1 ~]# pdbedit -a kenji
[root@system1 ~]# pdbedit -a chihiro
chihiro:1005:
kenji:1004:
2.修改配置檔案
[root@system1 ~]# vim /etc/samba/smb.conf
...
[devops]
path = /devops
write list = chihiro
[root@system1 ~]# mkdir /devops
[root@system1 ~]# echo dasfasd > /devops/123.txt
3.重新開機smb服務
[root@system1 ~]# systemctl restart smb.service
4.用戶端驗證
[root@system2 ~]# smbclient -L //172.25.0.11
Enter root's password:
Anonymous login successful
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
Sharename Type Comment
--------- ---- -------
common Disk
devops Disk
Server Comment
--------- -------
Workgroup Master
5.用戶端挂載
[root@system2 ~]# vim /etc/fstab
//172.25.0.11/devops /mnt/dev cifs username=chihiro,password=atenorth,_netdev 0 0
[root@system2 ~]# mkdir /mnt/dev
[root@system2 ~]# mount -a
[root@system2 ~]# df -h
檔案系統 容量 已用 可用 已用% 挂載點
/dev/vda1 10G 3.1G 7.0G 31% /
devtmpfs 906M 0 906M 0% /dev
tmpfs 921M 80K 921M 1% /dev/shm
tmpfs 921M 17M 904M 2% /run
tmpfs 921M 0 921M 0% /sys/fs/cgroup
//172.25.0.11/common 10G 3.1G 7.0G 31% /mnt/samba
//172.25.0.11/devops 10G 3.1G 7.0G 31% /mnt/dev
實作讀寫操作
[root@system1 ~]# setfacl -m u:chihiro:rwx /devops/#開啟目錄本地權限
[root@system1 ~]# getfacl /devops/
getfacl: Removing leading '/' from absolute path names
# file: devops/
# owner: root
# group: root
user::rwx
user:chihiro:rwx
group::r-x
mask::rwx
other::r-x
[root@system1 ~]# setsebool samba_export_all_rw=on#開啟SELinux samba 讀寫功能
[root@system1 ~]# getsebool -a | grep 'samba_export_all_rw'
samba_export_all_rw --> on
[root@system1 ~]# systemctl restart smb.service
2) multiuser 多使用者通路
管理者隻需要作一次挂載
用戶端在通路挂載點時,若需要不同權限,可以臨時切換為新的共享使用者
multiuser ,提供對用戶端多個使用者身份的區分支援
sec=ntlmssp ,提供NT區域網路管理安區支援
[root@system2 ~]# vim /etc/fstab
//172.25.0.11/devops /mnt/dev cifs username=kenji,password=123,_netdev,multiuser,sec=ntlmssp 0 0
[root@system2 ~]# umount /mnt/dev/
//172.25.0.11/devops 10G 3.1G 7.0G 31% /mnt/dev
[student@system2 /]$ cifscreds add -u chihiro 172.25.0.11
[student@system2 /]$ cd /mnt/dev/
[student@system2 dev]$ touch abc.txt
[student@system2 dev]$ ls
123.txt abc.txt
擴充
在windows作業系統中如果想要使用samba
關閉防火牆
運作----> 輸入\\172.25.0.11 ----->輸入上面建立的使用者名和密碼-----> 進入 進而實作windows 和Linux 檔案共享
本文轉自 Xuenqlve 51CTO部落格,原文連結:http://blog.51cto.com/13558754/2058701,如需轉載請自行聯系原作者