標籤:
一、需求
- 區域網路內有若干使用者,所有使用者訪問一個共用目錄
- 每個使用者在共用目錄裡有自己的檔案夾
- 每個使用者都可以讀取其他人的檔案夾
- 每個使用者只能對自己的檔案夾有寫入許可權
- 所有使用者都屬於filesgroup組
二、環境
伺服器:Centos6
主機名稱:fileserver
IP地址:192.168.1.2
使用者端IP網段: 192.168.1.0/24 , 192.168.2.0/24 , 172.16.1.0/24
三、配置步驟
1、安裝samba,備份原始設定檔,編輯設定檔
[[email protected] ~]# yum install samba samba-common samba-client[[email protected] ~]# cp /etc/samba/smb.conf /root[[email protected] ~]# vi /etc/samba/smb.conf
以下顯示的是編輯過的內容#======================= Global Settings =====================================[global]# ----------------------- Network Related Options ------------------------- workgroup = FILEGROUP netbios name = FILESERVER interfaces = lo eth0 192.168.1.2/24 # samba服務監聽的網卡和IP地址 hosts allow = 127. 192.168.1. 192.168.2. 172.16.1. # 允許接入的IP網段: 伺服器本機 , 192.168.1.x , 192.168.2.x , 172.16.1.x# --------------------------- Logging Options ----------------------------- log file = /var/log/samba/log.%m #預設不變 max log size = 50 #預設不變# ----------------------- Standalone Server Options ------------------------ security = user # 單機使用者認證 passdb backend = smbpasswd # 使用/var/lib/samba/private/smbpasswd 文字檔儲存使用者和密碼 #============================ Share Definitions ==============================# 這裡注釋掉了很多預設設定檔的設定,最後添加了自訂設定 #[homes]; comment = Home Directories; browseable = no; writable = yes; valid users = %S; valid users = MYDOMAIN\%S #[printers]; comment = All Printers; path = /var/spool/samba; browseable = no; guest ok = no; writable = no; printable = yes # Un-comment the following and create the netlogon directory for Domain Logons; [netlogon]; comment = Network Logon Service; path = /var/lib/samba/netlogon; guest ok = yes; writable = no; share modes = no # Un-comment the following to provide a specific roving profile share# the default is to use the user‘s home directory; [Profiles]; path = /var/lib/samba/profiles; browseable = no; guest ok = yes # A publicly accessible directory, but read only, except for people in# the "staff" group; [public]; comment = Public Stuff; path = /home/samba; public = yes; writable = yes; printable = no; write list = +staff# 自訂檔案分享權限設定設定 [files] comment = files path = /opt/files public = no writable = yes printable = no write list = @filesgroup
2、添加組,建立共用資料夾,設定SELINUX
[[email protected] ~]# groupadd filesgroup[[email protected] ~]# mkdir /opt/files[[email protected] ~]# chcon -t samba_share_t /opt/files
3、將samba設為開機自啟動,啟動samba
[[email protected] ~]# chkconfig smb on[[email protected] ~]# service smb start
4、大量新增使用者
useradd -MN %u -s /sbin/nologin && echo %p | passwd --stdin %u && usermod -aG filesgroup %u && mkdir -p /opt/files/%d && chown -R %u: /opt/files/%d && echo -e "%p\n%p" | smbpasswd -a -s %u
指令解釋:
- 此行指令由多條指令組成,指令之間用 && 串連,即上一條指令執行成功後才執行下一條
- %u 代表使用者名稱,%p 代表密碼,%d 代表使用者檔案夾
- 使用者數量較少時可以在文字編輯器裡編輯批量指令,每粘貼一行,用尋找替換功能依次替換%u為使用者名稱、%p為密碼、%d為使用者目錄
- 使用者數量很多時建議將使用者名稱、密碼、檔案夾名寫入檔案,用指令碼讀取檔案自動執行
逐條解釋:
useradd -MN %u -s /sbin/nologin 添加使用者,-MN表示不建立使用者家目錄和使用者基本組,-s /sbin/nologin 表示使用者不可登入伺服器echo %p | passwd --stdin %u 為使用者佈建密碼(其實可以省略)usermod -aG filesgroup %u 將使用者加入到filegroup組mkdir -p /opt/files/%d 在共用目錄建立使用者檔案夾chown -R %u: /opt/files/%d 將使用者檔案夾owner設為使用者自己echo -e "%p\n%p" | smbpasswd -a -s %u 添加samba使用者帳號,smbpasswd -a -s %u 是靜默方式添加samba帳號,echo -e "%p\n%p" 是兩次輸出密碼 %p,中間輸出斷行符號符 \n
5、設定共用目錄所屬組,為共用目錄設定GUID,使所有使用者建立的檔案都屬於filesgroup組,禁止filesgroup組以外的使用者讀取、執行
[[email protected] ~]# chown -R :filesgroup /opt/fils
[[email protected] ~]# chmod -R g+s /opt/files
[[email protected] ~]# chmod -R o-rx /opt/files/
[[email protected] ~]#
6、看一下產生的目錄
[[email protected] ~]# ls -ldZ /opt/files
drwxr-s---. root filesgroup unconfined_u:object_r:samba_share_t:s0 /opt/files
[[email protected] ~]#
[[email protected] ~]# ls -lZ /opt/files
drwxr-s---. user1 filesgroup unconfined_u:object_r:samba_share_t:s0 dir1
drwxr-s---. user2 filesgroup unconfined_u:object_r:samba_share_t:s0 dir2
drwxr-s---. user3 filesgroup unconfined_u:object_r:samba_share_t:s0 dir3
[[email protected] ~]#
[[email protected] ~]# ll /var/lib/samba/private/smbpasswd
-rw-------. 1 root root 1435 2015-04-13 16:59 /var/lib/samba/private/smbpasswd
[[email protected] ~]#
致謝: http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html
Centos6配置samba伺服器並大量新增使用者和檔案夾