W naszych szkołach mamy udziały sieciowe dla różnych klas zawierających foldery „Hand In, Hand Out”. Uczniowie umieszczają swoją pracę w folderze Hand In, a nauczyciele umieszczają zadania w folderze Hand Out.
Folder Hand In to folder, do którego uczniowie mają dostęp tylko do zapisu. [Mac OS X nazywa taki folder „Drop Box”, ponieważ możesz przeciągać i upuszczać do niego pliki, ale nie widzieć, co jest w środku.]
Przyjrzałem się temu i doszedłem do wniosku, że odpowiedź brzmi „nie”, ale czy każda kombinacja uprawnień i list kontroli dostępu pozwala mieć folder z dostępem tylko do zapisu, w którym można zobaczyć nazwy plików, które się w nim znajdują ( ale nie otwierają plików)? W przypadku, gdy uczeń nie był pewien, czy oddał zadanie, pozwoliłoby to sprawdzić, czy tak się stało.
O krok lepiej byłoby, gdyby uczniowie zobaczyli nazwy plików, które przekazali, ale nie nazw innych osób.
Aktualizacja: Jeszcze jeden prawdziwy nuans polega na tym, że uczniowie mogą potrzebować oddawać całe foldery, a nie tylko pojedyncze pliki. Mac OS X używa pakietów - rzeczy, które wyglądają jak pliki dla użytkownika, ale w rzeczywistości są katalogami. (Aplikacje są najlepszym przykładem, ale Pages, Keynote i cholera, nawet TextEdit (po dodaniu grafiki do dokumentu), zapisywanie pakietów.) Zajęło trochę dodatkowej pracy, aby umożliwić przekazanie folderów (jak możesz patrz poniżej).
Oto część mojego istniejącego skryptu. Zauważ, że robi to, co chcę, z wyjątkiem uzyskania jakiejkolwiek listy plików w środku:
$ ADMIN jest użytkownikiem administratora systemu. $ STAFF to grupa nauczycieli. $ GRADE to grupa reprezentująca grupę studentów. Polecenie funky chmod służy do ustawiania list ACL w systemie 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"
Dzięki temu administrator i grupa pracowników mają pełny dostęp do plików w folderze Hand In (dzięki czemu mogą je usuwać, przenosić itp.), A uczniowie mogą przekazywać pliki lub foldery (ale ich nie widzieć) w ogóle!).
źródło
Odpowiedzi:
Nadanie uprawnień do odczytu katalogu (ale nie plików) powinno pozwolić użytkownikom zobaczyć nazwy plików, ale nie odczytać poszczególnych plików. Zatem twoje uprawnienia do katalogu wyniosłyby 666, ale do plików - 600 (zakładając, że chcesz, aby uczniowie mogli czytać własne pliki, w przeciwnym razie byłoby to 200). Nie znam żadnego sposobu, aby to zrobić w OSX, aby mogli zobaczyć tylko przesłane przez siebie pliki. Rzeczą, na którą musisz uważać (a ja jestem administratorem Uniksa, a nie administratorem OSX, więc nie jestem pewien, jak to zrobić w OSX), musisz upewnić się, że uprawnienia do katalogu nie stają się domyślne uprawnienia do pliku w katalogu.
źródło
Możesz użyć list ACL, aby w większości osiągnąć ten cel:
DoręczaćZakładam, że używana jest tutaj grupa:
Dla grupy
student
chcesz włączyć następujące flagi:"group:student allow list,add_file,add_subdirectory,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit"
I następujące flagi wyraźnie wyłączone:
"group:student deny list,search,file_inherit,limit_inherit,only_inherit"
Uczniowie nie są w stanie odczytać żadnego z plików ani ich usunąć. Ale niestety mogą wyświetlić wszystkie pliki.
Możesz ustawić je za pomocą wiersza poleceń, używając
chmod
lub używając GUI, takiego jak Sandbox .Przykład użycia:
źródło
Zakładam, że to są okna, prawda?
Mieliśmy wiele problemów z robieniem czegoś takiego, gdy użytkownicy pracowali nad dokumentem Word / Excel w folderze „drop off” i mieli dostęp do zapisu (ale nie usuwania). Pliki tymczasowe gromadziłyby się w programach Word i Excel i powodowały wiele problemów. Dzieje się tak za każdym razem, gdy użytkownik dwukrotnie kliknie jeden ze swoich plików, aby na niego spojrzeć (jak wyżej wspomniany, sprawdzając, czy go oddał), a także za każdym razem, gdy nie nazwie go poprawnie i chce zmienić nazwę.
W końcu daliśmy użytkownikom standardowy dostęp do odczytu / zapisu / edycji / usuwania i poprosiliśmy ludzi monitorujących foldery o przeniesienie plików po ich otrzymaniu. Użytkownicy stracili możliwość zobaczenia, w co już się zgłosili, ale hej, żaden plan nie jest idealny.
źródło
Drugi raz natknąłem się na to pytanie i nie widziałem, co może być dla ciebie dobrą odpowiedzią, więc wypowiedz mi to:
Co powiesz na stronę ftp (korzyść z niezależności systemu operacyjnego, może być wewnętrzna itp.) Następnie możesz zablokować foldery / pliki każdego ucznia dokładnie tą metodą?
EDYTOWAĆ:
Jeśli zastanowisz się nad tym rozwiązaniem, oto dwa linki, które mogą ci pomóc:
FTP mini instrukcje
Jak ograniczyć dostęp do witryny ftp w systemie Windows Server 2003
DRUGA EDYCJA (myślę, że to może być to, czego szukasz)
Jak skonfigurować witrynę ftp typu „blind-drop”
źródło
IMO FTP to najprostszy sposób na osiągnięcie tego, czego szukasz, ale mam kilka innych pomysłów. Pamiętaj, że jest to z punktu widzenia Nix, więc nie jestem pewien, jak dobrze będzie miało zastosowanie do OSX.
Jeśli udostępnianie OSX umożliwia ustawienie umask dla użytkowników, wystarczy dać im dostęp do odczytu / zapisu w folderze i ustawić umask użytkowników, aby tworzone przez nich nowe pliki miały tylko uprawnienia do odczytu (0770 sprawi, że uprawnienia użytkownika i grupy do pliku są ustawione na 0).
Jednym ze sposobów, w jaki to zrobiłem dla klienta, jest użycie incron do natychmiastowego przeniesienia dowolnych miejsc plików w folderze „Hand In” do innego folderu, w którym „nauczyciel” mógłby zrobić z nim, co chce.
Mam nadzieję, że to pomaga
źródło