Безопасность CLASSPATH

Отказ от ответственности

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

Войдите графически из одного пользователя в другой

Войдите в систему как user2 в соответствии с вашим вопросом Open оконечное окно. Позволяет другому пользователю (в вашем вопросе user1) открывать окна в среде вашего рабочего стола.
$ xhost +si:localuser:user1
localuser:sudodus being added to access control list
Войдите в систему как другой пользователь
$ su - user1
Password: 
. Если вы хотите, вы можете запускать некоторые команды текстового режима, чтобы проверить, где вы находитесь , pwd, и кто вы, whoami. Затем вы можете запустить свой браузер файлов или другую графическую программу. Я запускаю Lubuntu, поэтому я начинаю pcmanfm. В стандартном Ubuntu вы запускаете
nautilus --no-desktop

Следующий скриншот показывает, как это работает.

LANG=C pcmanfm делает pcmanfm использовать язык по умолчанию, американский английский, вместо моего локального язык

Копировать файлы

Вы хотите скопировать файлы с user1 на user2.

Log в качестве user2 в соответствии с вашим вопросом

Войдите как user2 в соответствии с вашим вопросом

Права и права собственности на файлы системных данных часто очень важны. Это означает, что вы должны сохранить эти качества, если хотите, чтобы они работали. Рекомендуется создать резервную копию ваших предыдущих системных данных, прежде чем вы начнете использовать некоторые системные данные от другого пользователя, особенно когда есть проблемы с входом в этот пользователь (поэтому некоторые системные данные плохие). Это относительно легко сделать с командами с
sudo rsync -Havn source target
или
sudo rsync -Havn source/ target
. Для получения дополнительной информации см. [F23], например, эффект конечной косой черты. Откройте окно терминала
1
задан 21 May 2018 в 09:29

3 ответа

Да, это может быть уязвимость безопасности.

Помещение .: в начале CLASSPATH означает, что Java использует классы в текущем каталоге, прежде чем беспокоиться о поиске остальной части CLASSPATH пути. Это означает, что файлы .class в текущем каталоге или его подкаталогах будут использоваться вместо любого класса или интерфейса. Например, если файл ./java/lang/String.class существует, он будет использоваться вместо стандартного класса String.

Это означает, что если вы не обращаете внимания на то, что представляет собой текущий каталог, когда вы запускаете Java-программа, программа может загружать вредоносные классы вместо любого класса.

Чтобы сэкономить усилия по усиленной проверке текущего каталога каждый раз, когда вы когда-либо запускаете программу Java, t установите систему по умолчанию.

Если вы собираетесь использовать классы под текущим каталогом при запуске определенной Java-программы, вы обычно должны пропустить настройку CLASSPATH и использовать вместо java, как в:

java -cp ".:…" …

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

2
ответ дан 22 May 2018 в 10:36

Да, это может быть уязвимость безопасности.

Помещение .: в начале CLASSPATH означает, что Java использует классы в текущем каталоге, прежде чем беспокоиться о поиске остальной части CLASSPATH пути. Это означает, что файлы .class в текущем каталоге или его подкаталогах будут использоваться вместо любого класса или интерфейса. Например, если файл ./java/lang/String.class существует, он будет использоваться вместо стандартного класса String.

Это означает, что если вы не обращаете внимания на то, что представляет собой текущий каталог, когда вы запускаете Java-программа, программа может загружать вредоносные классы вместо любого класса.

Чтобы сэкономить усилия по усиленной проверке текущего каталога каждый раз, когда вы когда-либо запускаете программу Java, t установите систему по умолчанию.

Если вы собираетесь использовать классы под текущим каталогом при запуске определенной Java-программы, вы обычно должны пропустить настройку CLASSPATH и использовать -cp вместо java, как в:

java -cp ".:…" …

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

2
ответ дан 17 July 2018 в 13:58

Да, это может быть уязвимость безопасности.

Помещение .: в начале CLASSPATH означает, что Java использует классы в текущем каталоге, прежде чем беспокоиться о поиске остальной части CLASSPATH пути. Это означает, что файлы .class в текущем каталоге или его подкаталогах будут использоваться вместо любого класса или интерфейса. Например, если файл ./java/lang/String.class существует, он будет использоваться вместо стандартного класса String.

Это означает, что если вы не обращаете внимания на то, что представляет собой текущий каталог, когда вы запускаете Java-программа, программа может загружать вредоносные классы вместо любого класса.

Чтобы сэкономить усилия по усиленной проверке текущего каталога каждый раз, когда вы когда-либо запускаете программу Java, t установите систему по умолчанию.

Если вы собираетесь использовать классы под текущим каталогом при запуске определенной Java-программы, вы обычно должны пропустить настройку CLASSPATH и использовать -cp вместо java, как в:

java -cp ".:…" …

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

2
ответ дан 20 July 2018 в 14:02

Другие вопросы по тегам:

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