啓動服務:
systemctl start smb
service smb start
SAMBA 的功能:
共享文件和打印,實現在線編輯
實現登錄SAMBA 用戶的身份認證
可以進行NetBIOS 名稱解析
外圍設備共享
相關包:
Samba 提供smb 服務
Samba-client 客戶端 軟件
samba-common 通用軟件
cifs-utils smb 客戶端 工具
samba-winbind 和 和AD 相關
相關服務進程:
smbd 提供smb (cifs務 )服務 TCP:139,445
nmbd NetBIOS 名稱解析 UDP:137,138
主配置文件:/etc/samba/smb.conf
幫助參看:man smb.conf
語法檢查 例: testparm -v /etc/samba/smb.conf
宏定義:
%m 客戶端主機的NetBIOS名 %M 客戶端主機的FQDN
%H 當前用戶家目錄路徑 %U當前用戶用戶名
%g 當前用戶所屬組 %h samba服務器的主機名
%L samba 服務器的NetBIOS名 %I 客戶端主機的IP
%T 當前日期和時間 %S可登錄的用戶名
簡單的samba命令:
添加samba 用戶
smbpasswd -a <user>
pdbedit -a -u <user>
修改用戶密碼
smbpasswd <user>
刪除 用戶和密碼 :
smbpasswd –x <user>
pdbedit –x –u <user>
查看samba 用戶列表 :
/var/lib/samba/private/passdb.tdb
pdbedit –L –v
查看samba 服務器狀態
smbstatus
簡單的創建用戶,並用windows連接samba:
先啓服務
在centos6中創建用戶這裏創建了nologin類型的用戶
useradd -s /sbin/nologin smb1
用smbpasswd 命令添加爲samba服務的用戶,跟centos沒有關聯 : smbpasswd -a smb1 #並設置密碼
這樣就完了!!!!!!!完了!!!!!登陸就行了,可以用win鍵+R來運行這個,並輸入\\加剛纔開啓服務的ip地址回車登錄賬號密碼,好的成功!
這時候有個問題,若服務器有兩個samba賬號但是第二次用windows登陸卻不用輸密碼直接登錄!怎麼才能使用另外的賬號登錄呢,這就需要清除windows的緩存了
net use 查看連接
net use \\172.17.66.166\IPC$ /del 用該命令清除
之後再登陸一次可以再次輸入賬號密碼!
centos系統中連接命令需要安裝samba-client這個包
連接命令:smbclient //172.17.66.166/smb1 -U smb1
輸入密碼就行了
·/etc/samba/smb.conf 設置:
hosts allow = x.x.x.x #允許哪些主機可以訪問我
log file = /var/log/samba/log.%I #%I表示來訪者的IP地址若沒有log level 這個等級設定則不記錄日誌,來訪時只生成文件沒內容。
重新創建一個共享目錄:
共享目錄名[smbshare1]搜索可看到,實際目錄名/app/share1則看不到,兩者毫不相關!
comment #描述信息
read only = NO #默認只讀,想要讀寫則添加此行(writable=yes功能跟read only = No一樣)
·public = yes #不要賬號即能登陸,一般不用
valid users = smb1 smb2 #只允許這兩個用戶可以登陸,也可以使用linux用戶組,前提用戶已經加入到samba賬號裏面用@或+加上組名
invalid users #跟上面意思相反
browsable = No #不可查看(若知道名可以查看也可以登錄,查看全部時查看不到,隱藏文件)
write list = smb1 #不設置寫權限,則在此設置的用戶具有寫權限(例如1,2,3用戶valid user =1 ,2則3不能登陸,write list = 1 則2可以登陸不能寫,1能登陸能寫)
testparm 命令來測試文件內容
mount 掛載
mount -o username=smb1 //192.x.x.x/smb1 /mnt/smb1
·寫到fstab內:賬號密碼可以寫文件內fstab任何人可讀不安全
文件格式文件名隨意指定,但是兩邊要對應賬號密碼存放文件權限可設置爲400(僅自己可讀)
多用戶掛載:添加multiuser(在fstab文件內default列加上multiuser)選項多用戶掛載
在上面的例子中1,2,3用戶訪問權限不一樣的前提下
#在存放賬號密碼的文件內使用3用戶登錄(權限最小的),服務器客戶端都要存在這三個系統賬號,在客戶端切換到1(su - 1),本身是用3掛載權限最小,但是執行此命令(切換用戶在1上執行cifscreds add -u 1 192.168.x.x )代表使用1登錄samba,拿到讀和寫的權限。
用戶不同查看到的文件夾不同: (相當於一個用戶一個配置文件的感覺)
在全局[global]下添加:
config file = /etc/samba/conf.d/%U( %U 跟用戶同名的文件)
vim /etc/samba/conf.d/smb1
想使用幾個用戶創建幾個文件(跟用戶對應),文件內定義不同的路徑和權限,客戶端登錄則顯示不同的內容擁有不同的權限。