Linux下samba配置文件的注意事项,安装说明都是小问题

一、samba安装和配置

1、为啥要用samba

这不前阵子上班了,在公司用到了samba,可以在Linux和Windows之间共享文件,觉得很香,因为之前一直在用FileZilla,每次source insight写好保存,然后再用FileZilla传到linux,单个文件还好。但是公司的项目,那么多文件,我改个两三个,它门都不在同一目录,两边又要对目录,又要刷新上传,太麻烦了。于是乎我想给自己的虚拟机也安装samba。

2、如何安装

sudo apt-get install samba

查看安装版本

smbd -V

3、samba配置

修改配置文件,这里我只需要添加,不需要动全局配置

sudo vi /etc/samba/smb.conf

在最后一行添加如下代码

[book_dir]      				 #这是使用windows登录时你看到的目录名,book_dir下面的目录就是path中的文件

        path = /home/book/code   #要共享的目录,根据自己的实际需求设置,我直接设置成/访问所有,
        #这种情况下映射网络驱动器,要输入: \\192.168.111.111\book_dir,否则一直映射失败

        available = yes          #该共享资源是否可用

        browseable = yes		 #共享资源是否可以浏览

        guest ok = no			 #是否允许guest访问共享资源

        writeable = yes			 #共享资源是否可写

然后重启启动samba,注意你的可能不是smbd,去init.d目录下看看再执行,网上教程版本不一样,文件就不同

/etc/init.d/smbd restart

4、添加samba用户

我的linux下的用户:book@100ask
当前用户是book,是linux下的用户,要用它来添加samba用户
要是不知道你当前用户是什么,命令行输入whoami查看

sudo smbpasswd -a book

回车后会提示你输入密码,这是我的:123456

5、在windows上登录

win+R,输入你的虚拟机ip,形式如下

\\192.168.111.111

回车后会让你输入账号和密码来访问
账号:book
密码:123456

登录尽来你会发现

在这里插入图片描述
这个book_dir不就是配置文件设置的吗,对,就是它。

二、注意事项

guest ok = yes的设置

还要一点要说,这点很重要!!!
安装samba的时候,网上一把教程让你把配置文件中设置成

guest ok = yes    						#  public = yes|no 和guest相同

这当然可以,这样的话你就不用输入账号密码登录了,可以在win+R命令行回车直接进入目录,多好。但是,你不登录的话,相当于以游客的身份使用book_dir这个目录,看下我code目录的文件拥有者,都是book

drwxrwxr-x  4 book book  4096 Jul 25 05:02 code/

当你以guest访问时,你可能无法在code目录下创建/删除 文件/目录,为啥?因为code目录的权限可能不够,从上面看我的是没有w(写)权限。所以会无法创建和删除文件。

解决方法一
使用chmod -R 777 code把code目录的权限改了,让所有用户可以随意使用code目录,但是,当目录权限是 777 的时候,目录会变得绿不拉几的,像下图的nfs_rootfs此目录下的所有文件都是绿的,我看着是贼丑,而且普通c文件和可执行文件都是绿的,也不好分辨,所以我选方法二
在这里插入图片描述

解决方法二
还是老老实实使用book登录吧!
如果不登录,在samba共享目录下下创建一个文件,右键–属性–安全,如下图
你会看到nogroup和nobody,这是什么意思?说明文件的拥有者和组不是book,你一个guest是没有权限操作它的(当然可以使用chmod改其拥有者和组,但是这样麻烦啊)

在这里插入图片描述

登录的话创建文件,咦,它的拥有者和组就是book,就可以操作它
在这里插入图片描述

三、自我总结及其它说明

我现在也迷迷糊糊的,写的不一定全对,有什么错误欢迎指正

安装是很简单的,我就卡在文件权限上了,当初改权限 777 ,全绿的目录太丑,我就一直找能不能在windows下创建文件时,它的属性中拥有者和组是book,当时我还傻傻的把电脑用户名改成book,可惜没卵用。
最后发现是guest ok = yes在作怪,有它在根本不需要登录,直接默认是guest游客登录的,我就说呢,公司里的都需要登录,我自己搞的怎么不需要登录呢!把它改成guest ok = no,会让你输入账号密码登录。或者删除这条命令,你可以说试试

配置文件还有很多选项,还有其他命令,我也没用过,贴在下面供自己参考

1、共享目录的说明

comment = Comment String 共享文件描述
path = /path/to/share_directory 共享文件的绝对路径
allow hosts = host(subnet) 允许访问此共享资源的主机列表
deny hosts = host(subnet) 禁止访问此共享资源的主机列表
writable = yes|no 是否有写权限
browseable = yes|no 是否浏览权限(yes为可见共享,no为隐藏共享)
user = user(@group) 设置所有可能使用该共享资源的用户列表
valid users = user(@group) 指定能够使用该共享资源的用户和组列表
invalid users = user(@group) 指定不能够使用该共享资源的用户和组
read list = user(@group) 设置能够读取该共享资源的用户列表
write list = user(@group) 设置对该共享资源具有写权限的用户列表
admin list = user(@group) 设置对共享资源具有管理权限的用户列表
public = yes|no 指明该共享资源是否能给游客帐号访问
guest ok = yes|no 与public相同
hide dot files = yes|no 是否隐藏以“.”号开头的文件
create mode = 0755 指明新建立的文件的属性,一般是0755
directory mode = 0755 指明新建立的目录的属性,一般是0755
sync always = yes|no 指明写操作后是否进行同步操作
short preserve case = yes|no 指明忽略文件名大小写
preserve case = yes|no 指明保持文件名大小写
case sensitive = yes|no 指明是否对大小写敏感
mangle case = yes|no 指明混合大小写
default case = upper|lower 指明缺省的文件名是全部大写还是小写
force user = lt 强制指定建立文件的属主是谁
wide links = yes|no 指明是否允许共享外符号连接
max connections = 100 设定同时连接数是n
delete readonly = yes|no 指明能否删除已经被定义为只读的文件

root preexec = /bin/mount -t iso9660 /dev/cdrom /mnt/cdrom 自动挂光驱
root postexec = /bin/umount /mnt/cdrom 自动

2、pdbedit命令

root下使用哦
pdbedit命令相关的命令是:smbpasswd

pdbedit命令是samba的用户管理命令。

常用参数

pdbedit -a username:新建Samba账户。

pdbedit -r username:修改Samba账户。

pdbedit -x username:删除Samba账户。

pdbedit -L:列出Samba用户列表,读取passdb.tdb数据库文件。

pdbedit -Lv:列出Samba用户列表详细信息。

pdbedit -c “[D]” -u username:暂停该Samba用户账号。

pdbedit -c “[]” -u username:恢复该Samba用户账号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值