выполнение команды как su

Команда EXPR может делать только целые или строковые манипуляции. Посмотрите на страницу человека для этого руководства:

Операнды являются целыми числами или строками. Целые числа состоят из одного или Более десятичные цифры, с дополнительным ведущим «-». «Expr» преобразует все, что появляется в операнде для целого числа или строки в зависимости от операции, применяемой к нему.

Итак, для выполнения этого типа работы вам необходимо заручиться привлечению кадалятора командной строки, такого как BC .

Пример

$ mPercent='.123'
$ fPercent='.345'
$ echo "$mPercent / 100 * .482 + $fPercent / 100 * .518" | bc -l
.00237996000000000000

Примечание: EXPR не является частью Bash, это автономный исполняемый файл, который является частью пакета CORETILS. В системах с использованием RPMS вы можете увидеть это так:

$ rpm -qf $(type -p /usr/bin/expr)
coreutils-8.21-13.fc19.x86_64

Использование ваших данных, которые вы предоставили в комментариях 3.27 для 2 переменных, дают следующие:

$ mPercent='3.27'
$ fPercent='3.27'
$ echo "$mPercent / 100 * .482 + $fPercent / 100 * .518" | bc -l
.03270000000000000000
0
13.04.2015, 16:34
2 ответа

Можно ли использовать Sudo перед командой, которую вы хотите выполнить? Как вместо:

su
whatever command

сделать:

sudo whatever command
0
28.01.2020, 02:20

Причина сбоя в том, что по умолчанию ssh не создает терминал ( pty ) на целевой машине. Это означает, что su не может запрашивать пароль, поэтому он не работает. ( sudo также не будет запрашивать запрос по той же причине, если не задан флаг -S , как указано @Scott.)

  1. Вы можете указать ssh создать терминал ( pty ) в удаленной системе, чтобы su мог запрашивать пароль. С помощью обычной команды вы можете сделать это, указав флаг -t для ssh. К сожалению, я не могу предложить вам какой-либо способ сделать это с SSH.NET , потому что его документация предоставляется в формате CHM, который я не могу открыть.

  2. Вы можете полностью вырезать часть su , подключившись к удаленному серверу с желаемой целевой учетной записью пользователя, «root». По соображениям безопасности это может привести к сбою в некоторых системах, которые отклоняют входы в систему с правами root, которые пытаются использовать пароль, поэтому вы можете захотеть исследовать входы на основе сертификатов. Подходящий сертификат можно создать с помощью команды ssh-keygen -t rsa .

4
28.01.2020, 02:20

Теги

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