想在公司内部搭建一个文件服务器,每个用户都有自己单独空间,所有人公用一个共享文件夹,都可以向共享文件夹里面写入文件进行共享,但是只有文件上传者可以删改文件。目前用samba基本实现了,但是有个问题是,在共享文件夹中,所有人都可以写入文件,不可以修改他人上传的文件(因为没有w权限),但是可以删除(因为上层文件夹有w权限)。Samba的配置文件中设置共享文件夹夹夹权限是766,共享文件权限是744。如何解决非文件上传者在共享文件夹中不可以修改文件,但是可以删除文件这种矛盾?或者有其他技术方案实现这种功能?FTP存在这种问题吗?第一次在CSDN上提问,希望各路大神帮帮小弟,不胜感激

解决方案 »

  1.   

    让上传的文件不能修改, 只需要让上传的文件的权限里不包含写权限即可.要让文件不能删除, 则涉及到文件父目录的写权限问题, 但是不能直接关闭父目录的写权限, 因为这样就不能在该目录下上传文件了. 解决方法是在父目录上设置 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  即可让用户可以删除自己上传的文件, 不能删除其他用户创建的文件
      

  2.   


    chmod o+t 目录路径