![suコマンドを呼び出すときに隠されたパスワードを表示しますか? [コピー]](https://linux33.com/image/37523/su%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99%E3%81%A8%E3%81%8D%E3%81%AB%E9%9A%A0%E3%81%95%E3%82%8C%E3%81%9F%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
suコマンドを使用したのは今回が初めてで、実際には端末にパスワードが表示され、隠されていません。私のコードスニペットは次のとおりです。
sshpass -p "password" ssh -q [email protected] "su -lc 'mkdir temp/'"
コード説明:リモートサーバーにアクセスし、そのサーバーにrootとしてフォルダを作成しようとしています。これを行うには、パスワードを要求するsuコマンドを使用する必要があります。パスワードを入力すると、隠されずに表示されます。
答え1
私はあなたが使うべきだと思いますsudo
。
sshpass -p "password" ssh -q [email protected] "sudo mkdir temp/"
sudoを使用すると、パスワードなしでmkdirを実行することもできます。実行visudo
し、次の行を追加します
your_username ALL=(ALL)NOPASSWD:/usr/bin/mkdir
。お客様のアカウントが破損した場合、セキュリティ上のリスクが発生する可能性があります。
また、このコマンドのユースケースに適している場合は、SSHの公開鍵認証を設定できます。その後、 'sshpass'を削除し、単に 。ssh -q [email protected] "sudo mkdir temp/"