Поскольку FUSE - это «Файловая система в пространстве пользователя», это могло произойти из-за нежелательных подключений или структур виртуальной файловой системы в вашей системе, о которых вы не знали Я вообще хочу быть там.
Смена владельца устройств подразумевает, что другие пользователи могут напрямую использовать эти устройства без прав администратора (root / sudo). Изменение владельца группы на root: fuse
будет проблемой безопасности , если вы не можете контролировать, кто является членом группы fuse
.
Но если группа предохранитель
представляет собой ограниченную контролируемую группу пользователей, которой вы доверяете (и / или которые единственные, кому действительно нужно использовать устройство), тогда проблема безопасности переводится в безопасность пользователей (насколько легко можно украсть их личные данные).
Вообще говоря, чем больше вы чем-то делитесь, тем менее защищенным оно становится ... но также и более строгая защита, тем меньше юзабилити. Так что, в конце концов, все упирается в желаемый баланс.
Для доступа к X вам нужны переменные окружения DISPLAY
и XAUTHORITY
. В зависимости от настроек sudo может удалить их. Вы можете проверить это с помощью sudo env
, чтобы увидеть переменные окружения.
Чтобы сохранить пользовательскую среду, вы можете использовать sudo -E
. У этого есть ловушка HOME
для дома ваших пользователей, и файлы конфигурации могут получить неправильные права доступа к файлам. Однако, чтобы избежать этого, sudo -H
устанавливает HOME
в /root
.
Объедините это для gparted:
sudo -EH gparted
С помощью:
можно установить только нужные переменные.sudo env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY gparted
Сообщения об ошибках:
cannot open display:
означает, что DISPLAY
пусто или не существует.
no protocol specified
означает, что DISPLAY
установлен и действителен, но XAUTHORITY
, указывающий на куки-файл аутентификации, не установлен или куки-файл недействителен. В качестве альтернативы, xhost +SI:localuser:root
разрешает root временный доступ к X до выхода из системы.
То же самое относится и к доступу Wayland с WAYLAND_DISPLAY
и XDG_RUNTIME_DIR
. Проблемы с корневым доступом Wayland также можно решить с помощью sudo -EH
. Подробности и ловушку с XDG_RUNTIME_DIR
см. в . Будет ли Wayland когда-либо поддерживать графический sudo?
Есть kdesudo
, gsudo
и некоторые другие sudo
, которые решают эту проблему.
Вот один из них, который я взломал вместе (без аудита/проверки безопасности ).
#/bin/bash
inner() {
su - "$user" -c "xauth list" |
grep "$(echo "$display" |
cut -d ':' -f 2 |
cut -d '.' -f 1 |
sed -e s/^/:/ ) " |
xargs -n 3 xauth add &&
"$@"
}
if [ "$1" = "---innermode" ]
then
shift
user="$1"
display="$2"
shift 2
inner "$@"
else
self="$0"
sudo "${self}" ---innermode "$USER" "$DISPLAY" "$@"
fi