Samba 安裝、配置——可讀 可寫禁止刪除
vi /etc/sysconfig/network
xxxx.server
vi /etc/hosts
127.0.0.1 xxx.server
yum install samba
setenforce 0
systemctl start smb
systemctl start nmb
systemctl enable smb
systemctl enable nmb
iptables -I INPUT -p tcp --dport 445 -j ACCEPT
iptables -I INPUT -p tcp --dport 139 -j ACCEPT
/etc/init.d/iptables save
useradd xxx
userpasswd xxx
mkdir -m 1777 /home/share
pdbedit -a xxx
smbpasswd -a xxx
pdbedit -L
Samba 配置只能上傳下載不能刪除修改的方法
讓上傳的文件不能修改, 只需要讓上傳的文件的權限里不包含寫權限即可.
要讓文件不能刪除, 則涉及到文件父目錄的寫權限問題, 但是不能直接關閉父目錄的寫權限, 因為這樣就不能在該目錄下上傳文件了. 解決方法是在父目錄上設置 t 標志位, 這用用戶就不能刪除這個目錄下不屬於自己的文件, 所以還需要設置文件的所有者不能是上傳的用戶, 將其設置為 root 即可.
綜上, 首先對共享的根目錄設置 1777 權限, 所有者為 root, 然后配置文件 /etc/samba/smb.conf 里面的設置:
[共享名]
inherit owner = Yes # 上傳的文件繼承父目錄的所有者, 而不是使用登錄的賬號名, 這樣上傳的文件的所有者都是 root 了.
writable = Yes # 允許上傳操作
create mask = 1774 # 上傳的文件沒有寫權限
directory mask = 1777 # 上傳的目錄具有所有權限
force directory mode = 1000 # 上傳的目錄設置 t 標志
稍作修改, 去掉 inherit owner = Yes 即可讓用戶可以刪除自己上傳的文件, 不能刪除其他用戶創建的文件
vi /etc/samba/smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
[global]
workgroup = WORKGROUP #Workgroup win系統默認工作域
security = user
passdb backend = tdbsam
ntlm auth = yes #加此處
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[homes]
comment = Home Directories
valid users = %S
browseable = NO
read only = No
inherit acls = Yes
[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775
[share] #共享的目錄及配置
comment=this is Linux share directory
path=/home/share
inherit owner = yes
browsable = yes
writable=yes
read only = no
guest ok = no
create mask = 1774
directory mask = 1777
force directory mode = 1000
win7訪問centos7 Samba的共享目錄輸入帳號和密碼無法登陸解決方法:
Windows7無法正常訪問NAS或者Samba服務器上的共享文件夾。原因在於從Vista開始,微軟默認只采用NTLMv2協議的認證回應消息了,而目前的NAS系統和Samba還只支持LM或者NTLM。
解決辦法:修改本地安全策略
通過Samba服務可以實現UNIX/Linux主機與Windows主機之間的資源互訪,由於實驗需要,輕車熟路的在linux下配置了samba服務,操作系統是redhat linux 9.0,但是在windows7下訪問的時候問題就出現了,能夠連接到服務器,但是輸入密碼的時候卻給出密碼出錯,但確認密碼沒有錯誤。
1、這種情況看來是windows7的問題,解決的辦法是:單擊”開始“-“運行”,輸入secpol.msc,打開“本地安全策略”,在本地安全策略窗口中依次打開“本地策略”-->“安全選項”,然后再右側的列表中找到“網絡安全:LAN管理器身份驗證級別”,把這個選項的值改為“發送 LM 和 NTLM – 如果已協商,則使用 NTLMv2會話安全”,最后確定。
2、修改 /etc/samba/smb.conf,在Global項下增加 ntlm auth = yes 參數
systemctl restart smb
systemctl restart nmb