簡體   English   中英

以與bash腳本不同的用戶身份運行命令

[英]Running commands as different user from bash script

我有2個用戶:usr1和usr2。 root用戶也不是。

usr1啟動一個bash腳本。 從腳本中,我想將某些命令作為usr2運行。 我了解這樣做的方法是:

su -l <usr2> -c "command"

問題在於密碼的傳遞。 這是2個具有不同特權的不同用戶,因此,不能跳過usr2的密碼。

該腳本可以進行交互,並詢問用戶密碼。 bash腳本中有沒有辦法做到這一點?

注意:我不是腳本專家。 在問這個問題之前,我已經做過一些研究,但是我找不到合適的答案。

您可以嘗試使用read read man page命令,請參見以下示例:

#!/bin/bash

read -s -p "Enter your password: " pass
echo $pass

在這種情況下,您將需要將/ bin / su -c與sudo -S一起使用

#!/bin/bash 

user=$1
read -s -p "Enter pass: " pass
cmd=$(echo $pass|sudo -S <some-command>)
su -c '$cmd' - $user

其中user = $ 1另外的bash參數,在本例中為usr2的用戶ID,然后突出運行它

$sudo bash -x ./password.sh <target-user>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM