tmux: Как отображать номера строк в режиме копирования?

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

Единственной реалистичной проверкой является запуск sudoот имени пользователя A. Поскольку вам нужно выполнить эту проверку из сценария, работающего от имени пользователя B, вам потребуется способ, с помощью которого пользователь B может запустить проверку от имени пользователя A. Либо напишите небольшую программу(не скрипт с setuid A, или дайте пользователю B разрешение запускать проверку от имени пользователя A через sudo.

Если вы не можете привлечь администратора для настройки правила sudo, позволяющего пользователю B запускать проверку от имени A, то программа setuid — единственное решение. Эта программа вызовет sudo -u userB -b true, чтобы проверить, что A разрешено запускать trueот имени пользователя B. Вот исходный код C для этой программы (предупреждение :не проверено!):

#include 
int main(void) {
    execl("/usr/bin/sudo", "sudo", "-u", "userB", "-b", "/bin/true", (char*)NULL);
    return 126;
}

Скомпилируйте его и сделайте полученный исполняемый файл setuid A (он должен принадлежать A, затем запуститеchmod 4755 /path/to/executable).

Обратите внимание, что это решение не является полным. :Оно будет работать только в том случае, если A разрешено запускать команды от имени B в силу того, что он является пользователем A, а не в том случае, если он получает эту привилегию в силу принадлежности к группе. Если вам нужно проверить членство в группе, вам нужно будет запустить sgот имени пользователя А, чтобы получить членство в этой группе, а затем запустить его sudo.

3
10.08.2019, 18:50
1 ответ

Я не эксперт по tmux, но, возможно, вы могли бы улучшить эту идею :разделить панель на две стороны -по -стороне и показать список убывающих чисел в новой панели, который заканчивается на 0 для самой нижней строки. Например, в вашем ~/.tmux.confустановите привязку для символа=

bind-key -T copy-mode-vi = split-window -h -p 90 'seq 24 -1 1;sleep 15'\;  swap-pane -dU

Затем в режиме копирования vi ввод =разделит текущую панель и перечислит числа от 24 до 1 в новой панели на 15 секунд. Так как новая панель помещается справа, swap-paneперемещает ее влево.

2
27.01.2020, 21:29

Теги

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