我正在編寫一個程式來禁用系統中的用戶,我想替換/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 腳本。
我知道做到這一點的一種方法是使用sed
.但我不擅長正規表示式。
有人可以幫忙嗎?
答案1
好吧,你根本不使用sed
正規表示式來做到這一點。你所做的就是使用該程式chsh更改使用者的 shell。
chsh -s /bin/false username
或者:
usermod -s /bin/false username
如果您想用實際的 shell 替換它,您還必須確保它列在/etc/shells
.
答案2
請注意,這chsh
並不總是可用!在高山例如 Linux 或使用的嵌入式系統忙碌盒..
簡單的內嵌sed
指令:
sed -i '/www-data/s/false/sh/g' /etc/passwd
(此範例將 shell 從/bin/假到/bin/sh對於用戶www-數據)