Linux笔记:文件共享服务Samba基础使用
文章目錄
- 目的
- 基礎使用
- 軟件包安裝
- 獨立服務器
- 客戶端
- 總結
目的
linux中目前還比較常用的文件共享服務主要就是NFS和Samba,但其實NFS一般也就linux間用用,Samba通常是一個更加好的選擇,可以方便的在linux和windows間進行文件共享。(現在還有一種WebDav也不錯)
下面內容將以Raspbian進行介紹,同系列的發行版(Debian、Ubuntu、Minit、Deepin等)都可以參考下面的方式,不同系類的可能安裝方式或包名稱有所差異。我這里演示中Samba版本是4.9.5-Debian,不同版本下可能也會有所差異。
基礎使用
軟件包安裝
在Raspbian中可以使用下面命令安裝Samba軟件包:
sudo apt install samba smbclient
如果沒有發現軟件包請嘗試更新:
sudo apt update
后面使用中有問題可以嘗試用下面命令:
sudo apt install acl attr samba samba-dsdb-modules samba-vfs-modules winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user
獨立服務器
Samba當服務器使用時可以工作在多種模式下,最常用的就是作為獨立服務器(standalone server)使用,這里也將以此作為基礎進行介紹。Samba當服務器使用最主要的就是對 /etc/samba/smb.conf 文件進行配置,默認情況下該文件大概是這個樣子的:
# 以#開頭的內容是注釋文本 # 以;開頭的內容是注釋掉的語句# [global]后面包含的語句為全局參數配置 [global]# 作為獨立服務器使用server role = standalone server# 保持samba和unix密碼同步unix password sync = yes# 密碼錯誤的訪問將被拒絕;如果用戶名也不存在則會被當作是訪客map to guest = bad user# [homes]節點啟用默認設置下每個用戶都可以且僅可以看到和操作自己的home目錄 # 這臺設備中名為naisu的用戶可以在其它設備中用 \\本機IP\naisu的方式遠程訪問自己的home目錄 ;[homes] ; comment = Home Directories ; browseable = no ; read only = yes ; create mask = 0700 ; directory mask = 0700 ; valid users = %S# [printers]分享打印機,用不到的話這些內容都可以刪掉或用;注釋掉 [printers]... # [print$]分享打印機驅動,用不到的話這些內容都可以刪掉或用;注釋掉 [print$]默認的smb.conf文件注釋很詳細,基本上只要能了解 以 # 和 ; 開頭的都是注釋 , 以 [global] 起始的段落都是全局參數配置 , 剩下的 以 [] 標簽為首的段落是一條分享規則 這三條規則就行。我們想要分享目錄也只要編寫一個以 [] 標簽為首的段落就行。
使用下面配置是一個最簡單的Samba共享示例:
[global]# 密碼錯誤的訪問將被拒絕;但如果用戶名也不存在則會被當作是訪客map to guest = bad user# 客戶端通過地訪問時顯示的目錄名稱為guest [guest]# 指定要共享的目錄路徑path = /home/pi/Desktop/guest/# 可讀可寫read only = no# 可以匿名訪問guest ok = yes每次更改smb.conf文件后可以使用 testparm 指令測試該文件的參數是否符合規范,以及顯示文件中起效的參數:
上面配置中配置了可匿名登陸并且可寫入的權限,但讀寫權限還和目錄本身的權限有關:
完成設置以后可以使用 smbd 讓Samba服務套用更改:
上面就是Samba最基本的使用了,隨便輸個用戶名就可以訪問了,也不需要密碼,如果只是自己的內網中自己用用這樣就可以了,如果是在公共環境的話通常來說最好還是設置上賬號密碼這些。
使用Samba分享目錄時如果需要設置訪問的賬號,這個賬號首先得是這臺設備上已經有的賬號,使用 sudo smbpasswd -a 命令可以將已有的用戶添加到Samba數據庫:
使用下面配置是一個最簡單的需要賬號密碼的Samba共享示例:
上面兩個是最簡單的例子了,實際使用中我們可能還會對不同用戶設置不同的共享目錄等,比如下面這樣:
這里我使用 sudo useradd -M -s /sbin/nologin naisu 創建了一個沒有home目錄,且允許登陸的名為naisu的用戶,然后使用 sudo smbpasswd -a naisu 將它添加到samba中,然后進行測試(windows中刪除已登錄的smb賬號有點糾結,下面沒能完整測試不同賬號的情況):
smb.conf文件可設置的參數非常多,可以通過 man smb.conf 來查看。更多內容可以參考下面鏈接:
https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html
https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Standalone_Server
作為Samba服務器我們可以使用 sudo smbstatus 來查看客戶端接入情況。
客戶端
在linux中可以使用smbclient完成samba所有客戶端功能,但通常我們只是用 smbclient -L //IP地址 -U 用戶名 或者 smbclient -L //IP地址 -U 用戶名%密碼 的方式來查看某個服務器分享的情況:
訪問samba服務共享目錄我們可以使用 mount -t cifs //IP地址/目錄 /掛載點 -o username=,password= 方式來掛載,同樣的卸載就是用 umount了:
總結
Samba具體的功能選項等非常多,更多內容可以參考下面鏈接:
https://www.samba.org/samba/
https://wiki.samba.org/index.php/Main_Page
http://cn.linux.vbird.org/linux_server/0370samba.php
總結
以上是生活随笔為你收集整理的Linux笔记:文件共享服务Samba基础使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gmail附件调用_如何将Gmail附件
- 下一篇: Linux同步系统时间