Samba服務搭建

Samba的相關原理請你們自行到網上查找,主要是講解如何搭建Samba服務
 
第一部分:Samba服務的控制選項
用戶控制
public = no 不容許匿名用戶訪問
browseable = yes 不隱藏目錄(知道目錄一樣能夠訪問) (系統默認yes,能夠不寫)
valid users = 用戶或列表或@用戶組
writable = yes 可寫(目錄自己要可寫)
writable list = 用戶或列表或@用戶組
readonly = yes 是否設置只讀(系統默認yes,能夠不寫)
create mask = 0744 控制客戶機建立文件的權限(系統默認0744)
directory mask = 0744 控制客戶機建立目錄的權限(系統默認0755)
訪問控制
max connections = 最大鏈接數目
deadtime = 斷掉鏈接時間(分鐘)0爲不限制
注:在全局裏增長
hosts deny = .sale.com .net free 表示禁止.sale.com域和.net域及主機名爲free的客戶端訪問
hosts deny = All 表示全部客戶端,並非說容許主機名爲ALL的客戶端能夠訪問。經常使用的通配符還有「*」,「?」,「LOCAL」等
hosts allow = 192.168.0. EXCEPT 192.168.0.100 192.168.0.78 表示容許192.168.0.0網段IP地址訪問,可是192.168.0.100和192.168.0.78除外
注:在可在全局與局部裏增長
注::容許優先
 
第二部分:幾個關鍵字段
根據須要增長在全局裏面。雖然簡單,但功能不簡單,你們在用到的時候慢慢來體會。
include = /etc/samba/%G.smb.conf          調用用戶組相關的配置文件
include = /etc/samba/%U.smb.conf        調用用戶相關的配置文件
username map = /etc/samba/smbusers    調用映射用戶帳號的配置文件
 
第三部分:和Samba有關的一些命令 
批量增長SMB用戶(不少人想要的東東)

# for user in 用戶列表
>do
>useradd -g group -s shell $user
>smbpasswd -a $user
>done

編輯SMB的用戶帳號相關命令
smbpasswd
smbpasswd -a 增長一個帳號
smbpasswd -d 禁用一個帳號
smbpasswd -e 啓用一個帳號
smbpasswd -x 刪除一個帳號
smbpasswd 更改用戶密碼

pdbedit
pdbedit -L 列出SMB中的帳號
pdbedit -a 增長一個帳號
pdbedit -x 刪除一個帳號
注:上面兩個命令,你們根據須要選擇
 
Linux客戶端的訪問工具
smbtree 顯示局域網中的全部共享主機和目錄列表
smbtree -D 只顯示局域網中的工做組或域名。後面能夠加上-U username%passwd ,則表示是相關用戶的訪問權限
nmblookup 某個主機的netbios主機名或工做組。            顯示相應的IP
smbclient命令格式
            smbclient  -L  //主機名或IP地址 -U 登陸用戶名    列出目標主機共享資源列表
              smbclient      //主機名或IP地址/共享目錄名 -U 登陸用戶名  使用共享資源
mount命令格式 
  mount  //目標IP地址或主機名/共享目錄名稱 掛載點 -o username=用戶名  掛載共享
  umount 掛載點  卸載共享
smbtar  -s server –u user –p passwd –x shareneam –t output.tar  把遠程的內容備份到本地 
tar tvf *.tar  # 查看TAR文件包裏面的的內容
 
  第四部分:實例詳解
【實例1】員工能夠在公司內流動辦公,不管在任何一臺機器上工做,都能把本身的文件放到服務器裏,同時不能使用服務器上的SHELL。 ( 註解:SMB中有關於用戶家目錄的默共享設置,咱們只要設置USER級別,而後再增長用戶和指定不可用的SHELL)
smb.conf配置文件更改的內容以下
security = user
[homes]
       comment = Home Directories
       browseable = no
       writable = yes
       valid users = %S
配置好後,就從新啓動SMB服務
# useradd user -s /dev/null
# smbpasswd -a user
 
