用过mount命令挂载windows目录到linux,这个方法有几个问题:
- 会出现符号链接的问题(windows无法创建符号链接)
- windows通过git拉项目下来,然后通过共享目录挂载到linux,结果在linux项目运行出错原因:由于windows下git设置了autocrlf true(自动转换lf为crlf),然后共享目录到linux,linux下读到的配置文件的是crlf,不是lf,结果解析字符串出错(const char* user="root\r"),多了个'\r' 解决方法:使用dos2unix转换配置文件 dos2unix -k -n dos_file unix_file
故考虑使用Samba
ubuntu配置samba
1. sudo apt install samba
2. vim /etc/samba/smb.conf
3. 最后面输入:
[sambashare]
comment = Samba on Ubuntu
path = /home/username/sambashare
read only = no
browsable = yes
hosts allow=192.168.2.3
valid users = tom
hide unreadable = yes
4. 重启samba:
sudo service smbd restart
5. 创建samba用户密码,(用户是linux系统用户tom,samba使用自己的密码)
sudo smbpasswd -a tom
6. windows访问:\\linuxIP
hosts allow只允许192.168.2.3这个IP访问
valid users限制只有用户tom才能访问,注意tom是linux系统用户
hide unreadable = yes使不可读的用户不能看见该目录
samba其它命令:
查看samba所有用户
pdbedit -L
添加samba用户:
smbpasswd -a 用户
删除用户:
pdbedit -L 用户
centos配置samba
查看SeLinux状态:
sestatus
临时关闭SeLinux:
setenforce 0
永久关闭SeLinux:
修改配置文件/etc/selinux/config,将SELINU置为disabled (需要重启机器)
1)systemctl开机开启smb服务
systemctl enable smb
systemctl start smb
2)永久关闭SeLinux
vim /etc/selinux/conf
SELINUX=disbaled
3)防火墙永久添加samba服务
firewall-cmd --add-service=samba --permanent
firewall-cmd --add-service=samba
windows切换用户前要:
net use * /del /y
get-smbconnection
删除凭证:
控制面板-》用户账号-》凭证管理器
smbclient错误:tree connect failed: NT_STATUS_BAD_NETWORK_NAME
设置共享目录code:chown nobody:nobody code/