「sudo」が存在しないと考えながらコマンドを実行します。

「sudo」が存在しないと考えながらコマンドを実行します。

yay私は権限を高めるために(archlinuxの)プログラムを使用しますsudo。ただし、見つからないsudo場合に切り替えます。これは私のユーザーがsudoerではなくインストールされているので(実行中にインストールする必要がある他のプログラムがsuあるため)私が望むものです。ルートとして、私はこれが愚かなことであることを知っています。)sudosudo

今問題は、このプログラム( )が存在しないとyay思うようにしながら、どのように実行できるかということです。sudo

ソースからパッケージをビルドしてインストールするのは、yayパッケージマネージャ(AURヘルパー)です。セキュリティ上の理由から、これらのビルドはrootとしては実行できません。これは十分に公平です。

そしてすでに質問しました。ここリポジトリにありますが、yay問題が解決されている間に代替ソリューションを使用したいと思います。

ベストアンサー1

私が考えることができる唯一の回避策は、yayrootで起動してsudo開始する前に一時的に削除するラッパースクリプトを使用することですyay

#!/bin/sh

su -c "mv /sbin/sudo /sbin/sudo.old" && yay "$@"
su -c "mv /sbin/sudo.old /sbin/sudo"

ただし、これを行うには、ルートパスワードを2回入力する必要があります。別のオプションは、root でスクリプトを実行した後、次をsu使用してスクリプト内から別のユーザーに切り替えることです。

#!/bin/sh

normalUser="$1"
shift

mv /sbin/sudo /sbin/sudo.old &&
su -c "yay $@" $normalUser
mv /sbin/sudo.old /sbin/sudo

その後、次のように実行できます。

su -c "/path/to/yay.wrapper.sh adrin $yayArguments" 

あなたの場合は実際には使用しないので安全でなければなりません。ただし、問題が発生した場合は簡単に検索できるようにsudoコピーを作成します。/sbin/sudo

おすすめ記事