前些日子因为公司需求搞不懂为什么要用samba实现FTP的功能,现在想想大概是共享要比ftp方式访问要方便多了吧。之前访问samba的时候出现默认账户是guest并且是灰色的,只能输入密码,我试了好多次发现都是错误的正确的登录方式看下面。
需求如下:1、有个共同的目录,上面放置了共同的资料和软件工具,每个人都可以访问并下载。只有root用户有权限去修改和删除、以及添加其他用户只能访问。而且默认情况下所有用户不需要输入用户名和密码都可以直接访问。2、建立个人的目录,只有系统用户中存在的用户才能拥有自己的家目录里的权限。就是说我张三可以有我自己的共享路径且需要输入密码和用户名才可以访问,除了root用户其他人无权访问。3、必须是samba服务,也就是说只访问共享的不能ftp的。
分析:有两种方式可以实现,针对samba配置文件在全局设置security为share是一种方式,或设置security为user也可以实现上述功能。具体见配置文件
配置:安装samba的步骤就不说了,我直接说配置文件吧。相应的配置文件中所涉及的目录一定要建立好,并赋予相应的权限。
先说security为user的时候的配置文件
- [global]
- workgroup = ASK
- netbios name = file-server!
- server string = Samba Server
- guest account =nobody
- log file = /var/log/samba/%m.log
- max log size = 50
- security = user ##认证方式为user
- map to guest = bad user ##这个就是关键,所有坏的用户都到这边,也就是默认登录的地方
- encrypt passwords = yes
- smb passwd file = /etc/samba/smbpasswd
- [sharefile] ##每个人可以登录的默认目录,不需要输入用户名和密码
- comment = share file
- path=/software
- public=yes
- writable = no
- [user] ##个人家目录需要输入用户名和密码才能新建、删除、添加等
- path=/home/%u
- public= no
- writable= yes
- browsable= yes
- [backup]
- path=/home
- valid users= root
- public= no
- writable= yes
- guest ok= yes
- Browsable= no
再说security为share的配置文件如下:
- [global]
- workgroup = ASK
- netbios name = file-server!
- server string = Samba Server
- guest account = nobody
- log file = /var/log/samba/%m.log
- max log size = 50
- security =share ##认证方式为share
- encrypt passwords = yes
- smb passwd file = /etc/samba/smbpasswd
- [sharefile] ##每个人默认都可以直接访问到的,不需要输入密码
- comment = share file
- path=/software
- public=yes
- writable = no
- [share]
- writable= yes
- comment= administrator use
- #path=/software
- path=/software
- public= no
- valid users= root
- browseable= no
- writable= yes
- [user] ##系统用户的家目录即为个人的共享目录需要输入用户名和密码
- path=/home/%u
- public= no
- writable= yes
- browsable= yes
- [backup] ##备份个人家目录的时候需要的
- path=/home
- valid users= root
- public= no
- writable= yes
- guest ok= yes
- Browsable= no
记住要设置好iptables和selinux哦,还要注意权限的集中原则,即samba的权限和系统文件的权限包括用户的权限要把握好就是了。下面说下登录情况
正确登录个人家目录的方式是使用映射网络驱动方式。如下图是anfang的账户登录自己的家目录的情况,这个用户是系统的用户,使用系统用户的密码。记得是要访问的共享名字而不是自己的用户名字。这里是user。实际上访问的是home/anfang目录