RHEL6基礎四十四之RHEL文件共享③Samba實例

文章轉載:http://ityunwei2017.blog.51cto.com/7662323/1341610

案例一、公司現有一個工作組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
-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]#

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
[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]#

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 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

案例二、公司現有多個部門,因工作需要,將IT部的資料存放在samba服務器的/home/it 目錄中集中管理,以便IT人員瀏覽,並且該目錄只允許IT部員工訪問

1、創建組和用戶
[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,即使設置了密碼也是無法登陸系統

2、將justin1、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用戶的密碼

3、創建共享封建

[

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]#

4、修改主配置文件/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 ~]#

案例三、實現不同的用戶訪問同一個共享目錄具有不同的權限

需求:

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。

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
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登陸

095941881.png

100606950.png進入hr、/share/hr目錄後可以進行添加、刪除、修改操作,進入非hr目錄回彈出登陸筐,只有輸入對應賬戶纔可以進入,可以進入share下所有目錄,但是除了hr目錄外均無法創建新文件,提示無權限,

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章