Назад | Перейти на главную страницу

Доступ только для записи, позволяющий просматривать файлы?

В наших школах у нас есть общие сетевые ресурсы для разных классов, содержащие папки «Раздача, раздача». Студенты помещают свои работы в папку Hand In, а учителя помещают задания в папку Hand Out.

Папка Hand In - это папка, к которой студенты имеют доступ только для записи. [Mac OS X называет такую ​​папку «Drop Box», так как вы можете перетаскивать в нее файлы, но не видеть, что внутри.]

Я изучил его и пришел к выводу, что ответ был отрицательным, но позволяет ли любая комбинация разрешений и списков управления доступом иметь папку с доступом только для записи, в которой вы можете видеть имена файлов, которые находятся в ней ( но на самом деле не открывать файлы)? В случае, если учащийся не знал, сдал ли он задание, это позволило бы ему проверить, сдал ли он задание.

На один шаг лучше было бы, если бы учащиеся могли видеть имена файлов, которые они сдали, но не чьи-либо еще.

Обновить: Еще одна реальная неприятность заключается в том, что студентам может потребоваться сдать целые папки, а не только отдельные файлы. Mac OS X использует пакеты - вещи, которые для пользователя выглядят как файлы, но на самом деле являются каталогами. (Приложения - лучший пример, но Pages, Keynote и, черт возьми, даже TextEdit (когда вы добавляете графику в документ), сохраняют пакеты). Потребовалась дополнительная работа, чтобы сделать это, чтобы они могли передавать папки (как вы можете увидеть ниже).

Вот часть моего существующего сценария. Обратите внимание, что это делает то, что я хочу, за исключением вывода какого-либо списка файлов внутри:

$ ADMIN является системным администратором. $ STAFF - это группа учителей. $ GRADE - это группа, восстанавливающая класс студентов. Команда funky chmod - это то, что делают для установки ACL в OS X.

# 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 (чтобы они могли их удалять, перемещать и т. Д.), И это позволяет студентам передавать файлы или папки (но не видеть их. вообще!).

Предоставление разрешений на чтение для каталога (но не для файлов) должно позволить пользователям видеть имена файлов, но не читать отдельные файлы. Таким образом, ваши права доступа к каталогу будут 666, а для файлов - 600 (при условии, что вы хотите, чтобы учащиеся могли читать свои собственные файлы, иначе было бы 200). Я не знаю, как это сделать в OSX, чтобы они могли видеть только отправленные файлы. Вы должны быть осторожны (а я администратор Unix, а не OSX, поэтому я не уверен, как это сделать в OSX), это то, что вам нужно убедиться, что права доступа к каталогу не становятся разрешения по умолчанию для файла в каталоге.

Вы можете использовать ACL для достижения этой цели:

Hand-In

Я предполагаю, что здесь используется группа:

Для группы 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 или используйте графический интерфейс, например Песочница.

Пример использования:

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

Я предполагаю, что это окна, верно?

У нас было много проблем, делая что-то вроде этого, когда пользователи работали бы над документом word / excel в папке «drop-off», и у них был доступ на запись (но не на удаление). Временные файлы будут создаваться из Word и Excel и вызывать много головной боли. Это будет происходить каждый раз, когда пользователь дважды щелкает один из своих файлов, чтобы посмотреть на него (как упомянуто выше, проверяя, вернули ли они его), а также каждый раз, когда он неправильно называет его и хочет переименовать.

В конце концов мы предоставили пользователям стандартный доступ «чтение / запись / редактирование / удаление» и попросили людей, следящих за папками, перемещать файлы, когда они их получали. Пользователи действительно потеряли возможность видеть то, что они уже сдали, но, эй, нет идеального плана.

Второй раз я столкнулся с этим вопросом и не понял, что, как я полагал, может быть для вас хорошим ответом, поэтому позвольте мне отбросить его:

Как насчет ftp-сайта (преимущество в том, что он не зависит от ОС, может быть внутренним и т. Д.). Тогда вы могли бы заблокировать папки / файлы каждого ученика именно этим методом?

РЕДАКТИРОВАТЬ:

Если вы рассматриваете это решение, вот две ссылки, которые могут вам помочь:

Мини-инструкция по FTP
Как ограничить доступ к ftp-сайту в Windows Server 2003

ВТОРОЙ РЕДАКТИРОВАНИЕ (я думаю, это может быть то, что вы ищете)

Как создать ftp-сайт для слепого доступа

IMO FTP - самый простой способ выполнить то, что вам нужно, но у меня есть несколько других идей. Имейте в виду, что это с точки зрения nix, поэтому я не уверен, насколько хорошо это применимо к OSX.

Если совместное использование OSX позволяет вам установить umask для ваших пользователей, вам просто нужно предоставить им доступ для чтения / записи в папке и установить umask пользователей так, чтобы новые файлы, которые они создают, будут иметь только разрешения на чтение (0770 сделает это так, права пользователя и группы для файла установлены на 0).

Один из способов, которым я сделал это для клиента, - я использовал incron для немедленного перемещения любых файлов из их папки «Hand In» в другую папку, где «учитель» мог бы делать с ним все, что они хотят.

надеюсь, это поможет