Samba文件共享服务配置

总的需求是用smaba配置文件共享服务,并限定每个用户的存储空间,最后还要有个GUI让smaba用户自己修改密码,其中用到了Smaba,qouta,apache及changepassword。

配置Samba服务器

配置samba服务器比较简单,只记录重点:
samba配置文件路径:/etc/samba/smb.conf
在创建samba用户之前必须先创建系统用户,然后才能追加samba用户。

sudo adduser user1

只需要创建samba用户,不想要系统用户,可以设置不让系统用户有登录权限

sudo useradd -s /usr/sbin/nologin user1

修改密码

sudo smbpasswd user1

重启服务器

sudo service smbd restart

不出意外,完成samba配置后,在windows的文件系统输入虚拟机的IP就可以访问到共享文件。

windows samba共享服务 samba文件共享服务配置过程_apache


这里每个文件都设置了登录用户和密码,一次只能登录其中一个,要退出重新登录,可以在cmd中输入以下命令中断连接,然后重新登录。

net use * /del /y

文件配额

利用quota命令
详细参照如下文章:linux(ubuntu)磁盘配额(quota命令)()
需要说明的是格式化时需谨慎,它会把里面的东西都删掉,最好新建一个目录。

利用changepassword让用户自己修改密码

参考文章:搭建samba、apache、changepassword,用户手动修改samba用户密码 此文大致上满足所有需求,只是在配置apache时一直出现问题,所以参考下文解决:Python+Apache+CGI完全配置

刚开始配置时,一脸懵逼,虽然自己照着做了一遍,但问题不断,很难受,在网上查看了很多文章,头都大了。想过自己写一个GUI,代码量也不大,但在自己写时出现了一些问题,如下:

  1. 在不用框架的情况下怎么把html数据传给python处理,最后是利用cgi;
  2. apache、cgi配好了,但在cgi里使用os.system("./shell.sh")执行脚本时却没有结果

    原想用此句传入用户名及密码给shell脚本测试修改samba用户密码,但怎么也没成功,单独运行脚本可以修改到,测试时发现在cgi里也运行了这句,并未报错,但就是没有修改成功,找不到原因;
  3. 修改samba用户密码我是直接用sudo获得权限然后修改,未找到用户自己修改密码的办法。考虑过samba用户关联系统用户,测试了在对应系统用户下修改相应的samba用户密码,没有权限,只能在有root的用户下用sudo smbpasswd user1修改;
  4. 在web页面里直接执行系统脚本文件修改samba未免太过草率,不具任何安全性。
    考虑到以上这些问题都未能解决,发现自己想法太过天真,经验尚少,最终还是决定采用changepassword作为GUI。本想研究一下它的源码,结果也未成功。

参考文章:

  1. 如何在Ubuntu 16.04上安装Samba服务器
  2. linux(ubuntu)磁盘配额(quota命令)
  3. 搭建samba、apache、changepassword,用户手动修改samba用户密码
  4. Python+Apache+CGI完全配置
  5. samba_changepassword自主修改密码
  6. 一句话脚本系列之修改smb用户密码
  7. samba图形化配置工具swat