Samba 網路硬碟不顯示隱藏檔

學生上電腦課時,是使用 Samba Server 來儲存資料,使用者登入之後可以很方便在任何一台電腦存取到自己的檔案。
今天發現學生開啟家目錄後,會顯示一些在 Linux 是隱藏檔的檔案。

為了避免造成學生的困擾,所以做了以下的調整。[@more@]1. 修改 Samba Server 設定檔,以 CentOS 6.x 為例
# vim /etc/samba/smb.conf
[homes]
        comment = Home Directories
        browseable = no
        writable = yes
        valid users = %S
        create mode = 0664
        directory mode = 0775
        veto files=/.*/

加入 veto files=/.*/ 這一行設定

2. 重新啟動 Samba Server
# service nmb restart
正在停止 NMB 服務:                                        [  確定  ]
正在啟動 NMB 服務:                                        [  確定  ]
# service smb restart
正在停止 SMB 服務:                                        [  確定  ]
正在啟動 SMB 服務:                                        [  確定  ]

3. 重新整理後,隱藏檔的部分就不見了!

透過 PXE Server 使用 Samba 和 Clonezilla 自動備份及還原

主要是在 PXE Server 的功能表,使用 Samba 和 Clonezilla 做自動的備份及還原,另外因為要做到自動化,所以 Samba Server 是設定成不用密碼就可以使用,但在防火牆上要限定連線來源。

修改 PXE Server 功能表,因為執行的時候會覆蓋原有的備份檔和把 Windows 系統磁碟還原,所以在選項上加上了密碼,避免誤觸
要注意的是 append initrd 到後面算是一行
# vim /var/lib/tftpboot/pxelinux.cfg/Backup_Restore
LABEL Clonezilla Livei Samba AutoBackup
        MENU LABEL Clonezilla Live Samba ^AutoBackup
        MENU PASSWD CloneZilla
        kernel images/Clonezilla/live/vmlinuz
        append initrd=images/Clonezilla/live/initrd.img boot=live config username=user quiet noswap edd=on nomodeset noeject locales=”zh_TW.UTF-8″ keyboard-layouts=”NONE” ocs_live_run=”/usr/sbin/ocs-sr -q2 -j2 -z1p -p true saveparts Win7Backup sda1″ ocs_live_extra_param=”” ocs_live_batch=”yes” ocs_prerun=”mount -t cifs //192.168.1.6/public /home/partimag” vga=788 ip=frommedia nosplash fetch=tftp://192.168.1.6/images/Clonezilla/live/filesystem.squashfs

LABEL Clonezilla Livei Samba AutoRestore
        MENU LABEL Clonezilla Live Samba ^AutoRestore
        MENU PASSWD CloneZilla
        kernel images/Clonezilla/live/vmlinuz
        append initrd=images/Clonezilla/live/initrd.img boot=live config username=user quiet noswap edd=on nomodeset noeject locales=”zh_TW.UTF-8″ keyboard-layouts=”NONE” ocs_live_run=”/usr/sbin/ocs-sr –batch -g auto -e1 auto -e2 -r -j2 -p reboot restoreparts Win7Backup sda1″ ocs_live_extra_param=”” ocs_live_batch=”yes” ocs_prerun=”mount -t cifs //192.168.1.6/public /home/partimag” vga=788 ip=frommedia nosplash fetch=tftp://192.168.1.6/images/Clonezilla/live/filesystem.squashfs

Samba Server 的使用者帳號及密碼備份

Samba Server 自從 3.x 後改成使用 tdbsam 的方式來管理使用者的帳號及密碼,原本的帳號密碼都是存放在 /etc/samba 目錄之下,最近要做備份時,一時之間竟然找不到 Samba Server 存放使用者帳號及密碼的地方。
後來有想到,可以先把 tdbsam 格式匯出成 smbpasswd 格式,再把 smbpasswd 格式轉成 tdbsam 格式
把 tdbsam 匯出成為 smbpasswd 格式
# /usr/bin/pdbedit -i tdbsam -e smbpasswd
把 smbpasswd 匯出成 tdbsam 格式
# /usr/bin/pdbedit -i smbpasswd -e tdbsam

或指定完整目錄
把 tdbsam 匯出成為 smbpasswd 格式
# /usr/bin/pdbedit -i tdbsam:/var/lib/samba/private/passdb.tdb -e smbpasswd:/etc/samba/smbpasswd
把 smbpasswd 匯出成 tdbsam 格式
# /usr/bin/pdbedit -i smbpasswd:/etc/samba/smbpasswd -e tdbsam:/var/lib/samba/private/passdb.tdb

不過這樣的手續有些煩雜,如果可以直接備份應該會更好。[@more@]後來很努力找了一下,終於找到了,在 /var/lib/samba/private 目錄之下
# ls -l /var/lib/samba/private/
-rw——- 1 root root 532480 2013-10-11 13:26 passdb.tdb
-rw——- 1 root root  45056 2011-09-02 14:49 secrets.tdb

Security-Enhanced Linux & Samba

好久沒碰 SELinux(Security-Enhanced Linux)  了,加上以前為了麻煩,大部分都是直接關掉,最近重新安裝了幾台伺服器,在學校授權光碟伺服器上,吃了 SELinux 很大的苦頭。
安裝好系統之後,首先是做 Samba Server 的設定,接著在防火牆上也進行連線來源的管制設定,但在連線時,卻都是可以看的到,但無法存取,重覆檢查 Samba 和防火牆上的設定,也都沒有問題,百思不得其解。
[@more@]後來想到,是不是 SELinux 的問題,執行下面的指令,果然就可以正常存取了!
# setsebool -P samba_enable_home_dirs=1