システムからユーザーを無効にするプログラムを書いています。/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
を使用することです。しかし、私は正規表現が苦手です。
誰か助けてもらえますか?
sed
や正規表現ではまったく実行しません。プログラム chsh を使用して、ユーザーのシェルを変更します。
chsh -s /bin/false username
あるいは:
usermod -s /bin/false username
実際のシェルに置き換えたい場合は、/etc/shells
にリストされていることも確認する必要があります。
chsh
が常に利用できるとは限らないことに注意してください。 in Alpine Linuxなど、またはbusyboxを使用する組み込みシステム。
単純なインラインsed
コマンド:
sed -i '/www-data/s/false/sh/g' /etc/passwd
(この例では、シェルを/ bin/falseから/ bin/sh for user www-dataに変更します)