CentOS下Samba伺服器的搭建

來源:互聯網
上載者:User

以下內容轉載自http://hi.baidu.com/jyj888/blog/item/0f95dc35b16c3a5b241f1463.html

第一部分: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命令找不到,加入上述路徑即可。

另外http://xingxing5421.blog.163.com/blog/static/11944631920108309309395/ 也有參考價值。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.