Как я отключаю полномочия копии?

Можно сделать цикл по каталогам, которых Вы хотите создать резервную копию. Отметьте использование переменной err отслеживать любую ошибку.

err=0
for d in ~/Documents ~/Pictures ~/Videos; do
  if [ -d "$d" ]; then
    ditto "$d" ~/BACKUP/"${d##*/}" || err=1
  else
    echo 1>&2 "Missing directory: $d"
    err=1
  fi
done
exit $err

С другой стороны, можно сделать функцию, которая обрабатывает один каталог и называет его многократно. Отметьте использование err снова.

backup () {
  if [ -d "$1" ]; then
    ditto "$1" "$2" || err=1
  else
    echo 1>&2 "Missing directory: $1"
    err=1
  fi
}
err=0
backup ~/Documents ~/BACKUPS/Documents
backup ~/Pictures ~/BACKUPS/Pictures
backup ~/Videos ~/BACKUPS/Videos
2
13.03.2013, 23:50
5 ответов

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

Отредактированный с дополнительной информацией, так как вопрос был исправлен:

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

  • создайте пользователя, который будет использоваться только для этой программы, например. guiuser
  • измените владение/GUI/images каталога к, например. guiuser
  • измените полномочия каталога и файлов в нем так, чтобы только guiuser прочитал разрешение
  • измените владельца программы GUI.exe, который будет принадлежать guiuser
  • полномочия изменения программы выполнить setuid (chmod u+s /GUI/program/GUI.exe)

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

6
27.01.2020, 21:49
  • 1
    я твердо убежден, что, делая программу setuid только даст иллюзию безопасности в этом случае. Насколько Вы готовы держать пари, что программа Tejas, которая не была ясно записана с учетом требований безопасности, не будет иметь никакой дыры расширения полномочий? –  Gilles 'SO- stop being evil' 13.03.2013, 23:43
  • 2
    я не готов поставить что-либо вообще на этом. Но затем, я не держал бы пари на своих собственных программах или, учитывая то, как я обычно чувствую о своем собственном коде, когда я возвращаюсь к нему после года или два. –  Jenny D 14.03.2013, 09:38
  • 3
    вторая точка: если пользователи действительно будут хотеть получить доступ к изображениям, то будет много других способов взломать корень в локальной системе и достигнуть их. Да, даже если Вы сохраняете систему исправленной и т.д. –  Jenny D 14.03.2013, 09:40
  • 4
    Это будет достаточно для меня на данный момент. Спасибо Jenny D и все, я запишу свою программу более безопасным способом теперь вперед. удача –  Tejas 14.03.2013, 16:42
  • 5
    , и я рад, что мог иметь некоторую справку. –  Jenny D 14.03.2013, 16:45

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

Однако в зависимости от того, что Вы делаете, Вы можете выполнять свою цель путем создания данных не читаемыми обычными пользователями и получили доступ только через специальную программу (в былые времена, setuid программу; в эти дни веб-приложение могло бы быть более соответствующим). Та программа скупо выдала бы биты данных по запросу и не целые файлы. Так как свойственная проблема остается, это не может предотвратить копирование, но это может сделать это более трудным, потому что у Вас может быть логика к запросам ограничения скорости или подобный. Или, можно представить данные в способом с потерями, вместо того, чтобы дать необработанную информацию. Например, если источник находится в HTML, отправьте представленный простой текст вместо этого. Решительный пользователь мог предположить и восстановить оригинал, но вряд ли получит точный результат.

4
27.01.2020, 21:49
  • 1
    . Ваш ответ выглядит более полезным для меня, пройдите мой сценарий (обновленный Вопрос выше). –  Tejas 13.03.2013, 17:42

Если Вы собираетесь отобразить те изображения, они должны быть читаемыми. Если они могут быть считаны, они могут быть скопированы, потому что копирование состоит из чтения чего-то и записи его в другом месте. Это идет, отображаете ли Вы их в пользовательском приложении или через сеть, как предложено mattdm. Когда веб-браузер отображает изображение, ему сначала нужно к загруженному (если бы он не загружал изображение, то он не знал бы, что отобразиться, в конце концов).

Можно предоставить программе дополнительные полномочия и сделать изображения доступными только с теми дополнительными полномочиями, как предложила Jenny D. Однако нет никакого шанса, что Вы сможете сделать это, не разрабатывая Ваше приложение, чтобы быть безопасными с нуля. Кроме того, у системного администратора был бы доступ к изображениям так или иначе.

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

2
27.01.2020, 21:49
  • 1
    * Вы почти наверняка пытаетесь решить социальную проблему через технологию. Это известно для не работы. * Это должно быть татуировано на внутренней части век большинства программистов, менеджеров, и др. –  Jenny D 14.03.2013, 09:41

Обновление: Мой Сценарий, Мы разработали программу GUI, которые имеют некоторые изображения, которые мы создали путем потребления партии времени и усилий.

Хорошо, поднимание с полномочиями файла и setuid () на Вашем приложении могло бы помешать обычным пользователям копировать изображения. Это не помешает действительно решительному человеку "красть" их все же. Gilles намекнул на это в комментарии к другому ответу.

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

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

Лучшая надежда состоит в том, чтобы, вероятно, только поместить уведомления об авторском праве на изображения.

1
27.01.2020, 21:49

Не относительно копии. Инструменты, которые копируют файлы просто, читают их, и не было бы никакого пути к системе для сообщения, какова цель чтения.

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

0
27.01.2020, 21:49
  • 1
    Если Вы устраняете мою возможность записать где-нибудь, я мог бы начать делать фотографии экрана (я предполагаю, что могу закодировать приблизительно 1 МБ на экранный, учитывая хорошую камеру — я не знаю, сколько цветов я смог бы различить надежно). –  Gilles 'SO- stop being evil' 13.03.2013, 23:41

Теги

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