Это не проблема Guake, это - как Ваш терминальный заголовок является установкой. Новая версия Guake уважает терминальный заголовок от оболочки. Я держал пари, что Вы также получаете тот же длинный заголовок в Терминале Gnome. Проверьте, как настроить терминальный заголовок от Вашей оболочки: http://www.faqs.org/docs/Linux-mini/Xterm-Title.html
Выполнение unshare -m
дает вызывающему процессу частную копию его пространства имен монтирования, а также отменяет общий доступ к атрибутам файловой системы, так что он больше не использует общий корневой каталог, текущий каталог , или атрибуты umask с любым другим процессом.
Так о чем говорится в предыдущем абзаце? Давайте попробуем разобраться на простом примере.
Терминал 1:
Я выполняю следующие команды в первом терминале.
#Creating a new process
unshare -m /bin/bash
#creating a new mount point
secret_dir=`mktemp -d --tmpdir=/tmp`
#creating a new mount point for the above created directory.
mount -n -o size=1m -t tmpfs tmpfs $secret_dir
#checking the available mount points.
grep /tmp /proc/mounts
Последняя команда дает мне результат в виде,
tmpfs /tmp/tmp.7KtrAsd9lx tmpfs rw, relatime, size = 1024k 0 0
Я также выполнил следующие команды.
cd /tmp/tmp.7KtrAsd9lx
touch hello
touch helloagain
ls - lFa
Вывод команды ls
:
ls -lFa
total 4
drwxrwxrwt 2 root root 80 Sep 3 22:23 ./
drwxrwxrwt. 16 root root 4096 Sep 3 22:22 ../
-rw-r--r-- 1 root root 0 Sep 3 22:23 hello
-rw-r--r-- 1 root root 0 Sep 3 22:23 helloagain
Так что же такого особенного в этом? Зачем мне это делать?
Теперь я открываю другой терминал ( терминал 2 ) и выполняю следующие команды.
cd /tmp/tmp.7KtrAsd9lx
ls - lFa
Вывод такой, как показано ниже.
ls -lFa
total 8
drwx------ 2 root root 4096 Sep 3 22:22 ./
drwxrwxrwt. 16 root root 4096 Sep 3 22:22 ../
Файлы hello
и helloagain
не видны, и я даже вошел в систему как root, чтобы проверить эти файлы. Таким образом, преимущество состоит в том, что эта функция позволяет нам создать частную временную файловую систему, которую не могут видеть или просматривать даже другие процессы, принадлежащие root.
Из справочной страницы unshare
,
пространство имен монтирования Монтирование и размонтирование файловых систем не влияет на остальная часть системы (флаг CLONE_NEWNS), кроме файловых систем которые явно помечены как общие (с помощью mount - сделать-разделять; общие флаги см. в / proc / self / mountinfo).
Рекомендуется использовать mount --make-rprivate или mount --make-rslave. после того, как не поделился --mount, чтобы убедиться, что точки монтирования в новом пространстве имен действительно не используются совместно с родительским пространством имен.
Для пространства имен используется память VFS, которая принадлежит ядру. И - если мы настроим его прямо с самого начала - мы можем создавать целые виртуальные среды, в которых мы являемся пользователем root без прав root.
Ссылки:
Пример составлен с использованием деталей из этого сообщения в блоге . Кроме того, цитаты из этого ответа взяты из этого замечательного объяснения Майка . Еще одно замечательное чтение по этому поводу можно найти в ответе от здесь .
Если в вашей системе установлена пузырчатая пленка , вы можете легко сделать это за один шаг:
bwrap --dev-bind / / --tmpfs /tmp bash
В приведенном выше примере внутренний bash будет иметь собственное представление о /tmp.
Решение, вдохновленное ответом @Ramesh --спасибо за него!