Ubuntuはデフォルトでルートアカウントを無効にしているので、ルートシェルアクセスも無効にしませんか?


12

のルートアカウントの現在のデフォルト/etc/passwdroot:x:0:0:root:/root:/bin/bashです。

に設定してみませんroot:x:0:0:root:/root:/usr/sbin/nologinか?


7
あなたができるようにsudo -i
AlexP

12
「rootアカウントを無効にする」緩い記述のビットです:何それは本当に無効にすることで、パスワードベースの認証 rootアカウントの
steeldriver

1
@AlexPは実際にテストしたばかりですが、sudo -iは/ usr / sbin / nologinに設定されたルートでは機能しません。
loongyh

回答:


19

その場合、コマンドはsudo一度に1つずつしか実行できませんが、ルートシェルを起動することはできません。ルートシェルは多くの場合に便利です。たとえば、複数のコマンドをルートとして連続して実行する場合などです。

特に、sudo -iAlexPが指摘したように、実行できませんでした。からman sudo

-i, --login    Run the shell specified by the target user's password database entry as a login shell.

7
それがうまくいかないのsudo /bin/bashですか?
フェデリコポロニ

5
@FedericoPoloniは、sudo -s私が考えるようになります(ルートシェルですが、ルートログインシェルではありません)。しかし、それは良い点です-実際にsudo -sは、ルートのシェルが動作している場合でも動作するようです/usr/sbin/nologin
-steeldriver

1
あなたは無効にすることができ-i-s/bin/bash、とこれだけのコマンドのホワイトリストを可能にすることによって上、sudoersファイルのマニュアルを参照してください。これは非常にきめ細かく、たとえば、ユーザーに実行を許可/etc/init.d/someservice restartせずにrootとして実行できるようにすることが可能です/etc/init.d/someservice stop。しかし、ubuntuのデフォルトでは、パスワードを設定せずroot、管理者ユーザーがsudoですべてを実行できるようになっています。おそらくその理由は、a)複数の管理ユーザーであり、b)管理ユーザーがルートアカウントの2番目のパスワードを覚えておく必要がないためです。
アロ

8

Alberto Santiniのsudoの答えに加えて、別の(はるかに良い)答えがあります。ルートのシェルがシェルではないものに設定されている場合、シングルユーザーの起動は機能しません。sulogin非拡張シェルや完全に壊れたシェルのようなものには回復がありますが、シェルが有効なシェルのように見えても実際にはシェルではない場合は機能しません。

sudoシェルを指定することで、シェルを直接取得することもできます。これにより、sudo保護が不十分になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.