Пароль sudo запрашивается только иногда.

Исходное сообщение касалось использования сценария для отображения приложения в определенной рабочей области, например, в сценарии запуска можно было использовать другой сценарий, чтобы позволить пользователю продолжать работу, в то время как очень медленно запускающееся приложение загружается в другую рабочую область. Мой сценарий отлично работает в качестве интерфейса -для довольно громоздкого синтаксиса wmctrl, чтобы запускать любое приложение в любой заданной рабочей области из любой командной строки. Таким образом, следующий сценарий, который просто перечисляет что-то вроде lh 1 thunderbird; lh 2 firefox; lh 3 calculator.... или что-то еще, теперь прост. Однако есть некоторые трудности с синхронизацией, поэтому в моем сценарии есть сон. Ниже представлена ​​обновленная версия, которую я больше не буду поддерживать и публиковать. Используйте КАК ЕСТЬ, никаких гарантий пригодности для любого конкретного использования. Измените, как вам угодно. Я предлагаю сохранить как /usr/local/bin/lhпросто потому, что lhне является никаким другим известным именем программы, по крайней мере, не в Mint 18. Что касается переменных — я цитировал переменные, которые считал необходимыми.

#!/bin/sh
## Author: B.A. Computer Services www.ba-computer.com
## Purpose: Frontend to launch anything on a specific desktop/workspace.
##  lh is short for LaunchHere

USAGE="USAGE: $(basename $0) [-r] workspace(1,2,..) command\
    LaunchHere launches COMMAND on specific workspace.\
    -r option returns to current workspace"
[ -z "$1" ] && echo $USAGE && exit 0
ISRETURN=$(false); [ "$1" = "-r" ] && ISRETURN=true && shift;  
WRKSPC=$1;[ -z "$WRKSPC" ] && echo $USAGE && exit 0
WSN=$(expr $WRKSPC - 1)  ## wmctrl starts with 0 as first wrkspc
shift; CMD="$*"; [ -z "$CMD" ] && echo $USAGE && exit 0

WM=$(which wmctrl);[ -z "$WM" ] && echo MISSING wmctrl && exit 1
CURRENT=$(wmctrl -d | grep '*' | cut -c1)


# Switch to desired workspace
$WM -s $WSN
$CMD &
PID=$!
echo Executed $CMD on workspace $WRKSPC,  PID=$PID
sleep 3

# Return to CURRENT workspace ?
# [ $ISRETURN ] && echo TRUE || echo FALSE
[ $ISRETURN ] && $WM -s $CURRENT
0
02.03.2020, 19:31
2 ответа

Как уже упоминал Кусалананда♦, вы настраиваете sudo через файл конфигурации, где вы можете заархивировать описанное вами поведение.

Пользователь может вызвать конкретную команду без указания пароля. Это не означает, что у вас есть полный sudoдоступ. У вас есть разрешение только на запуск одной команды.

Пример конфигурации для этого:

david ALL=(ALL) NOPASSWD: /usr/bin/journalctl 

(еще наhttps://askubuntu.com/questions/147241/execute-sudo-without-password)

  • Даже если у вас есть пароль для пользователя "david", это не означает автоматически, что вы можете делать что-то еще с sudo.
  • Нет команды для вывода списка разрешений, которые вы получили через sudo (без доступа к/etc/sudoers). Это объясняется тем, как работает sudo.Sudo просто проверяет конфигурацию в тот момент, когда вы вызываете с ней команду -, и этот процесс требует привилегий суперпользователя. Таким образом, не может быть непривилегированного инструмента, в котором перечислены настройки.

Личный совет :Попробуйте другие методы повышения привилегий. Sudo достаточно безопасен, если конфигурация правильная.

1
28.04.2021, 23:21

sudoзапомнит, что вы ввели пароль, и некоторое время не будет спрашивать снова (это зависит от конфигурации ).

Файл /etc/sudoersимеет конфигурацию для sudo. Вы можете настроить:

  • какие пользователи
  • который управляет
  • нужен ли пароль.

Возможно, он настроен так, что некоторые команды можно запускать без пароля.

Все это не имеет ничего общего с установленным -битом uid. Этот бит, как вы, кажется, знаете, дает программе привилегии root (см. также возможности :root is dead, да здравствуют возможности ). Один sudoможет делать что угодно, он решает, что делать на основе своего кода и файла конфигурации.

0
28.04.2021, 23:21

Теги

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