1. 參考網站:
- 鳥哥的 Linux 私房菜--SAMBA 伺服器
- Samiux's Blog--HOWTO : Home made NAS server with Ubuntu 8.04.1 – Part II
- 柏青哥的 SuSE Linux -- 架設 Samba Server
2. 設定原則 (我的設定)
- 原則 (1) : 用戶端需要輸入正確的帳號、密碼後,才能登入 Samba 伺服器。
- 原則 (2) : 建立 2 個 Linux 使用者,分別 [tim]、[lcy],Linux 密碼分別為 [tim]、[lcy];而 Samba 密碼分別為 [mit]、[ycl]。
- 原則 (3) : 建立一公用目錄 (/mnt/HDD30G/public),且 share name 為 [ public],讓 [tim,lcy]用戶皆可存取 (write/read)。
- 原則 (4) : 使用者在登入後, 只能瀏覽自己的家目錄&公用目錄
3. 設定參數 (我的設定)
【 global】 設定
- Samba 伺服器的工作群組:workgroup = WORKGROUP
- 用戶端登入成功後,會顯示「KSLAMP server (Samba, ubuntu)」文字, KSLAMP是我的 Ubuntu主機名稱:server string = %h server (Samba, ubuntu) ==>[%h]它是一個變數,並且暫存 Ubuntu主機名稱。
- 限定某網段的 IP 可登入 Samba 伺服器:
<2> bind interfaces only = yes
- 用戶端需要輸入正確的帳號、密碼後,才能登入 Samba 伺服器:
<2> encrypt passwords = Yes ==>密碼要加密
<3> passdb backend = tdbsam ==>密碼資料庫格式
【 Domains】 設定 :NA (因為只有在內部網路的電腦可使用 Samba, 所以在此不用設定)
【 Printing】 設定 :NA
【 Misc】 設定
- usershare allow guests = yes
【 Share Definitions】 設定 <<重點!>>
- 使用者在登入後, 只能瀏覽&寫入自己的家目錄
comment = Home Directories
path = /home/%S ==>[%S]它是一個變數,今天用戶[tim]想要存取自己的家目錄,他在Windows命令列輸入"\Samba伺服器IP\tim",輸入密碼認證後,[homes]被取代[tim],並且 [path=/home/tim], [valid users=tim]。
browseable = no ==>只能瀏覽自己的家目錄
read only = no ==>可以寫入自己的家目錄
create mask = 0664 ==>建立檔案的權限為 664
directory mask = 0664 ==>建立目錄的權限為 664
valid users = %S
- 使用者在登入後, 可以瀏覽&寫入公用目錄 [public]
comment = Share to all
path = /mnt/HDD30G/public
browseable = yes ==>可以瀏覽公用目錄
read only = no ==>可以寫入公用目錄 [public]
create mask = 0664
directory mask = 0664
valid users = sysadmin,tim,lcy
admin users = sysadmin ==>sysadmin為系統帳號名稱
5. 啟用 smb.conf 設定:sudo /etc/init.d/smbd restart
二、建立公用目錄 (/mnt/HDD30G/public)
1. sudo mkdir /mnt/HDD30G/public
2. chgrp users /mnt/HDD30G/public ==>開放公用目錄給 users群組
3. chmod 775 /mnt/HDD30G/public ==>設定公用目錄權限 775
4. chmod 775 /mnt/HDD30G/public/*.* ==>設定公用目錄內所有檔案的權限 775
三、加入使用者:[tim]、[lcy]
1. sudo adduser tim ==>adduser 指令除了加入使用者 [tim] 外,還會自動新增一個家目錄 (/home/tim)
2. adduser tim users ==>將已存在使用者加入已存在群組 users.
3. sudo useradd -G users tim ==>useradd 指令與 adduser 指令不同,它不會自動新增一個家目錄。
4. groups tim ==>查詢使用者 [tim]屬於哪些群組
5. sudo vi /etc/passwd ==>確認剛剛加入的使用者是否已成為 Linux 使用者。
四、自我測試
1. smbclient -L //192.168.x.x (ENTER) password (不輸入直接按ENTER) ==>匿名登入
2. smbclient -L //192.168.x.x -U tim (ENTER) password (輸入密碼後,按ENTER) ==>使用者 [tim] 登入測試
3. 若出現以下畫面,則表示使用者 [tim] 在登入後, 可以瀏覽自己的家目錄&公用目錄
五、若沒有出現上述畫面時,該如何做呢? 您必須先檢查 Samba帳戶資訊,為何要檢查?不是已經建立使用者 [tim], 並已經確認他是 Linux 帳戶了嗎....,沒錯,Samba帳戶與 Linux 帳戶各自儲存於不同地方:Linux 帳戶是儲存在 /etc/passwd, 而 Samba帳戶是儲存在資料庫中,還記得 smb.conf 參數_passdb backend = tdbsam--> 簡言之,使用者要進入 Samba 伺服器,則他必須是 Linux 使用者,而且他也必須是 Samba使用者之一。
>> 新增/查詢 Samba 帳戶命令 (pdbedit), 修改 Samba 使用者密碼命令 : smbpasswd
>> sudo pdbedit -L or sudo pdbedit -Lvw ==>查看 Samba 帳戶資訊
>> sudo pdbedit -a -u tim ==>新增 Samba 帳戶--[tim]
~Done~
沒有留言:
張貼留言