AND コマンドを使用して sudo ユーザーに切り替えると機能しません。

AND コマンドを使用して sudo ユーザーに切り替えると機能しません。

あるユーザーのSSH秘密鍵を一度に別のユーザーにコピーしようとしています。

sudo su && cp /home/sk/keys/master.pem /home/sg-user/keys/

このコマンドを1つずつ実行すると正常に実行されます。ただし、次のようにエラーが表示されます。

cp: cannot create regular file ‘/home/sg-user/keys/master.pem’: Permission denied

上記のコマンドを実行すると、以下のようにルートプロンプトに切り替わります。

root@sk-box:/home/sk# 

頑張った

sudo su && cp /home/sk/keys/master.pem /home/sg-user/keys/ && exit

コマンドが操作を完了した後、ルート端末を終了していることを確認してください。しかし、シャットダウンコマンドは効果がなく、ルートセッションからプロンプトが出ません...

注:パスワードを要求せずにファイルをsudo su使用するように構成されています。/etc/sudoers

ベストアンサー1

コマンドが実行されるとサブプロセスに分割されるため、「su」コマンドが実行されると実際にはルート端末で実行されるのではなく、cpコマンドとは異なるプロセスで実行されます。

sudoでcpを実行するとコマンドは機能しますが、ルート端末内では実行されません。これを行うには、su内で別々にコマンドを実行する必要があります。

sudo su && sudo cp /home/sk/keys/master.pem /home/sg-user/keys/

コピーを完了したい場合は、「sudo so &&」は重複します。これが必要なものです。

sudo cp /home/sk/keys/master.pem /home/sg-user/keys/

おすすめ記事