首先通過這次教訓,讓我養成一個好習慣:備份 備份 備份 不管做什么配置或者更改什么東西之前先做好備份! 還有我本身的一個壞毛病:眼高手低!
工廠有一台服務器,由以前的運維裝的Samba ,因為系統中病毒了,所以我直接重裝系統了,想着好配置呢 事先也沒有看配置文件,也沒有備份配置文件,結果最后在權限這一塊吃了大虧,耗了兩天多!
首先我們工廠內網需求很簡單:就是共享就行 沒有用戶目錄權限設置 都可以隨便讀寫
1、下面是安裝命令:
yum -y install samba samba-client samba-common
還會有一些依賴包 會自動安裝
2、然后進入/etc/samba/ 目錄下 會有三個文件
3、所有的配置選項都在smb.conf里面,下面是我的配置文件內容截圖
詳細配置選項
[global]
workgroup = WORKGROUP //這是工作組,可以添加自己的工作組,我用的是默認的WORKGROUP
security = user
map to guest = Bad User //這是samba 4.0版本以后必須設置為user用戶,設置為share 然后用testparm檢測smb.conf 會報錯的 服務也啟動不起來
log file = /var/log/samba/log.%m //log日志及路徑 里面記載的用戶的登錄操作日志
max log size = 50 //日志文件存儲的文件最大的大小
unix charset = UTF-8 //在Linux服務器上面的顯示編碼 如果不知道自己的編碼 可以查看下自己的系統編碼
display charset = UTF-8 //自己服務器上面的顯示編碼 一般都是和unix charset查到的一樣
guest account = nobody //訪問的用戶范圍
dos charset = cp936 //Windows端顯示的編碼
create mask = 777 //賦予權限
directory mask = 777 //賦予權限
[resource] //這個是Windows上顯示的文件夾的名字(共享文件夾)
comment = All Printers //這個是共享文件夾的說明
path = /home/resource //共享文件夾的路徑
browseable = yes //是否讓所有的使用者都看到這個項目
guest ok = yes //是否讓來賓用戶訪問
writable = yes //是否為可以寫入
read only = no //是否設置為只讀
4、然后通過testparm檢測下smb.conf配置文件的正確性
5、這個地方是會出錯的第一個地方:用testparm檢測配置文件的正確性,有可能會出現下面的錯誤
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
解決方法:編輯配置文件 vim /etc/security/limits.conf 在里面加入一行配置
root - nofile 16384
root指root用戶 如果想都所有用戶生效,把root替換為 * 即可!我是設置的 * 下面是配置文件內容
6、創建共享目錄
mkdir /home/resource
7、給共享目錄賦予各種權限(這里設置好了 就沒有權限問題了!)
chmod 777 /home/samba
chown 777 /home/samba
8、firewall加入端口
firewall-cmd --zone=public --add-port=137/udp --permanent
firewall-cmd --zone=public --add-port=138/udp --permanent
firewall-cmd --zone=public --add-port=139/tcp --permanent
firewall-cmd --zone=public --add-port=445/tcp --permanent
9、selinux這里也是容易出現錯誤的地方
setsebool -P samba_export_all_rw on 添加這一條
10、啟動samba服務
systemctl start smb //啟動smb服務
systemctl stop smb //停止smb服務
systemctl restart smb //重啟smb服務
systemctl status smb //查看smb服務狀態
11、over 現在可以盡情的使用啦!