/etc/passwd ファイルで /bin/bash を /bin/false に置き換える

/etc/passwd ファイルで /bin/bash を /bin/false に置き換える

私はシステムからユーザーを無効にするプログラムを書いています/bin/bash/bin/false.

xxx:x:1:22:xx:/export/home/xx:**/bin/bash**

置き換える

xxx:x:1:22:xx:/export/home/xx:**/bin/false**

bash スクリプトを使用して実行したいと思います。

これを行う 1 つの方法は を使用することだとわかっていますsed。しかし、私は正規表現が得意ではありません。

誰か助けてくれませんか?

答え1

まあ、正規表現ではまったくそんなことはしませんsed。プログラムを使うだけですchshユーザーのシェルを変更します。

chsh -s /bin/false username

あるいは:

usermod -s /bin/false username

実際のシェルに置き換えたい場合は、それが にリストされていることも確認する必要があります/etc/shells

答え2

chsh常に利用できるわけではないので注意してください!高山例えばLinuxや組み込みシステムではビジーボックス..

シンプルなインラインsedコマンド:

sed -i '/www-data/s/false/sh/g' /etc/passwd

(この例ではシェルを/bin/偽バイナリユーザー向けwwwデータ

関連情報