2017-09-06 8 views
1

ねえ、私はかなりbashに慣れています。 シンプルなロガーを作成したいのですが、スーパーユーザーとしてログインして(sudo su)コードを実行して(ファイルに書き込む)スーパーユーザーとしてログアウトしてから残りのコードを実行します。Bashスクリプト。ユーザーとしてログインし、コマンドを実行してサインアウトしてください。

ここ

は私の例です:

read -p "Are you sure you want to log this?" -n 1 -r 
if [[ $REPLY =~ ^[Yy] ]] 
    then 
    sudo su 
    if [ "$EUID" -ne 0 ] 
    then 
     echo $log >> ~/Logs/logs.txt    
    fi 
    exit 
fi 
echo "DONE" 

私は本当にあなたがに時間を見つけた場合

ありがとうございました(私はそれが見つけることができるもの)の例がある解決策を見つけるのに苦労していないが、このような単純な何もしています支援する。

+0

、あなたはsudoのように実行したいコードのためのスクリプトを作成し、 sudoersファイルに例外を置く。 – 123

答えて

1

あなたはsudo suをすれば、対話型セッションを取得します - おそらくあなただけの代わりにログを書き込むようにコマンドを実行する必要があります。

read -p "Are you sure you want to log this?" -n 1 -r 
if [[ $REPLY =~ ^[Yy] ]] 
then 
sudo bash -c "if [ \"$EUID\" -ne 0 ]; then echo $log >> ~/Logs/logs.txt; fi" 
fi 
echo "DONE" 
+0

これはsudoersを更新していない場合でもパスワードを要求します。 – 123

+0

です。 OPは問題であるパスワードのプロンプトについて何も言わなかった。 – arco444

+0

あなたが言ったことは、私が@ arco444のために頼んだことの100% – Devaux

関連する問題