最小根を探す

最小根を探す

ルートへのアクセスを自動化して最小化するスクリプトを作成しています。 SSHで試してみましょう。現在のsedUIDとGID 0シェルを/sbin/nologin

なぜこれを行うべきですか?これによりlogin、、、、、、gdmのルート権限が無効にkdmなります。root権限でのみ実行しようとしています。ルートアクセスを最小限に抑えるための提案がわかっている場合は、それも提案してください。susshscpsftpsudo

これが現在の問題です:

grep :0:0: /etc/passwd | sudo sed 's_/bin/bash_/sbin/nologin_' /etc/passwd

私が現在やっていることはそれら/bin/bashすべてです/sbin/nologin

答え1

1. sudoerアカウントを作成します

su -
echo '<YOU>  ALL=(ALL:ALL)  ALL'>>/etc/sudoers
exit

2. ルートアカウントの無効化

sudo usermod --expiredate 1 root

3. テストしてみてください

$ su -
Password: <correct password>
Your account is expired.

Debian GNU/Linux でテスト済み

答え2

grep :0:0: /etc/passwd | sudo sed 's_/bin/bash_/sbin/nologin_' /etc/passwd

する?

  • grep :0:0: /etc/passwduid / gidが0の行を検索すると、通常は標準出力(STDOUT)に供給されるルートを持つ行が提供されます。
  • |grepの出力はsudo sedに提供され、コマンドラインで指定されたファイルによって削除されます。
  • sed 's_/bin/bash_/sbin/nologin_' /etc/passwdこれは、/etc/passwd の bash を STDOUT の nologin に置き換え、/etc/passwd は変更されていません。

やってみました…?

sudo sed -i '/:0:0:/s_/bin/bash_/sbin/nologin_' /etc/passwd

関連情報