ルートを使用して他のユーザーのためのルートシェルを作成する

ルートを使用して他のユーザーのためのルートシェルを作成する

私は2人のよく知られたユーザー(rootとadmin)で組み込みLinuxシステムで作業しています。 SSH経由で管理者としてログインできますが、root(パスワード不明)ではログインできません。システム製造元は、管理者を使用してルートとして実行される起動スクリプトを生成するためのセキュリティホールを一時的に開きました。この起動スクリプトを使用して、後でユーザーマネージャを使用して接続できるルートシェルを作成したいと思います。用語はわかりませんが、管理者が開くことを許可されているインタラクティブシェルに接続する仮想ttyを作成したいようです。これを達成するためにどのコマンドを実行するのかわかりません。

答え1

インタラクティブシェルに接続する仮想ttyを作成したいようです。

もちろんそうすることができます。しかし、このttyにどのように接続しますか?デバイスにシリアル接続がある場合は、そのデバイスで対話型シェルを実行できます。

sh </dev/ttyS0 >/dev/ttyS0 2>/dev/ttyS0

ログインは不要です。シリアルケーブルを接続するだけでルートシェルを入手できます。 SSH経由で接続している場合、SSHがログインをバイパスするように設計されていないため、簡単ではありません。もちろん、rootアカウントに空のパスワードを設定し、rootログインを認証するようにSSHを設定できます。

ただし、デバイスに接続できるすべての人がrootとしてコマンドを実行できるようにしたい場合にのみ適用されます。管理者が権限を root に昇格できるようにしたい場合は、端末を使用する必要はありません。

最も簡単な方法は、自分が知っているルートアカウントのパスワードを設定することです。またはインストールSudoデバイスのファイルに次の行を追加します/etc/sudoers

admin ALL=(ALL:ALL) ALL

sudo mycommandsudo -sその後、実行(シェルのインポート)を使用して管理者アカウントからrootとしてコマンドを実行できます。admin実行時にアカウントのパスワードを入力したくない場合は、sudo閉じNOPASSWD:括弧の後に追加してください。

ルートファイルシステムが読み取り専用の場合は、sudo他の場所にマウントできます。バイナリはnoexec、またはオプションなしでインストールされているファイルシステムに存在する必要がありますnosuid

関連情報