如何防止用户使用Linux权限更改文件


Answers:


2

您不能这样做:如果用户可以创建文件,则文件将归他所有,并且他可以修改和擦除文件。

我打算提出一个简单的方案,使其具有一个登台目录(用户可以在其中执行他想要的操作)和一个进入目录(用户无法访问),以及一个小型特权程序,用于将文件从登台目录移动到进入目录目录。但是正确地做起来确实很棘手:除其他事项外,您还需要注意特权程序不会移动其他目录中的文件(注意竞争条件,符号链接等../),不会覆盖现有文件(rename(3)是原子的,但可以删除目标位置),不会让用户保持文件描述符打开并在文件移动后对其进行修改(因此,复制比移动更好)。相反,我建议采用现有的强大解决方案:

  • 让用户通过HTTP上传文件。
  • 让用户提交版本控制系统。他也将能够提交新版本。

1

使用linux权限方案,是否可以允许用户创建文件,但以后不能编辑或删除它们?

没有

但是,您还有其他选择,如@Fredrik在对问题的评论中建议的。看这里。


0

从理论上讲,这是一种可行的方法。对于我来说,即使开发概念验证也需要付出太多的努力。您可能会出于同样的原因拒绝它。而且,严格来说,这不是“使用Linux许可方案”。

  • 获取一个开源文件服务器。
  • 修改它以执行所需的规则(即,用户可以在他们具有写访问权的目录中创建文件,并且可以在创建文件后立即写入文件,但是此后,只有root用户才能打开文件进行写入或取消链接)它)。
  • 设置运行修改后的服务器软件的服务器主机。从理论上讲,它可能是您的本地主机;只需确保它所在的目录不可公开访问即可。
  • NFS挂载您/mnt/delivery的文件,并告诉您的用户将其文件放置在此处。

0

简单的答案是在您选择的给定间隔(例如,每15分钟)上运行一个脚本,该脚本将“上载”目录中所有文件的所有权重新分配给预定的“管理员”用户,并将权限设置为“ 644”。这将允许所有用户以只读方式访问上载目录中的所有文件,包括他们自己上载的文件。当然,您可以在首次运行后对脚本进行优化,以仅搜索在上次运行后(例如最近17分钟内)具有创建日期的文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.