2017年11月28日 星期二

Centos7 配置 Samba 共享資料夾和印表機

Centos7 配置 Samba 共享資料夾和印表機

弄了好久,看了往上好多文章大多數中文的都是那幾篇的變形,照著做還是開不起來,其中中有很多原因,他們只提到一部分而已我猜應該不是全新作業系統去安裝的教程,或者是更新之後變的更安全需要額外開啟權限。
設置完畢之後直接從Windwos上的資料夾打上 \ip 即可連接上,進入網路上的芳鄰是看不到的。

Samba初始化過程

配置完成即可連上,並可見登入使用者的目錄
# 配置smb.conf
vi /etc/samba/smb.conf
[User1]
    read only = No
    guest ok = No
    valid users = user
    browseable = yes

# 新增帳號+重設密碼
smbpasswd -a user
# 刪除帳號
pdbedit -x user

#防火牆允許通過
firewall-cmd --permanent --zone=public --add-service=samba
#SElinux允許通過
setsebool -P samba_enable_home_dirs 1
setsebool -P samba_export_all_ro 1
setsebool -P samba_export_all_rw 1

# 設置文件屬性(好像不用不行再打)
chcon -R -t samba_share_t /home/chg
semanage fcontext -a -t samba_share_t "/home/chg(/.*)?"

# 重新啟動 Samba
systemctl restart smb
# 查看 Samba 是否正確運行中
systemctl status smb

#其他 Samba 指令
systemctl start smb
systemctl enable smb

建立公用資料夾 (大家看的到)

# 新建資料夾
mkdir /var/samba_share
mkdir /var/samba_share/public

# 資料夾更改權限(任何人可見可修改)
chmod 777 /var/samba_share/public
# 資料夾改權限(任人可見僅擁有者可修改)
chmod 755 /var/samba_share/public

# 修改 vi /etc/samba/smb.conf 文件
[public]
    public = yes
    path = /var/samba_share/public
    browseable = yes
    writable = yes
    guest ok = yes

# 重新啟動 Samba
systemctl restart smb

新增其他使用者

如果要新增第二個使用者需要做的步驟有
  1. 加入samba群組 smbpasswd -a user
  2. 配置 smb.conf 文件
  3. 重啟 samba 伺服器 systemctl restart smb

關於SElinux

沒有關閉預設狀態什麼都不能用,必須設置指令開啟才可以使用
他自己從右上角通知跳出來警告,然後警告裡面有教怎麼做
#暫時關閉SElinux(重開機會啟動)
setenforce 0
#確認有無關閉SElinux
getenforce

#開通三個布林值
setsebool -P samba_enable_home_dirs 1
setsebool -P samba_export_all_ro 1
setsebool -P samba_export_all_rw 1

#這兩個警告跳出來的要我按,我不確定要幹嘛的
ausearch -c 'smbd' --raw | audit2allow -M my-smbd
semodule -i my-smbd.pp

windwos端設定

開進去網路芳鄰之後直接點印表機右鍵連線就可以用了。
注意:要記住使用者名稱
如果不記住下一次開機的時候就需要重打,到這邊還不是問題就重就好了;會出問題的是 AdobeReader、Office 這些軟體有列印的功能的,一打開就會偵測印表機這時候因為沒有帳密就偵測不到,結果就是沒有回應整個白白的卡住要等個幾分鐘他才會放棄偵測,此時才正常打開 word 或 pdf。
如果要用指令的方式配置,我查了一些指令設置如下
# 安裝裝驅動
pnputil -a \\driver.inf

# 連線至印表機
rundll32 printui.dll,PrintUIEntry /in /n \\YourIP\dcp7040

# 新增主機名稱
set hostdir=%SystemRoot%\System32\drivers\etc\hosts
echo. >> %hostdir%
echo YourIP ServerName >> %hostdir%
START %SystemRoot%\explorer.exe \\ServerName
上面的方式其實還是要人去點,有嘗試想寫無人職守的方式,不過遇到不少問題,最後我放棄了QuQ

其他

沒有留言:

張貼留言