
ルートへのアクセスを自動化して最小化するスクリプトを作成しています。 SSHで試してみましょう。現在のsed
UIDとGID 0シェルを/sbin/nologin
。
なぜこれを行うべきですか?これによりlogin
、、、、、、gdm
のルート権限が無効にkdm
なります。root権限でのみ実行しようとしています。ルートアクセスを最小限に抑えるための提案がわかっている場合は、それも提案してください。su
ssh
scp
sftp
sudo
これが現在の問題です:
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/passwd
uid / 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