可以看到存在的文件的只写访问?

在我们的学校,我们有不同类别的networking共享,包含“手动,手动”文件夹。 学生把他们的工作放在Hand In文件夹中,教师把作业放在Hand Out文件夹中。

Hand In文件夹是学生可以写入的文件夹。 [Mac OS X将这样的文件夹称为“Drop Box”,因为您可以将文件拖放到该文件夹​​中,但不会看到里面是什么。

我看了一下,得出的结论是,答案是否定的,但是,权限和访问控制列表的任何组合都允许你拥有一个只写访问的文件夹,在这个文件夹中你可以看到驻留在其中的文件的名字但实际上并没有打开文件)? 如果学生不清楚他们是否转任了一个分配机构,这将使他们能够validation他们是否有。

如果学生能够看到他们打开的文件的文件名,而不是其他人的文件名,那么更好的办法就是更好一些。

更新:一个更真实的教育是学生可能需要打开整个文件夹,而不是单个文件。 Mac OS X使用捆绑包 – 对用户来说看起来像文件的东西,但实际上是目录。 (应用程序是最好的例子,但Pages,Keynote,甚至TextEdit(当你添加一个graphics到你的文档),保存包)。它需要一些额外的工作,使他们可以交出文件夹见下文)。

这是我现有的脚本的一部分。 请注意,这是我想要的,除了产生任何types的文件列表里面:

$ ADMIN是系统pipe理员用户。 $ STAFF是一组教师。 $ GRADE是一个代表学生成绩的小组。 奇怪的chmod命令是在OS X下设置ACL的方式。

# Create the hand-in folder mkdir "Hand In" chown "$ADMIN:$GRADE" "Hand In" chmod 4730 "Hand In" chmod +a "$ADMIN allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,file_inherit,directory_inherit" "Hand In" chmod +a "$STAFF allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,file_inherit,directory_inherit" "Hand In" chmod +a "$GRADE allow add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,file_inherit,directory_inherit" "Hand In" 

然后,pipe理员用户和工作人员组就可以完全访问Hand In文件夹中的文件(这样他们就可以删除它们,移动文件等),并允许学生提交文件或文件夹(但不能看到它们在所有!)。

为目录(但不是文件)提供读取权限应允许用户查看文件名,但不能读取单个文件。 所以你对这个目录的权限是666,但是对于这个文件,这个权限是600(假设你想让学生能够读取他们自己的文件,否则就是200)。 我不知道在OSX中做任何的方式,以便他们只能看到他们提交的文件。 你必须小心的事情(我是一个Unixpipe理员,而不是一个OSXpipe理员,所以我不知道如何做到这一点在OSX),是你需要确保目录权限不成为目录中文件的默认权限。

您可以使用ACL来主要实现这一点:

提交

我假设在这里使用一个组:

对于小组student您希望启用以下标志:

"group:student allow list,add_file,add_subdirectory,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit"

并明确禁用以下标志:

"group:student deny list,search,file_inherit,limit_inherit,only_inherit"

学生不能真正阅读任何文件,也不能删除任何文件。 但不幸的是,他们可以列出所有的文件。

您可以使用chmod通过命令行来设置它们,或者使用诸如沙盒之类的GUI。

用法示例:

 chmod -a "students allow read,write,append,readattr,writeattr,readextattr,writeextattr,readsecurity" /PATH/TO/HAND/IN/FOLDER chmod -a "students deny list,search,file_inherit,limit_inherit,only_inherit" /PATH/TO/HAND/IN/FOLDER 

我假设这是Windows,对不对?

我们遇到了很多问题,像这样,用户将在“drop off”文件夹中对word / excel文档进行操作,并且他们已经写入(但不删除)访问权限。 临时文件将build立从Word和Excel,并导致很多头痛。 每当用户双击一个文件来查看它时,就会发生这种情况(就像前面提到的,检查是否将其打开),并且每次都没有正确命名并且要重命名。

我们最终给了用户标准的“读/写/编辑/删除”权限,让人们在收到文件时监视这些文件夹。 用户确实已经失去了看到他们已经进入的能力,但是,嘿,没有一个计划是完美的。

第二次我遇到了这个问题,并没有看到我认为可能是一个很好的答案,所以让我们抛出:

怎么样一个FTP站点,(独立于操作系统的好处,可以是内部等)然后,你可以locking每个学生的文件夹/文件完全一样的方法?

编辑:

如果你考虑这个解决scheme,这里有两个链接可以帮助你:

FTP迷你如何
如何在Windows Server 2003中限制对FTP站点的访问

第二次编辑,(我想这可能是你要找的)

如何设置一个“盲目的”FTP站点

国际海事组织FTP是最简单的方法来完成你所追求的,但我有一些其他的想法。 请记住,这是从nix的angular度来看,所以我不确定它将如何适用于OSX。

如果OSX共享允许你为你的用户设置umask,那么你只需要给他们对文件夹的读/写访问权限,并设置用户umask,使他们所做的新文件只有读权限(0770将使它该文件的用户和组权限设置为0)。

我为客户做的一个方法是使用incron立即将他们的“Hand In”文件夹中的任何文件位置移动到另一个“teacher”可以按照自己的意愿进行操作的文件夹中。

希望有所帮助