samba是一個實現不同操作系統之間文件共享和打印機共享的一種SMB協議的免費軟件。
●安裝samba,samba-client和cifs-utils.x86_64
此步將自動安裝好相關依賴包:samba-common、libsmbclient
yum install –y samba samba-client samba-winbind-clients.x86_64 cifs-utils.x86_64
OR
apt install samba samba-client samba-winbind-clients.x86_64 cifs-utils.x86_64
說明:
samba-common:主要提供samba服務器的設置文件與設置文件語法檢驗程序testparm
samba-client:客戶端軟件,主要提供linux主機作為客戶端時,所需要的工具指令集
samba:服務器端軟件,主要提供samba服務器的守護程序,共享文檔,開機默認選項。
(1),使用linux訪問windows下的共享文件。
運行samba,然后 ctrl+l ;在提示框里面這樣輸入:
smb : //windows的ip地址。
例:smb://192.168.0.2/
(2),Linux下通過smbclient訪問windows共享目錄
1,列出某個IP地址所提供的共享文件夾
smbclient -L 198.168.0.1 -U username -W domain (會提示輸密碼)
smbclient -L 198.168.0.1 -U username%password -W domain
2,像FTP客戶端一樣使用smbclient
smbclient //192.168.0.1/tmp -U username -W domain (會提示輸密碼)
smbclient //192.168.0.1/tmp -U username%password -W domain
執行smbclient命令成功后,進入smbclient環境,出現提示符: smb:/>
這里有許多命令和ftp命令相似,如cd 、lcd、get、megt、put、mput等。
通過這些命令,我們可以訪問遠程主機的共享資源。
3,直接一次性使用smbclient命令
smbclient -c "ls" //192.168.0.1/tmp -U username%password
和
smbclient //192.168.0.1/tmp -U username%password
smb:/>ls
功能一樣的
例,創建一個共享文件夾
smbclient -c "mkdir share1" //192.168.0.1/tmp -U username%password
如果用戶共享//192.168.0.1/tmp的方式是只讀的,會提示
NT_STATUS_ACCESS_DENIED making remote directory /share1
(3),掛載windows共享目錄(smbfs、cifs)
Linux kernel2.6.29之后,smbfs將從內核中取消,將被cifs(Common Internet File System)代替。
①使用smbfs文件系統
Linux客戶端要連接samba或windows文件服務器時,需使用smbmount或mount指令:
▪【mount的用法】
mount -t smbfs -o username=用戶名,password=密碼 , -l //ip地址/共享文件夾名 掛載點
或
mount -t smbfs -o username=用戶名,password=密碼 , -l //計算機名/共享文件夾名 掛載點
或
mount -t smbfs -o //ip地址或計算機名/共享文件夾名 掛載點
【例】:
mount -t smbfs -o username=administrator,password=password //sambaserver/sharefolder /mnt/share
mount -t smbfs -o username=aaa%bbb //sambaserver/sharefolder /mnt/share
mount -t smbfs -o username=administrator,password=password //Windows_OS/sharefolder /mnt/share
mount -t smbfs -o username=aaa%bbb //Windows_OS/sharefolder /mnt/share
▪【smbmount的用法】
smbmount -o username=用戶名,password=密碼 , -l //ip地址或計算機名/共享文件夾名 掛載點
或
smbmount //ip地址或計算機名/共享文件夾名 掛載點
【例】:
smbmount //sambaserver/sharefolder /mnt/share -o username=administrator,password=password
smbmount //sambaserver/sharefolder /mnt/share -o username=administrator%password
smbmount //Windows_OS/sharefolder /mnt/share -o username=administrator,password=password
smbmount //Windows_OS/sharefolder /mnt/share -o username=administrator%password
使用mount命令完成,如(必須給出具體的windows共享名,可以通過前面介紹的smbclient獲得共享名):
# mount -o guest -t smbfs //192.168.0.20/linux /mnt/win_share
★附加說明
1,為了能正確顯示中文,以utf8為locale的用戶(如果使用Ubuntu或Fedora,默認就是utf8的locale)
加入以下選項:codepage=cp936和iocharset=utf8,即mount命令為:
# mount -o guest,iocharset=utf8,codepage=cp936 -t smbfs //192.168.0.2/linux /mnt/win_share
之所以這樣寫,是因為遠端使用的編碼是cp936,而本地使用的是utf8。
2,以gbk為locale的用戶則
# mount -o guest,iocharset=cp936,codepage=cp936 -t smbfs //192.168.0.2/linux /mnt/win_share
這樣寫的原因是遠端和本地都是cp936
[注意]:
1. 指定uid或gid參數,也能指定用戶的身份(uid=后面可接uid號或用戶名),如:
smbmount //test/d /mnt/d -o uid=grind
2. smbmount也能寫作mount.smbfs,這是個符號鏈接;
3. smbmount的參數必須寫在最后,而mount的參數位置能變化;
4. 由於//sambaserver/d格式能表明是要mount上smbfs,所以mount的-t smbfs參數能省掉;
5. 如果命令行中不加入密碼,下一行中系統會提示你輸入;
▪【使用例】:
1.首先在windows上共享一個目錄,如:共享了目錄share,用戶和密碼是:administrator/abc123
2.在linux機器上,在/mnt目錄下建立一個win目錄,使用root用戶,執行下面命令:
mount -t smbfs -o username=administrator,password=abc123 //192.168.1.1/share /mnt/win
這是你就可以在/mnt/win看到了windows上共享的數據了。
3.自動掛載,編輯 vi /etc/fstab, 在最后面加入:
//192.168.1.1/share /mnt/win smbfs defaults,auto,username=administrator,password=abc123 0 0
這樣linux機器重新啟動都可以自動掛載windows上的共享目錄
②使用cifs文件系統
▪安裝
apt-get install cifs-utils
OR
yum install –y cifs-utils.x86_64
1. 執行命令mount實現cifs
sudo mount -t cifs -o username=登錄windows共享文件夾用戶名,password=登錄windows共享文件夾密碼 //windows共享主機IP地址/windows共享文件夾名稱 /Ubuntu下的一個目錄
2. 重啟系統的時候自動mount, 將下面命令行添加到/etc/fstab里。
//windows共享主機IP地址/windows共享文件夾名稱 /Ubuntu下的一個目錄 cifs defaults,username=登錄windows共享文件夾用戶名,password=登錄windows共享文件夾密碼 0 2
添加完成后執行: sudo mount -a
例:
1,把samba服務器或windows系統的共享文件,掛載到samba客戶端。
mount -t cifs -o username="root",password="123456" //10.10.04.15/test /mnt/share/