Выход из tmux, но пребывание в терминале

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

Графический интерфейс может выключаться или перезагружаться с помощью механизма setuid https://en.wikipedia.org/wiki/Setuid . Проще говоря: сама команда перезагрузки имеет привилегии root, и вам, как обычному пользователю, разрешено выполнять перезагрузку. Поскольку вам не разрешено манипулировать исполняемым файлом перезагрузки (у вас есть права на выполнение, но нет разрешения на запись), это не дает возможности получить права root на машине.

И (опять же, как уже писали другие) предполагается, что графический интерфейс физически запускается на машине, поэтому это пользовательский компьютер, а не сервер, и вы можете (отключив питание) в любом случае выключить компьютер, Так зачем беспокоиться о правах root;) Я также видел графические интерфейсы, которые проверяют, вошли ли в систему другие пользователи (например, где-то в корневой оболочке), и не позволяют завершить работу, если другие пользователи вошли в систему.

РЕДАКТИРОВАТЬ: как исправлено Pandya, это набор политик, позволяющий вам, как обычному пользователю, перезагружать / выключать

1
14.10.2018, 16:05
1 ответ

С sedвам понадобится цикл:

sed -e :1 -e 's/^\([^,]*\) /\1/;t1'

Или используйте пробел, чтобы иметь возможность заменить все пробелы, а затем восстановить исходную часть строки оттуда:

sed 'h;s/,.*//;s/ //g;G;s/\n[^,]*//'

Сawk:

проще
awk -F, -v OFS=, '{gsub(" ", "", $1); print}'

Илиperl:

perl -F, -lpe '$F[0] =~ s/ //g; $_ = join ",", @F'

или:

perl -pe 's{[^,]*}{$& =~ s/ //gr}e'

или:

perl -pe 's/\G[^, ]*\K //g'

Последнее, возможно, заслуживает объяснения.:\Gидет с флагом g.

Флаги gозначают локальную замену gи предполагают цикл, в котором perlвозобновляет поиск следующего вхождения сразу после предыдущего.

\Gсовпадает в этом месте сразу после предыдущего совпадения, то есть после последнего замененного пробела и при первом проходе цикла в начале строки. Поскольку мы используем [^,], мы не позволяем циклу проходить дальше первой запятой, поэтому заменяем все пробелы только перед ней.

3
27.01.2020, 23:23

Теги

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