Sudo от имени другого пользователя для сохранения адреса его домашнего каталога в txt-файл

Почему вы вызываете cmd? Это дополнительный уровень сложности, который вам, похоже, не нужен. Вы можете вызвать программу Windows непосредственно из bash:

'C:\Program Files\sqldeveloper\sqldeveloper\bin\sdcli.exe' format input=sentencia.tmp output=sent_formateada.tmp

или

/cygdrive/c/Program\ Files/sqldeveloper/sqldeveloper/bin/sdcli.exe format input=sentencia.tmp output=sent_formateada.tmp

или любой другой способ цитирования в sh.

Если вы должны вызвать cmd, вам может потребоваться передать код cmd на стандартный ввод или в пакетный файл, а не через /c, потому что /c анализирует кавычки в по-другому (что не имеет смысла для меня). Это будет

cmd <<<'"C:\Program Files\sqldeveloper\sqldeveloper\bin\sdcli.exe" format input=sentencia.tmp output=sent_formateada.tmp'
0
27.04.2017, 17:47
2 ответа

Следующая команда прочитает /etc/passwd и выведет username : home-dir

awk -F: '{print $1":" $6}' /etc/passwd

Вывод будет примерно таким:

root:/root
daemon:/usr/sbin
bin:/bin
sys:/dev
sync:/bin
games:/usr/games

Вы можете перенаправить вывод в файл, используя :

awk -F: '{print $1":" $6}' /etc/passwd > result.txt
0
28.01.2020, 02:19

In:

sudo -u joe ls ~

~ расширяется вашей оболочкой перед запуском команды (здесь sudo), поэтому на самом деле выполняется:

sudo -u joe ls /home/me

Чтобы просмотреть содержимое joe домашний каталог :

ls ~joe

Или, если у вас нет доступа для чтения к его домашнему каталогу:

sudo -u joe ls ~joe

Или для оболочки, работающей как joe , чтобы расширить ~:

sudo -u joe sh -c 'ls ~'

Обратите внимание, что кроме csh/tcsh/zsh вы не можете использовать ls ~joe подход, если имя пользователя находится в переменной. В зависимости от оболочки

user=joe
echo ~$user

выводит либо /home/mejoe, либо ~joe. В bash если был пользователь с именем $user (буквально), это возвращало его домашний каталог.

Здесь вам понадобится:

eval "ls ~$user"

(вы должны заранее убедиться, что $user содержит допустимое имя пользователя).

4
28.01.2020, 02:19

Теги

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