Way 1 - passwd
停用 username
>>>(root) passwd -l username
啟用 username
>>>(root) passwd -u username
Way 2 - chsh
改變 username 的 logging shell 為
- /bin/false
- /usr/sbin/nologin.
首先 檢查 /etc/shell 檔 是否有列到 /bin/false 或 /usr/sbin/nologin (or /sbin/nologin for Fedora)
如果都沒有 手動自己添加
$ echo "/bin/false" >> /etc/shells
$ echo "/usr/sbin/nologin" >> /etc/shells
$ echo "/sbin/nologin" >> /etc/shells # For Fedora
將 帳號的 loggin shell 改成 /usr/sbin/nologin 該員還是可以連到 ftp
將 帳號的 loggin shell 改成 /bin/false 該員將無法登入系統 或連到 ftp
$ sudo chsh -s /bin/false username
$ sudo chsh -s /usr/sbin/nologin username
$ sudo chsh -s /sbin/nologin username # For Fedora
如果想要重新啟用 被禁用的帳號 將 logging shell 改成 /bin/bash, /bin/sh, /bin/zsh 等
新增帳號時 設定失效時間
# 一個月後 停用帳號
$ useradd -e `date -d "30 days" +"%Y-%m-%d"` -d /home/ming -s /bin/bash -m ming
# 從今天起 增加一個月的使用時間
$ chage -E `date -d "30 days" +"%Y-%m-%d"` ming
# 查詢 帳號狀態
$ chage --list ming
Reference
How to lock and unlock a user account in Linux
Linux and Unix no login shells: /bin/false vs /sbin/nologin
How can I create automatically expiring user accounts?
7 Examples to Manage Linux Password Expiration and Aging Using chage