LInux下設置帳號有效時間 以及 修改用戶名(同時修改用戶組名和家目錄)

在linux系統中,默認建立的用戶的有效期限都是永久的,但有時候,咱們須要對某些用戶的有效期限作個限定!
好比:公司給客戶開的ftp帳號,用於客戶下載新聞稿件的。這個帳號是有時間限制的,由於是付費的。合同到期了,這個帳號就要求停用。linux

廢話很少說,直接說下操做記錄:bash

需求:
建立lzwb帳號,用於下載/home/hqsb裏面的新聞稿件,這個帳號的合同到期時間是2018年10月26號ui

1)建立帳號lzwb
[root@dev ~]# useradd lzwb -d /home/hqsb -s /sbin/nologin spa

2)默認狀況下,這個帳號創建後,有效期限是永久的。注意下面命令結果:
Last password change: 表示帳號建立時的時間
Account expires: 表示帳號到期時間
命令格式:chage -l username 查看用戶的到期時間狀況
[root@dev ~]# chage -l lzwb
Last password change : Oct 26, 2016
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7blog

3)按照需求,修改帳號的到期時間
命令格式:usermod -e "到期時間" username 修改系統用戶的時間
[root@dev ~]# usermod -e "Oct 26,2018" lzwb進程

再次查看,發現lzwb的有效時間截止到2018年的10月26號了。
[root@dev ~]# chage -l lzwb
Last password change : Oct 26, 2016
Password expires : never
Password inactive : never
Account expires : Oct 26, 2018
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7ast

======================Linux 下修改用戶名(同時修改用戶組名和家目錄)=====================class

1) 修改用戶名
# usermod -l new_username old_username

好比將kevin用戶名修改成shibo
[root@localhost ~]# useradd kevin
[root@localhost ~]# cat /etc/passwd|grep kevin
kevin:x:501:502::/home/kevin:/bin/bash

[root@localhost ~]# usermod -l shibo kevin

查看修改後的用戶名
[root@localhost ~]# cat /etc/passwd|grep shibo
shibo:x:501:502::/home/kevin:/bin/bash
[root@localhost ~]# cat /etc/passwd|grep kevin
shibo:x:501:502::/home/kevin:/bin/bash
[root@localhost ~]# su - kevin
su: user kevin does not exist
[root@localhost ~]# su - shibo
[shibo@localhost ~]$ 

發現上面修改, 只會更改用戶名,而其餘的東西,好比用戶組,家目錄,UID 等都保持不變。

特別注意:
若是修改的用戶名在登陸狀態中, 須要從要更名的賬號中登出並殺掉該用戶的全部進程,要殺掉該用戶的全部進程能夠執行下面命令:
[root@localhost ~]# pkill -u kevin
[root@localhost ~]# pkill -9 -u kevin

2) 修改用戶家目錄
同時更改家目錄,咱們須要在執行 usermod 命令的同時加上 -d 選項

如上將kevin用戶修改成shibo後, shibo用戶的家目錄仍是以前的/home/kevin,
如今要將shibo用戶的家目錄由/home/kevin 改成 /data/shibo
[root@localhost ~]# cat /etc/passwd|grep shibo
shibo:x:501:502::/home/kevin:/bin/bash

[root@localhost ~]# ls /data/shibo
ls: cannot access /data/shibo: No such file or directory

[root@localhost ~]# usermod -d /data/shibo shibo

[root@localhost ~]# cat /etc/passwd|grep shibo  
shibo:x:501:502::/data/shibo:/bin/bash

3) 更改用戶 UID 
如上將kevin用戶修改成shibo後, shibo用戶的uid和gid都沒有改變
如今想要將shibo用戶的UID改成 1000 
[root@localhost ~]# cat /etc/passwd|grep shibo
shibo:x:501:502::/data/shibo:/bin/bash

[root@localhost ~]# usermod -u 1000 shibo

[root@localhost ~]# cat /etc/passwd|grep shibo
shibo:x:1000:502::/data/shibo:/bin/bash

4) 修改用戶組名
如今要把shibo用戶的用戶組由kevin改成shibo, 這就要用到groupadd命令
[root@localhost ~]# cat /etc/group|grep kevin 
kevin:x:502:
[root@localhost ~]# cat /etc/group|grep shibo 
[root@localhost ~]#
[root@localhost ~]# cat /etc/passwd|grep shibo
shibo:x:1000:502::/data/shibo:/bin/bash

[root@localhost ~]# groupmod -n shibo kevin

[root@localhost ~]# cat /etc/group|grep shibo 
shibo:x:502:
[root@localhost ~]# cat /etc/group|grep kevin
[root@localhost ~]# 
[root@localhost ~]# cat /etc/passwd|grep shibo
shibo:x:1000:502::/data/shibo:/bin/bash

這時候shibo用戶的羣組已是shibo了, 如今要把shibo用戶的gid由502 改成 2000
[root@localhost ~]# cat /etc/group|grep shibo 
shibo:x:502:
[root@localhost ~]# cat /etc/passwd|grep shibo
shibo:x:1000:502::/data/shibo:/bin/bash

[root@localhost ~]# groupmod -g 2000 shibo

[root@localhost ~]# cat /etc/group|grep shibo
shibo:x:2000:
[root@localhost ~]# cat /etc/passwd|grep shibo
shibo:x:1000:2000::/data/shibo:/bin/bash

[root@localhost ~]# id shibo
uid=1000(shibo) gid=2000(shibo) groups=2000(shibo)
相關文章
相關標籤/搜索