增長好用戶和密碼後,就能夠直接測試了!這個不用從新啓動SMB服務了哦!
 
   
【實例2】創建共享目錄student,它的本機路徑爲「/home/student」,只有teachers組的用戶能夠讀寫該目錄,students用戶組只能讀取 。(註解:這個關鍵是不一樣組對同一個目錄的權限設置,student這個目錄屬於students用戶組,並設置他的OTHER 權限爲7,咱們經過這個OTHER權限來實現teachers組對student目錄的訪問,經過SMB的配置文件來限制用戶訪問)
mkdir /home/student
# groupadd students
# groupadd teachers
# useradd -g students user
# useradd -g teachers user
# smbpasswd -a user
# chgrp students /home/student
# chmod 757 /home/student
# chmod g+s /home/student
 
smb.conf配置文件更改的內容以下
security = user
[student]
       path = /home/student
       comment = student
       
write list @teachers
       valid users = @teachers @students
從新啓動SMB服務,進行測試。
 
【實例3】公司有二個部門( sales  market ),銷售部和市場部有本身單獨的共享目錄,只能夠總經理和相應部門員工訪問,而且公司員工禁止訪問非本部門的共享目錄 。(註解:這一個內容與第二個相似,只是用戶組變成用戶,多了一個用戶組,只須要把文件夾全部者給總經理,所屬組爲用戶組就OK)
 
mkdir /home/sales
mkdir /home/market
# groupadd sales
# groupadd market
# useradd -g sales user
# useradd -g market user
# smbpasswd -a user
# chgrp sales /home/sales
# chgrp market /home/market
# chown ceo /home/sales
# chown ceo /home/market
# chmod 770 /home/sales
# chmod 770 /home/market
# chmod g+s /home/sales
# chmod g+s /home/market
 
smb.conf配置文件更改的內容以下
security = user
[sales]
       path = /home/sales
       comment = sales
        write list @sales ceo
       valid users = @sales ceo
       create mask = 0770
       directory mask = 0770
[market]
       path = /home/market
       comment = market
        write list @market ceo
       valid users = @market ceo
       create mask = 0770
       directory mask = 0770
從新啓動SMB服務,進行測試。
 
【實例4】實如今登錄的時候只能看到本身的共享目錄,沒有權限訪問的看不到。
(註解:其實實現這個主要靠加載獨立的配置文件來實現,只要把獨立的文件設置好相應的權限就OK,SMB主配置文件中加入獨立的配置文件,其餘不用設置)
關於用戶的增長我這裏就不寫出來了,和上面的沒有區別。(略過)
 
首先把源始的smb.conf  COPY 出來,後面加上相應的用戶或者組,如:smb.conf.user   smb.conf.group 
 而後配置各己的配置文件
 
如:smb.conf.ceo
    [sales]
        comment = sales
        path = /home/sales
        writeable = yes
        valid users = ceo
        create mask = 0770
        directory mask = 0770
    [markets]
        comment = markets
        path = /home/markets
        writeable = yes
        valid users = ceo
        create mask = 0770
        directory mask = 0770
如:smb.conf.sales
    [sales]
        comment = sales
        path = /home/sales
        writeable = yes
        valid users = @sales
        create mask = 0770
        directory mask = 0770
如:smb.conf.markets
        [markets]
        comment = markets
        path = /home/markets
        writeable = yes
        valid users = @markets
        create mask = 0770
        directory mask = 0770
 
主配置文件以下:
security = user
        include = /etc/samba/smb.conf.%G
        include = /etc/samba/smb.conf.%U
 
 
 
最後說說若是打開SElinux:
samba服務器啓動後,能看到共享目錄,可是不能訪問共享目錄,告知權限不夠。此時能夠經過以下命令:
tail /var/log/message看到如此提示:
'/home/lyy' does not exist or permission denied when connecting to [lyy] Error was 權限不夠
SELinux is preventing the samba daemon from reading users home directories.      For complete SELinux messages. run sealert -l a0c1c154-bc37-44f5-a6eb-cfc88fed18b9
根據提示運行:
sealert -l a0c1c154-bc37-44f5-a6eb-cfc88fed18b9
可看到另外更詳細的提示,再根據提示
Allowing Access
    If you want samba to share home directories you need to turn on the
    samba_enable_home_dirs boolean: "setsebool -P samba_enable_home_dirs=1"
    The following command will allow this access:
    setsebool -P samba_enable_home_dirs=1
運行:
    setsebool -P samba_enable_home_dirs=1
等運行成功後,就能正常訪問目錄了。-P參數是永久有效的意思。
注意setsebool放在/usr/sbin中,若是系統提示setsebool命令找不到,加入上述路徑便可。
相關文章
相關標籤/搜索