案例一、公司現有一個工作組workgroup,需要添加samba伺服器作為檔案伺服器,并釋出共享目錄/home/share,共享名為public,此共享目錄允許所有員工通路。
1
、主配置檔案/etc/samba/smb.conf修改
#======================= Global Settings=====================================
[global]
workgroup = WORKGROUP //
定義工作組,也就是windows中的工作組概念
server string = Justin peng Samba Server Version %v //
定義Samba伺服器的簡要說明
netbios name = Justin_peng_Samba //
定義windows中顯示出來的計算機名稱
# --------------------------- Logging Options-----------------------------
log file = /var/log/samba/log.%m //
定義Samba使用者的日志檔案,%m代表用戶端主機名,Samba伺服器會在指定的目錄中為每個登陸主機建立不同的日志檔案
# ----------------------- Standalone Server Options------------------------
security = share //
共享級别,使用者不需要賬号和密碼即可通路
# passdb backend = tdbsam
# -----------------------
文末添加以下------------------------
[public]
comment = Public Stuff
path = /home/share
public = yes
2
、建立共享目錄
設定了共享目錄/home/share,需要建立該目錄,由于要設定匿名使用者可以下載下傳或上傳共享檔案,是以要給/share目錄授權為nobody權限。
[root@justin bin]# mkdir /home/share
[root@justin bin]# touch /home/share/{aaa.txt,bbb.txt}
[root@justin bin]# ls /home/share
aaa.txt bbb.txt
[root@justin bin]# chown nobody:nobody /home/share/ -R
[root@justin bin]# ll /home/share/
總用量0
-rw-r--r-- 1 nobody nobody 0 12
月17 13:44 aaa.txt
月17 13:44 bbb.txt
[root@justin bin]# /etc/init.d/smb restart
關閉 SMB 服務: [确定]
啟動 SMB 服務: [确定]
[root@justin bin]# /etc/init.d/nmb restart
關閉 NMB 服務: [确定]
啟動 NMB 服務: [确定]
[root@justin bin]#
3
、測試samba配置檔案正确性
[root@justin bin]# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[public]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
netbios name =JUSTIN_PENG_SAMBA
server string = Justin peng Samba ServerVersion %v
log file =/var/log/samba/log.%m
max log size = 50
cups options = raw
[homes]
comment = Home Directories
read only = No
browseable = No
[printers]
comment = All Printers
path = /var/spool/samba
printable = Yes
comment = Public Stuff
path = /home/share
guest ok = Yes
4
、通路samba共享檔案
Server
:RHEL6.3 10.15.72.38
Client
:RHEL6.3 10.15.72.83
Windows 10.15.72.73
在Linux下通路Samba伺服器的共享檔案
[root@justin ~]# smbclient //10.15.72.38/public
-bash: smbclient: command not found
[root@justin ~]# rpm -qa|grep samba
samba-common-3.6.9-164.el6.i686
samba-winbind-3.6.9-164.el6.i686
samba-winbind-clients-3.6.9-164.el6.i686
[root@justin ~]# mount /dev/cdrom /mnt/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@justin ~]# find /mnt/cdrom/Packages/ -name '*samba*'
/mnt/cdrom/Packages/samba-3.5.10-125.el6.i686.rpm
/mnt/cdrom/Packages/samba-client-3.5.10-125.el6.i686.rpm
/mnt/cdrom/Packages/samba-common-3.5.10-125.el6.i686.rpm
/mnt/cdrom/Packages/samba-winbind-3.5.10-125.el6.i686.rpm
/mnt/cdrom/Packages/samba-winbind-clients-3.5.10-125.el6.i686.rpm
/mnt/cdrom/Packages/sblim-cmpi-samba-1.0-1.el6.i686.rpm
[root@justin ~]# rpm -ivh/mnt/cdrom/Packages/samba-client-3.5.10-125.el6.i686.rpm
warning: /mnt/cdrom/Packages/samba-client-3.5.10-125.el6.i686.rpm: Header V3RSA/SHA256 Signature, key ID fd431d51: NOKEY
error: Failed dependencies:
samba-common = 0:3.5.10-125.el6 isneeded by samba-client-0:3.5.10-125.el6.i686
samba-winbind-clients =0:3.5.10-125.el6 is needed by samba-client-0:3.5.10-125.el6.i686
[root@justin ~]# yum install -y samba-client
Complete!
samba-winbind-3.6.9-167.el6_5.i686
samba-winbind-clients-3.6.9-167.el6_5.i686
samba-client-3.6.9-167.el6_5.i686
samba-common-3.6.9-167.el6_5.i686
Enter root's password:
Anonymous login successful
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.5.10-125.el6]
smb: \> ls
. D 0 Tue Dec 17 13:44:53 2013
.. D 0 Tue Dec 17 13:43:40 2013
aaa.txt 0 Tue Dec 17 13:44:53 2013
bbb.txt 0 Tue Dec 17 13:44:53 2013
62915 blocks of size 131072.58554 blocks available
smb: \> q
[root@justin ~]#
用戶端需要安裝好samba-client,上面直接挂載用安裝盤裡軟體包安裝失敗是依賴關系失敗,系統安裝的依賴包版本高于軟體包裡的samba-client版本,最後通過yum安裝
在windows下通路Samba伺服器的共享檔案
直接在運作裡輸入:\\10.15.72.38\public145915755.png
案例二、公司現有多個部門,因工作需要,将IT部的資料存放在samba伺服器的/home/it 目錄中集中管理,以便IT人員浏覽,并且該目錄隻允許IT部員工通路
、建立組和使用者
[root@justin bin]# groupadd IT
[root@justin bin]# useradd -g IT -s /sbin/nologin justin1
[root@justin bin]# useradd -g IT -s /sbin/nologin justin2
[root@justin bin]# passwd justin1
更改使用者 justin1 的密碼 。新的 密碼:重新輸入新的 密碼:
passwd
: 所有的身份驗證令牌已經成功更新。
[root@justin bin]# echo "justin123"|passwd --stdin justin2
更改使用者 justin2 的密碼 。
由于設定了使用者的shell為nologin,即使設定了密碼也是無法登陸系統
、将justin1、justin2假如samba賬戶中
[root@justin ~]# smbpasswd -a justin1
New SMB password:
Retype new SMB password:
Added user justin1.
[root@justin ~]# smbpasswd -a justin2
Added user justin2.
smbpasswd
指令的主要選項:
-h
:顯示smbpasswd指令的幫助資訊
-a
:添加指定的Samba使用者帳号
-d
:禁用指定的使用者帳号
-e
:啟用指定的使用者帳号
-x
:删除指定的使用者帳号不使用任何指令選項時可以用于修改Samba使用者的密碼
、建立共享封建
[root@justin bin]# mkdir /home/IT
[root@justin bin]# touch /home/IT/{ccc.txt,ddd.txt}
[root@justin bin]# echo "Samba test file1" >/home/IT/ccc.txt
[root@justin bin]# echo "Samba test file2" >/home/IT/ddd.txt
、修改主配置檔案/etc/samba/smb.conf
#======================= GlobalSettings =====================================
[global]
workgroup = WORKGROUP //
server string = Justin peng SambaServer Version %v //
netbios name = Justin_peng_Samba //
# --------------------------- LoggingOptions -----------------------------
log file = /var/log/samba/log.%m //
# ----------------------- StandaloneServer Options ------------------------
security = user //
使用者級别,由提供服務的Samba伺服器負責檢查賬戶和密碼
passdb backend = tdbsam
[homes] //
設定使用者宿主目錄
comment = HomeDirectories
browseable = no
writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S
# -----------------------
[public]
public = yes
[IT] //IT
組目錄,隻允許ts組成員通路
comment = IT
path = /home/it
valid users = @IT
[root@justin bin]# /etc/init.d/smbreload
重新載入 smb.conf檔案: [确定]
[root@justin bin]# testparm
Load smb config files from/etc/samba/smb.conf
rlimit_max: increasing rlimit_max(1024) to minimum Windows limit (16384)
Processing section"[homes]"
Processing section"[printers]"
Processing section"[public]"
Processing section"[IT]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of yourservice definitions
netbios name =JUSTIN_PENG_SAMBA
server string = Justin peng SambaServer Version %v
log file =/var/log/samba/log.%m
max log size = 50
cups options = raw
[homes]
comment = Home Directories
read only = No
browseable = No
[printers]
comment = All Printers
path = /var/spool/samba
printable = Yes
comment = Public Stuff
path = /home/share
guest ok = Yes
[IT]
comment = IT
path = /home/IT
valid users = @IT
[root@justin bin]#
直接在運作裡輸入:\\10.15.72.38輸入登陸資訊
153017298.png
進入後有三個目錄,public之前共享的目錄,it本執行個體的共享,justin1登陸使用者的主目錄,這是主配置檔案中[home]選項定
Tips:windows
下檢視和清除通路共享資訊:
net use
net use \\10.15.72.38\it /del
[root@justin ~]# smbclient //10.15.72.38/IT -U justin1%justin
. D 0 Tue Dec 17 16:31:08 2013
.. D 0 Tue Dec 17 16:30:47 2013
aaa.txt 16 Tue Dec 17 16:31:26 2013
bbb.txt 16 Tue Dec 17 16:31:30 2013
62915 blocks of size 131072. 58553 blocksavailable
案例三、實作不同的使用者通路同一個共享目錄具有不同的權限
需求:
公司有5個部門,分别為:人事行政部(HR &
Admin Dept)、财務部(Financial Management Dept)、技術支援部(Technical Support Dept)、項目部(Project Dept)、客服部(Customer Service Dept)。
各部門的檔案夾隻允許本部門員工有權通路;各部門之間交流性質的檔案放到公用檔案夾中。
每個部門都有一個管理本部門檔案夾的管理者賬号和一個隻能建立和檢視檔案的普通使用者權限的賬号。
公用檔案夾中分為存放工具的檔案夾和存放各部門共享檔案的檔案夾。
5.
對于各部門自己的檔案夾,各部門管理者具有完全控制權限,而各部門普通使用者可以在該部門檔案夾下建立檔案及檔案夾,并且對于自己建立的檔案及檔案夾有完全控制權限,對于管理者建立及上傳的檔案和檔案夾隻能通路,不能更改和删除。不是本部門使用者不能通路本部門檔案夾。
6.
對于公用檔案夾中的各部門共享檔案夾,各部門管理者具有完全控制權限,而各部門普通使用者可以在該部門檔案夾下建立檔案及檔案夾,并且對于自己建立的檔案及檔案夾有完全控制權限,對于管理者建立及上傳的檔案和檔案夾隻能通路,不能更改和删除。本部門使用者(包括管理者和普通使用者)在通路其他部門共享檔案夾時,隻能檢視不能修改删除建立。對于存放工具的檔案夾,隻有管理者有權限,其他使用者隻能通路。
規劃:
在/home下建立以下幾個檔案夾:HR、 FM、TS、PRO、CS和Share。在Share下又有以下幾個檔案夾:HR、FM、TS、PRO、CS和Tools。
各部門對應的檔案夾由各部門自己管理,Tools檔案夾由管理者維護。
3. HR
管理者賬号:hradmin;普通使用者賬号:hruser。
FM
管理者賬号:fmadmin;普通使用者賬号:fmuser。
TS
管理者賬号:tsadmin;普通使用者賬号:tsuser。
PRO
管理者賬号:proadmin;普通使用者賬号:prouser。
CS
管理者賬号:csadmin;普通使用者賬号:csuser。
Tools
管理者賬号:admin。091850710.png
建立使用者并加入到samba賬戶中:
[root@justin ~]# useradd -s /sbin/nologin hradmin
[root@justin ~]# useradd -g hradmin -s /sbin/nologin hruser
[root@justin ~]# useradd -s /sbin/nologin fmadmin
[root@justin ~]# useradd -g fmadmin -s /sbin/nologin fmuser
[root@justin ~]# useradd -s /sbin/nologin tsadmin
[root@justin ~]# useradd -g tsadmin -s /sbin/nologin tsuser
[root@justin ~]# useradd -s /sbin/nologin proadmin
[root@justin ~]# useradd -g proadmin -s /sbin/nologin prouser
[root@justin ~]# useradd -s /sbin/nologin csadmin
[root@justin ~]# useradd -g csadmin -s /sbin/nologin csuser
[root@justin ~]# useradd -s /sbin/nologin admin
[root@justin ~]# smbpasswd -a hradmin
Added user hradmin.
[root@justin ~]# smbpasswd -a hruser
[root@justin ~]# smbpasswd -a fmadmin
[root@justin ~]# smbpasswd -a fmuser
[root@justin ~]# smbpasswd -a tsadmin
[root@justin ~]# smbpasswd -a tsuser
[root@justin ~]# smbpasswd -a proadmin
[root@justin ~]# smbpasswd -a prouser
[root@justin ~]# smbpasswd -a csadmin
[root@justin ~]# smbpasswd -a csuser
[root@justin ~]# smbpasswd -a admin
建立目錄并修改目錄歸屬:
[root@justin ~]# mkdir /home/{HR,FM,TS,PRO,CS,Share/{HR,FM,TS,PRO,CS,Tools}}-p
[root@justin home]# chown hradmin:hradmin HR && chown fmadmin:fmadminFM && chown tsadmin:tsadmin TS && chown proadmin:proadmin PRO&& chown csadmin:csadmin CS && chown admin:admin Share
[root@justin home]# ll -d /home/{HR,FM,TS,PRO,CS,Share}
drwxr-xr-x 2 csadmin csadmin 4096 12
月17 17:19/home/CS
drwxr-xr-x 2 fmadmin fmadmin 4096 12
月17 17:19/home/FM
drwxr-xr-x 2 hradmin hradmin 4096 12
月17 17:19/home/HR
drwxr-xr-x 2 proadmin proadmin 4096 12
月17 17:19/home/PRO
drwxr-xr-x 8 admin admin 4096 12
月17 17:21/home/Share
drwxr-xr-x 2 tsadmin tsadmin 4096 12
月17 17:19/home/TS
[root@justin home]# cd Share/
[root@justin Share]# chown hradmin:hradmin HR && chown fmadmin:fmadminFM && chown tsadmin:tsadmin TS && chown proadmin:proadmin PRO&& chown csadmin:csadmin CS && chown admin:admin Tools
[root@justin Share]# ll -d {HR,FM,TS,PRO,CS,Tools}
月17 17:21CS
月17 17:21FM
月17 17:21HR
月17 17:21PRO
drwxr-xr-x 2 admin admin 4096 12
月17 17:21Tools
月17 17:21TS
[root@justin Share]# chmod 1775 CS FM HR PRO TS
[root@justin Share]# ll
總用量24
drwxrwxr-t 2 csadmin csadmin 4096 12
drwxrwxr-t 2 fmadmin fmadmin 4096 12
drwxrwxr-t 2 hradmin hradmin 4096 12
月18 10:02HR
drwxrwxr-t 2 proadmin proadmin 4096 12
drwxrwxr-t 2 tsadmin tsadmin 4096 12
[root@justin Share]# cd ..
[root@justin home]# chmod 1770 HR FM TS PRO CS
[root@justin home]# chmod -R 0775 Share/
[root@justin home]# ll -d FM HR TS PRO CS
drwxrwx--T 2 csadmin csadmin 4096 12
月18 13:51CS
drwxrwx--T 2 fmadmin fmadmin 4096 12
月17 17:19FM
drwxrwx--T 2 hradmin hradmin 4096 12
月18 13:47HR
drwxrwx--T 2 proadmin proadmin 4096 12
月17 17:19PRO
drwxrwx--T 2 tsadmin tsadmin 4096 12
月17 17:19TS
[root@justin home]# ll Share/
drwxrwxr-x 2 csadmin csadmin 4096 12
drwxrwxr-x 2 fmadmin fmadmin 4096 12
drwxrwxr-x 2 hradmin hradmin 4096 12
drwxrwxr-x 2 proadmin proadmin 4096 12
drwxrwxr-x 2 admin admin 4096 12
drwxrwxr-x 2 tsadmin tsadmin 4096 12
[root@justin home]#
修改Samba主配置檔案/etc/samba/smb.conf:
security = user //
passdb backend = tdbsam
[homes] //
browseable = no
writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S
[IT] //IT
comment = IT
path = /home/it
valid users = @IT
[root@justin bin]# /etc/init.d/smb reload
重新載入 smb.conf 檔案: [确定]
Processing section "[IT]"
server string = Justin peng SambaServer Version %v
[IT]
path = /home/IT
[HR]
comment = This is a directory ofHR.
path = /home/HR/
public = no
admin users = hradmin
valid users = @hradmin
writable = yes ;
是允許這個目錄可寫,是mask首要條件。
create mask = 0750 ;
表示建立檔案的權限,最前面的0是:sticky、suid 和 sgid 位.
directory mask = 0750 ;
表示建立目錄即檔案夾的權限
[FM]
comment = This is a directory ofFM.
path = /home/FM/
public = no
admin users = fmadmin
valid users = @fmadmin
writable = yes
create mask = 0750
directory mask = 0750
[TS]
comment = This is a directory ofTS.
path = /home/TS/
admin users = tsadmin
valid users = @tsadmin
[PRO]
comment = This is a PROdirectory.
path = /home/PRO/
admin users = proadmin
valid users = @proadmin
[CS]
comment = This is a directory ofCS.
path = /home/CS/
admin users = csadmin
valid users = @csadmin
[Share]
comment = This is a sharedirectory.
path = /home/Share/
valid users =admin,@hradmin,@fmadmin,@tsadmin,@proadmin,@csadmin
create mask = 0755
directory mask = 0755
[root@justin Share]# /etc/init.d/smb restart
[root@justin Share]# /etc/init.d/nmb restart
關閉 NMB 服務: [确定]
啟動 NMB 服務: [确定]
[root@justin Share]#
驗證:
以使用者hradmin登陸
095941881.png
進入hr、/share/hr目錄後可以進行添加、删除、修改操作,進入非hr目錄回彈出登陸筐,隻有輸入對應賬戶才可以進入,可以進入share下所有目錄,但是除了hr目錄外均無法建立新檔案,提示無權限,
100606950.png
其他使用者登陸經驗證與要求一緻