Каковы последствия установки языкового стандарта для многобайтовой -кодировки, такой как UTF -8?

В качестве альтернативы suxдля безопасного запуска графической команды(firefox-esrв примере ниже )как$AUTHUSER(guestв примере ниже):

AUTHUSER=guest
AUTHSTRING=SI:localuser:${AUTHUSER}
xhost +${AUTHSTRING} > /dev/null
SUDO_ASKPASS=/usr/bin/ssh-askpass
export SUDO_ASKPASS
sudo -k --askpass -u ${AUTHUSER} /usr/bin/firefox-esr
xhost -${AUTHSTRING} > /dev/null
sudo -K

код делает:

  1. предоставляет пользователю guestдоступ к вашему текущему пользователю $DISPLAYчерезxhost +SI:localuser:guest
  2. использует ssh-askpassдля графического запроса пароля (, конечно, вы можете использовать sudoers(5)NOPASSWD:, чтобы избежать этого, если ваша политика безопасности считает, что это нормально. Или вы можете использовать другие askpassпрограммы или указать их в конфигурационных файлах (см. sudo(8)для получения подробной информации о--askpass)
  3. если пароль в порядке (и у вас есть разрешения вsudoers(5))он запускает команду /usr/bin/firefox-esrкак другой пользователь(guest)
  4. после завершения программы права другого пользователя(guest)на доступ к вашему $DISPLAYотменяются черезxhost -SI:localuser:guest
  5. наконец, sudo -Kудаляет кешированный пароль, поэтому при следующем вызове ssh-askpassвам снова будет предложено ввести пароль (вместо использования кешированного пароля)

    хотя это немного больше работы, чем то, что сделали gksu(8)или sux(8), это можно написать в сценарии, и это гораздо более безопасно, чем:

    • xhost +(Любой пользователь будет иметь доступ к вашему графическому дисплею, пока он действует)
    • чтение ~/.xauth другими пользователями (неограниченный доступ этого пользователя к вашему дисплею)
    • что gksu/ suxсделали (временная копия ~/.Xauthority,что позволило указанному пользователю скопировать ваш MIT-MAGIC-COOKIE-1и продолжать использовать ваш дисплей даже после завершения работы gksu/sux (до тех пор, пока вы не выключили машину или не вышли из дисплея -заставки, режим гибернации и т. д. не изменили волшебный файл cookie ).

поскольку это позволит только одному локальному пользователю получить доступ к вашему дисплею, а затем только до тех пор, пока выполняется команда (после завершения команды, $AUTHUSERбольше не сможет получить доступ к вашему дисплею каким-либо образом ).

Другая безопасная альтернатива —ssh -X(без -Y, что на самом деле делает вас менее безопасным! см. ForwardX11Trustedв ssh_config(5)для подробностей ), так как его проще использовать, если вы не пишете его в сценарии, но это вызывает дополнительные накладные расходы (, например. он медленнее )и некоторые программы могут работать некорректно без unsafe-Y.

0
01.12.2020, 08:03
1 ответ

Язык определяет:

  1. Какие символы ваш терминал может принимать и выводить
  2. Какие символы могут принимать и выводить ваши терминальные приложения
  3. Язык ваших приложений

Это вряд ли повлияет на ваши графические приложения.

Приведенный вами пример представляет собой кодировку UTF -16, минимальная единица данных которой составляет 16 бит/2 байта.Это кодировка по умолчанию для многих приложений Windows, но она не поддерживается в Linux, за исключением некоторых утилит, например. iconv.

Крайне не рекомендую переходить на C/ISO -8859 -1, потому что

  1. У вас возникнут проблемы при работе с любым текстом, не поддерживаемым ASCII
  2. У вас будут проблемы с отображением в консоли любых символов, не поддерживаемых ASCII

Наконец, UTF -8 является многобайтовой кодировкой только для символов, не охватываемых ASCII. Текст ASCII можно рассматривать как UTF -8.

Также проверьте этот ответ:В чем разница между UTF -8 и ISO -8859 -1?

2
18.03.2021, 22:46

Теги

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