Сокрытие работы в учетной записи с многочисленными пользователями

Сохраните состояние в переменной и используйте его в END блок.

awk -F: 'NF != 7 {print; err = 1}
         END {exit err}' /etc/passwd
4
25.04.2011, 07:31
5 ответов

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

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

you@local$ ssh shared@cluster "gcc -x c -o yourdir/secret -" < source.c

Отметьте тире в конце команды gcc. Это означает, что gcc считает источник из stdin. Это скомпилирует source.c от Вашей локальной машины до yourdir/secret на кластере. Секретный исходный код никогда не будет существовать как "реальный" файл на кластере. Это будет только существовать как поток в некотором буфере (в процессе sshd, я принимаю).

Если Ваш код не написан в C затем Ваш, должен будет измениться c в -x c опция. Посмотрите здесь для получения дополнительной информации об этом.

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

you@local$ ssh shared@cluster "gcc -x c -o yourdir/secret - && yourdir/secret ; rm yourdir/secret" < source.c

Если Вы действительно параноики, необходимо удостовериться, что выполняете реальный gcc. Другие студенты могли бы записать обертку вокруг gcc, который сохраняет исходный код прежде, чем скомпилировать ее, и поместите ту обертку в свой путь. Необходимо также выполнить реальную комнату.

you@local$ ssh shared@cluster "/usr/bin/gcc -x c -o yourdir/secret - && yourdir/secret ; /bin/rm yourdir/secret" < source.c
5
27.01.2020, 20:49

Afaik там не является никаким способом эффективно скрыть что-то себе.. Вы могли скрыть свой код в глубокой цепочке точечных папок, но, пока Вы видите его, Ваши одноклассники будут видеть его также, потому что они - Вы. И если Вы хотите работать со своим кодом, необходимо видеть его.

То, что можно сделать, настраивает аналогичную систему, например, установите ту же ОС в VirtualBox, или на отдельной машине (заботьтесь об архитектуре), напишите код только в этой системе, скомпилируйте его и только скопируйте двоичные файлы в кластер, чтобы отправить их очереди.
У Ваших противников все еще есть доступ к байт-коду, но намного более трудно понять биты и байты, чем C-источники ;-)

2
27.01.2020, 20:49

Идеальный ответ был бы шифрованием, но по-видимому если Вы не можете вытянуть данные к/от своему собственному компьютеру, затем Вы, вероятно, не можете установить диск, объем или программное обеспечение шифрования файлов.

Тем не менее учителя должны знать то, что они делают и если бы они приняли решение для Вас всех использовать общее пространство, то должна быть причина позади него. Возможно, это должно узнать о доверии и сотрудничестве? Почему бы не спросить их?

Править: так как можно вытянуть данные к и с сервера, почему бы не использовать rsync?

1
27.01.2020, 20:49
  • 1
    я могу вытянуть данные к и с сервера, я просто, не имеет полномочий установить что-либо. –  oadams 25.04.2011, 08:22
  • 2
    Если gpg уже установлен, Вы могли использовать это для шифрования данных. gpg прибывает встроенный ко многим *, отклоняют разновидности (я - assumong, который это *, отклоняют), таким образом, это может быть применимо. Последнее средство должно было бы делать попытку путаницы с некоторой другой стандартной утилитой как uuencode или base64 но это не реальная безопасность. –  Andrew Lambert 25.04.2011, 10:38

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

Можно препятствовать тому, чтобы другие студенты видели исходный код путем компиляции его на машине и загрузки только двоичных файлов и запуска сценариев. Если сервер не выполняет ту же архитектуру процессора как Ваш ПК, установите кросс-компилятор. Gcc легко скомпилировать как кросс-компилятор, существуют довольно четкие указания, связанные исходным кодом. У Вас должны будут также быть пакеты разработки для любых библиотек, с которыми связаны Ваши программы.

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

Вот отрывки Make-файла в качестве примера, которые могут быть полезными:

CC = /usr/local/bin/powerpc-linux-eabi-gcc

test: myprogram
        <myprogram ssh cluster 'cat >oadams; chmod +x oadams; trap "rm ./oadams" EXIT HUP INT TERM QUIT; time ./oadams'
1
27.01.2020, 20:49

По теме шифрования при использовании vi или энергии для редактирования кода, Вы могли бы использовать встроенное шифрование энергии: vim -x myfile.c для новых файлов.

Перед энергией 7.3 это довольно легко вскрываемо, но это остановит случайный просмотр, по крайней мере.

0
27.01.2020, 20:49

Теги

Похожие вопросы