文章轉載:http://ityunwei2017.blog.51cto.com/7662323/1341610ios
案例1、公司現有一個工做組workgroup,須要添加samba服務器做爲文件服務器,併發布共享目錄/home/share,共享名爲public,此共享目錄容許全部員工訪問。shell
一、主配置文件/etc/samba/smb.conf修改windows
#======================= 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
二、創建共享目錄
bash
設置了共享目錄/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 -rw-r--r-- 1 nobody nobody 0 12月 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]#
三、測試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 [global] netbios name = JUSTIN_PENG_SAMBA server string = Justin peng Samba Server 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 browseable = No [public] comment = Public Stuff path = /home/share guest ok = Yes
[root@justin bin]#
ide
四、訪問samba共享文件工具
Server:RHEL6.3 10.15.72.38測試
Client: RHEL6.3 10.15.72.83ui
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 V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY error: Failed dependencies: samba-common = 0:3.5.10-125.el6 is needed 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! [root@justin ~]# rpm -qa|grep samba 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 [root@justin ~]# smbclient //10.15.72.38/public Enter root's password: Anonymous login successful Domain=[WORKGROUP] OS=[Unix] Serv er=[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
案例2、公司現有多個部門,因工做須要,將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 的密碼 。 passwd: 全部的身份驗證令牌已經成功更新。 [root@justin bin]#
因爲設置了用戶的shell爲nologin,即便設置了密碼也是沒法登錄系統
二、將justin一、justin2假如samba帳戶中
[
root@justin ~]# smbpasswd -a justin1 New SMB password: Retype new SMB password: Added user justin1. [root@justin ~]# smbpasswd -a justin2 New SMB password: Retype new SMB password: Added user justin2. [root@justin ~]#
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 [root@justin bin]#
四、修改主配置文件/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 = user //用戶級別,由提供服務的Samba服務器負責檢查帳戶和密碼 passdb backend = tdbsam [homes] //設置用戶宿主目錄 comment = Home Directories browseable = no writable = yes ; valid users = %S ; valid users = MYDOMAIN\%S # ----------------------- 文末添加如下 ------------------------ [public] comment = Public Stuff path = /home/share public = yes [IT] //IT 組目錄,只容許ts組成員訪問 comment = IT path = /home/it valid users = @IT [root@justin bin]# /etc/init.d/smb reload 從新載入 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 your service definitions [global] netbios name = JUSTIN_PENG_SAMBA server string = Justin peng Samba Server 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 browseable = No [public] comment = Public Stuff path = /home/share guest ok = Yes [IT] comment = IT path = /home/IT valid users = @IT [root@justin bin]# [
在windows下訪問Samba服務器的共享文件
直接在運行裏輸入:\\10.15.72.38輸入登錄信息
153017298.png
進入後有三個目錄,public以前共享的目錄,it本實例的共享,justin1登錄用戶的主目錄,這是主配置文件中[home]選項定
Tips:windows下查看和清除訪問共享信息:
net use
net use \\10.15.72.38\it /del
在Linux下訪問Samba服務器的共享文件
[
root@justin ~]# smbclient //10.15.72.38/IT -U justin1%justin Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.5.10-125.el6] smb: \> ls . 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 blocks available smb: \> q [root@justin ~]#
案例3、實現不一樣的用戶訪問同一個共享目錄具備不一樣的權限
需求:
1. 公司有5個部門,分別爲:人事行政部(HR & Admin Dept)、財務部(Financial Management Dept)、技術支持部(Technical Support Dept)、項目部(Project Dept)、客服部(Customer Service Dept)。
2. 各部門的文件夾只容許本部門員工有權訪問;各部門之間交流性質的文件放到公用文件夾中。
3. 每一個部門都有一個管理本部門文件夾的管理員帳號和一個只能新建和查看文件的普通用戶權限的帳號。
4. 公用文件夾中分爲存放工具的文件夾和存放各部門共享文件的文件夾。
5. 對於各部門本身的文件夾,各部門管理員具備徹底控制權限,而各部門普通用戶能夠在該部門文件夾下新建文件及文件夾,而且對於本身新建的文件及文件夾有徹底控制權限,對於管理員新建及上傳的文件和文件夾只能訪問,不能更改和刪除。不是本部門用戶不能訪問本部門文件夾。
6. 對於公用文件夾中的各部門共享文件夾,各部門管理員具備徹底控制權限,而各部門普通用戶能夠在該部門文件夾下新建文件及文件夾,而且對於本身新建的文件及文件夾有徹底控制權限,對於管理員新建及上傳的文件和文件夾只能訪問,不能更改和刪除。本部門用戶(包括管理員和普通用戶)在訪問其餘部門共享文件夾時,只能查看不能修改刪除新建。對於存放工具的文件夾,只有管理員有權限,其餘用戶只能訪問。
規劃:
1. 在/home下建立如下幾個文件夾:HR、 FM、TS、PRO、CS和Share。在Share下又有如下幾個文件夾:HR、FM、TS、PRO、CS和Tools。
2. 各部門對應的文件夾由各部門本身管理,Tools文件夾由管理員維護。
3. HR管理員帳號:hradmin;普通用戶帳號:hruser。
FM管理員帳號:fmadmin;普通用戶帳號:fmuser。
TS管理員帳號:tsadmin;普通用戶帳號:tsuser。
PRO管理員帳號:proadmin;普通用戶帳號:prouser。
CS管理員帳號:csadmin;普通用戶帳號:csuser。
Tools管理員帳號:admin。
建立用戶並加入到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 New SMB password: Retype new SMB password: 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 ~]#
建立目錄並修改目錄歸屬:
[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:fmadmin FM && 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:fmadmin FM && 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} drwxr-xr-x 2 csadmin csadmin 4096 12月 17 17:21 CS drwxr-xr-x 2 fmadmin fmadmin 4096 12月 17 17:21 FM drwxr-xr-x 2 hradmin hradmin 4096 12月 17 17:21 HR drwxr-xr-x 2 proadmin proadmin 4096 12月 17 17:21 PRO drwxr-xr-x 2 admin admin 4096 12月 17 17:21 Tools drwxr-xr-x 2 tsadmin tsadmin 4096 12月 17 17:21 TS [root@justin Share]# chmod 1775 CS FM HR PRO TS [root@justin Share]# ll 總用量 24 drwxrwxr-t 2 csadmin csadmin 4096 12月 17 17:21 CS drwxrwxr-t 2 fmadmin fmadmin 4096 12月 17 17:21 FM drwxrwxr-t 2 hradmin hradmin 4096 12月 18 10:02 HR drwxrwxr-t 2 proadmin proadmin 4096 12月 17 17:21 PRO drwxr-xr-x 2 admin admin 4096 12月 17 17:21 Tools drwxrwxr-t 2 tsadmin tsadmin 4096 12月 17 17:21 TS [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:51 CS drwxrwx--T 2 fmadmin fmadmin 4096 12月 17 17:19 FM drwxrwx--T 2 hradmin hradmin 4096 12月 18 13:47 HR drwxrwx--T 2 proadmin proadmin 4096 12月 17 17:19 PRO drwxrwx--T 2 tsadmin tsadmin 4096 12月 17 17:19 TS [root@justin home]# ll Share/ 總用量 24 drwxrwxr-x 2 csadmin csadmin 4096 12月 17 17:21 CS drwxrwxr-x 2 fmadmin fmadmin 4096 12月 17 17:21 FM drwxrwxr-x 2 hradmin hradmin 4096 12月 18 10:02 HR drwxrwxr-x 2 proadmin proadmin 4096 12月 17 17:21 PRO drwxrwxr-x 2 admin admin 4096 12月 17 17:21 Tools drwxrwxr-x 2 tsadmin tsadmin 4096 12月 17 17:21 TS [root@justin home]#
修改Samba主配置文件/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 = user //用戶級別,由提供服務的Samba服務器負責檢查帳戶和密碼 passdb backend = tdbsam [homes] //設置用戶宿主目錄 comment = Home Directories browseable = no writable = yes ; valid users = %S ; valid users = MYDOMAIN\%S # ----------------------- 文末添加如下 ------------------------ [public] comment = Public Stuff path = /home/share public = yes [IT] //IT 組目錄,只容許ts組成員訪問 comment = IT path = /home/it valid users = @IT [root@justin bin]# /etc/init.d/smb reload 從新載入 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 your service definitions [global] netbios name = JUSTIN_PENG_SAMBA server string = Justin peng Samba Server 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 browseable = No [public] comment = Public Stuff path = /home/share guest ok = Yes [IT] comment = IT path = /home/IT valid users = @IT [HR] comment = This is a directory of HR. 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 of FM. 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 of TS. path = /home/TS/ public = no admin users = tsadmin valid users = @tsadmin writable = yes create mask = 0750 directory mask = 0750 [PRO] comment = This is a PRO directory. path = /home/PRO/ public = no admin users = proadmin valid users = @proadmin writable = yes create mask = 0750 directory mask = 0750 [CS] comment = This is a directory of CS. path = /home/CS/ public = no admin users = csadmin valid users = @csadmin writable = yes create mask = 0750 directory mask = 0750 [Share] comment = This is a share directory. path = /home/Share/ public = no valid users = admin,@hradmin,@fmadmin,@tsadmin,@proadmin,@csadmin writable = yes create mask = 0755 directory mask = 0755 [root@justin Share]# /etc/init.d/smb restart
關閉 SMB 服務: [肯定] 啓動 SMB 服務: [肯定] [root@justin Share]# /etc/init.d/nmb restart 關閉 NMB 服務: [肯定] 啓動 NMB 服務: [肯定] [root@justin Share]# 驗證: 以用戶hradmin登錄
進入hr、/share/hr目錄後能夠進行添加、刪除、修改操做,進入非hr目錄回彈出登錄筐,只有輸入對應帳戶才能夠進入,能夠進入share下全部目錄,可是除了hr目錄外均沒法建立新文件,提示無權限,