AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 25938
In Process
Clinton Blackmore
Clinton Blackmore
Asked: 2009-06-16 07:07:15 +0800 CST2009-06-16 07:07:15 +0800 CST 2009-06-16 07:07:15 +0800 CST

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

  • 772

在我们的学校,我们为不同的班级提供了包含“Hand In, Hand Out”文件夹的网络共享。学生将作业放入 Hand In 文件夹,教师将作业放入 Hand Out 文件夹。

Hand In 文件夹是学生只能写访问的文件夹。[Mac OS X 将这样的文件夹称为“Drop Box”,因为您可以将文件拖放到其中,但看不到其中的内容。]

我调查了一下,得出的结论是,答案是否定的,但是,权限和访问控制列表的任何组合是否允许一个具有只写访问权限的文件夹,您可以在其中看到驻留在其中的文件的名称(但实际上并没有打开文件)?如果学生不清楚他们是否提交了作业,这将允许他们验证他们是否有。

如果学生可以看到他们上交的文件的文件名,而不是其他任何人的文件名,那就更好了。

更新:另一个真正的麻烦是学生可能需要上交整个文件夹,而不仅仅是单个文件。Mac OS X 使用捆绑包——对用户来说,这些东西看起来像文件,但实际上是目录。(应用程序是最好的例子,但 Pages、Keynote 和哎呀,甚至 TextEdit(当您将图形添加到文档中时)都会保存捆绑包。)制作它需要一些额外的工作,以便他们可以提交文件夹(你可以见下文)。

这是我现有脚本的一部分。请注意,除了产生任何类型的文件列表之外,这就是我想要的:

$ADMIN 是系统管理员用户。$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"

这样做的目的是让管理员用户和教职员工组完全访问 Hand In 文件夹中的文件(以便他们可以删除、移动它们等),并允许学生提交文件或文件夹(但看不到它们完全没有!)。

mac-osx permissions dropbox
  • 5 5 个回答
  • 2100 Views

5 个回答

  • Voted
  1. Catherine MacInnes
    2009-06-16T07:33:29+08:002009-06-16T07:33:29+08:00

    授予对目录(但不是文件)的读取权限应该允许用户查看文件名但不能读取单个文件。因此,您对目录的权限为 666,但对文件的权限为 600(假设您希望学生能够读取自己的文件,否则为 200)。我不知道在 OSX 中有什么方法可以让他们只能看到他们提交的文件。您必须注意的事情(我是 Unix 管理员,而不是 OSX 管理员,所以我不确定如何在 OSX 中执行此操作),您需要确保目录权限不会成为目录中文件的默认权限。

    • 4
  2. Chealion
    2009-06-16T09:59:39+08:002009-06-16T09:59:39+08:00

    您可以使用 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或使用诸如Sandbox之类的 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
    
    • 1
  3. hellimat
    2009-06-16T07:25:12+08:002009-06-16T07:25:12+08:00

    我假设这是窗户,对吧?

    我们在做这样的事情时遇到了很多问题,用户将在“drop off”文件夹中处理 word/excel 文档,并且他们具有写入(但不是删除)访问权限。临时文件会从 Word 和 Excel 建立起来,并引起很多麻烦。每次用户双击他们的一个文件来查看它(如前面提到的,检查他们是否将其打开)以及每次他们没有正确命名并想要重命名时,都会发生这种情况。

    我们最终为用户提供了标准的“读/写/编辑/删除”访问权限,并让监视文件夹的人在收到文件时将文件移出。用户确实失去了查看他们已经上交的内容的能力,但是,嘿,没有完美的计划。

    • 0
  4. Greg Meehan
    2009-06-16T09:23:50+08:002009-06-16T09:23:50+08:00

    我第二次遇到这个问题,并没有看到我认为对你来说可能是一个好的答案,所以让我把这个扔掉:

    一个 ftp 站点怎么样,(独立于操作系统的好处,可以是内部的,等等)然后你可以用这种方法锁定每个学生的文件夹/文件?

    编辑:

    如果您考虑该解决方案,这里有两个链接可能会帮助您:

    FTP mini how-to
    如何在 Windows Server 2003 中限制对 ftp 站点的访问

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

    如何设置“盲投”ftp 站点

    • 0
  5. Brian Addicks
    2009-06-16T09:34:31+08:002009-06-16T09:34:31+08:00

    IMO FTP 是完成您所追求的最简单的方法,但我还有其他一些想法。请记住,这是从 nix 的角度来看的,所以我不确定它将如何适用于 OSX。

    如果 OSX 共享允许您为用户设置 umask,那么您只需要授予他们对该文件夹的读/写权限并设置用户 umask,以便他们制作的新文件只有读取权限(0770 将使其如此文件的用户和组权限设置为 0)。

    我为客户做的一种方法是我使用 incron 立即将他们“Hand In”文件夹中的任何文件位置移动到另一个文件夹,“老师”可以用它做他们想做的事。

    希望有帮助

    • 0

相关问题

  • 如何让 Time Machine 与我的计算机重新关联?[关闭]

  • 如何授予对 Exchange 2007 中每个人的日历的访问权限?

  • 多操作系统环境的首选电子邮件客户端

  • 现在从 mac os 在 NTFS 分区上写入是否安全?

  • 最佳混合环境(OS X + Windows)备份?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve