samba配置
1、什麼是samba
Samba服務類似於windows上的共享功能,可以實現在Linux上共享文件,windows上訪問,當然在Linux上也可以訪問到。
是一種在局域網上共享文件和打印機的一種通信協議,它爲局域網內的不同計算機之間提供文件及打印機等資源的共享服務。
2. 安裝配置samba
1)安裝
yum install -y samba samba-client
2)配置文件解說:
配置文件位置:/etc/samba/smb.conf
[global]:定義全局的配置
workgroup用來定義工作組,相信如果您安裝過windows的系統,你會對這個workgroup不陌生。一般情況下,需要我們把這裏的MYGROUP改成WORKGROUP(windows默認的工作組名字)。
Server string:Samba的名稱
security = user #這裏指定samba的安全等級。關於安全等級有四種:
share:用戶不需要賬戶及密碼即可登錄samba服務器
user:由提供服務的samba服務器負責檢查賬戶及密碼(默認)
server:檢查賬戶及密碼的工作由另一臺windows或samba服務器負責
domain:指定windows域控制服務器來驗證用戶的賬戶及密碼。
passdb backend = tdbsam # passdb backend(用戶後臺),samba有三種用戶後臺:smbpasswd, tdbsam和ldapsam.
3. samba配置文件
關於smbpasswd 參考文章:
http://blog.yam.com/gavint/article/27397099
http://www.cnblogs.com/linuxbo/p/4290996.html
smbpasswd:該方式是使用smb工具smbpasswd給系統用戶(真實用戶或者虛擬用戶)設置一個Samba密碼,客戶端就用此密碼訪問Samba資源。smbpasswd在/etc/samba中,需要手工創建該文件。
cat /etc/passwd | mksmbpasswd.sh >/etc/samba/smbpasswd
tdbsam:使用數據庫文件創建用戶數據庫。數據庫文件叫passdb.tdb,在/etc/samba中。passdb.tdb用戶數據庫可使用smbpasswd -a :創建Samba用戶,要創建的Samba用戶必須先是系統用戶。也可使用pdbedit創建Samba賬戶。(注意,使用smbpasswd -a username 這個同樣也是tdbsam,並非上面的那種)
pdbedit參數很多,列出幾個主要的:
pdbedit -a username:新建Samba賬戶。
pdbedit -x username:刪除Samba賬戶。
pdbedit -L:列出Samba用戶列表,讀取passdb.tdb數據庫文件。
pdbedit -Lv:列出Samba用戶列表詳細信息。
pdbedit -c “[D]” -u username:暫停該Samba用戶賬號。
pdbedit -c “[]” -u username:恢復該Samba用戶賬號。
ldapsam:基於LDAP賬戶管理方式驗證用戶。首先要建立LDAP服務,設置 “passdb backend = ldapsam:ldap://LDAP Server”
load printers 和 cups options 兩個參數用來設置打印機相關。
除了這些參數外,還有幾個參數需要你瞭解:
netbios name = MYSERVER # 設置出現在網上鄰居中的主機名
hosts allow = 127. 192.168.12. 192.168.13. 172.16.# 用來設置允許的主機,如果在前面加 ”;” 則表示允許所有主機
log file = /var/log/samba/%m.log #定義samba的日誌,這裏的%m是上面的netbios name
max log size = 50 # 指定日誌的最大容量,單位是K
[homes]:該部分內容共享用戶自己的家目錄,也就是說,當用戶登錄到samba服務器上時實際上是進入到了該用戶的家目錄,用戶登陸後,共享名不是homes而是用戶自己的標識符,對於單純的文件共享的環境來說,這部分可以注視掉。
[printers] 該部分內容設置打印機共享。
4. samba實踐一
要求共享一個目錄,任何人都可以訪問,即不用輸入密碼即可訪問,要求只讀
1)編輯要/etc/samba/smb.conf文件,把[global]部分 MYGROUP 改爲WORKGROUP
2)把security = user 改爲 security = share (就是所有人都可以訪問)
3)在配置文件 末尾處加入一下代碼:
[share]
comment = share all
path = /tmp/samba #共享samba這個目錄
browseable = yes
public = yes #是否可瀏覽
writable = no #不可寫,只能瀏覽
用井號(#)或者分號(;)註釋掉homes和printers下的代碼
4)創建samba目錄
[root@mysql ~]# mkdir /tmp/samba
在samba目下創建一個文本文件
[root@mysql ~]# touch /tmp/samba/cheng.txt
5)給samba目錄授權
[root@mysql ~]# chmod 777 /tmp/samba/
6)啓動samba服務
[root@mysql ~]# /etc/init.d/smb start
7)測試,在Windows中訪問
5、Linux訪問Samba共享文件
在Linux系統訪問需要安裝客戶端測試
yum install -y samba-client
1)匿名訪問格式
smbclient //IP/共享名稱 -U用戶名
匿名訪問不需要加-U
[root@chenglinux ~]#smbclient //192.168.21.97/share Enter root's password: #這裏提示輸入密碼,不用管直接回車就可以 Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-14.el6_6] Server not using user level security and no password supplied. smb: \> ls . D 0 Sun Jun 28 10:45:00 2015 .. D 0 Sun Jun 28 10:52:38 2015 CT1AUF~P 0 Sun Jun 28 11:59:52 2015 cheng.txt 0 Sun Jun 28 10:45:00 2015 40061blocks of size 524288. 33356 blocks available
2)在Linux系統下掛載samba
需要安裝cifs-utils庫
yum install -y cifs-utils
掛載
[root@chenglinux ~]#mount -t cifs //192.168.21.97/share /mnt/ Password: #這裏提示輸入密碼,直接回車就可以了
是用df -h查看掛載狀況
6、實踐二
要求匿名訪問,可讀可寫
1) 修改[share] 中的文件
writable = no修改爲 writable = yes
2) 退出保存,然後在重啓samba服務
[root@mysql ~]# /etc/init.d/smb restart
3)測試
將以nobody的身份創建文件
7、實驗三
要求共享一個目錄,任何人都可以訪問,即不用輸入密碼即可訪問,要求只讀
1)需要修改/etc/samba/smb.conf配置文件,部分內容修改成如下配置:
修改內容如下:
[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
security = user
passdb backend = tdbsam
load printers = yes
cups options = raw
2)把實驗一末尾加上的代碼可以註釋掉,如果沒有實驗一呢就不用管
3)在配置文件末尾加上以下代碼
代碼如下:
[myshare]
comment = share for users
path = /samba
browseable = yes
writable = yes
public = no
保存,退出重啓samba服務
4)創建Samba目錄
[root@mysql ~]# mkdir /samba
5)授權
[root@mysql ~]# chmod 777 /samba/
6)創建系統用戶,需要注意的是創建的系統用戶可以登錄samba服務的共享
創建系統用戶a和b
[root@mysql ~]# useradd a
[root@mysql ~]# useradd b
7)添加用戶a爲Samba賬號。需要注意的是在[globa]中,“passwd backend = tdbsam”,所以這裏也要只是用
pdbedit來增加用戶
[root@mysql ~]#pdbedit -a a new password: #這是是輸入登錄samba的密碼,不是系統密碼 retype new password: Unix username: a NT username: Account Flags: [U ] User SID: S-1-5-21-741379161-325660159-305581886-1000 Primary Group SID: S-1-5-21-741379161-325660159-305581886-513 Full Name: Home Directory: \\mysql\a HomeDir Drive: Logon Script: Profile Path: \\mysql\a\profile Domain: MYSQL Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: 三, 06 2月 2036 23:06:39 CST Kickoff time: 三, 06 2月 2036 23:06:39 CST Password last set: 日, 28 6月 2015 13:29:02 CST Password can change: 日, 28 6月 2015 13:29:02 CST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
8)重啓samba服務
[root@mysql ~]# /etc/init.d/smb restart
9)登錄
Linux系統:
[root@chenglinux ~]# smbclient //192.168.21.97/myshare -U a Enter a's password: #這提示輸入密碼了 Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-14.el6_6] smb: \> ls . D 0 Sun Jun 28 13:22:44 2015 .. DR 0 Sun Jun 28 13:22:44 2015 40061 blocks of size 524288. 33356 blocks available smb: \>
在Windows上測試也成功
筆記有錯誤的地方還請大神指正,小白會繼續修改