介紹用戶和組相關命令之前,介紹幾個文件:
/etc/passwd:保存用戶屬性信息
用戶名:密碼佔位符:UID:GID:註釋信息:家目錄:默認shell
/etc/shadow:保存用戶的密碼及密碼相關屬性信息
用戶名:加密後的密碼:最近一修改密碼時間:密碼最短使用天數:密碼最長使用天數:密碼過期前多少天開始警告用戶:用戶非活動天數:用戶鎖定天數:保留字段
/etc/group:保存組屬性信息
組名:組密碼佔位符:GID:以此組爲附加組的用戶列表,如有多個以“,”分隔
/etc/gshadow:保存組密碼
1.用戶管理
新建用戶:
格式:useradd [-option] [argument] USERNAME
# useradd hadoop,新建用戶hadoop:
默認會新建與hadoop相同的組,並作爲hadoop的基本組,用戶hadoop的UID等於/etc/passwd中最大UID+1;如果/etc/group中沒有與用戶hadoop的UID相同的GID,則hadoop組的GID等於hadoop用戶的UID,否則,hadoop組的GID等於/etc/group中最大GID+1
# useradd -u UID USERNAME,新建用戶時指定UID:範圍1-65535
# useradd -g [GID|GRPNAME] USERNAME,新建用戶時指定用戶基本組:
指定基本組時,該組必須存在;新建用戶oracle的GID是1111,也就是mysql組;
[root@xufei~]#useradd -g mysql oracle
# useradd -c COMMENT USERNAME,新建用戶時添加註釋信息:
# useradd -d /path/to/somewhere USERNAME,新建用戶時指定家目錄:
# useradd -s /path/to/SHELL,指定默認shell:
可以cat /etc/shells查看有哪些shell可供使用
------------------------------------------
我們可以使用id,finger查看用戶屬性信息:
1. id USERNAME:不加USERNAME,顯示當前用戶的信息;
id -u USERNAME:只顯示uid;
同理,id -g USERNAME:只顯示基本組gid;
id -G USERNAME:顯示用戶的所有gid;
id -n:以name代替IDs,組合-ugG;
2.finger USERNAME:可以顯示login name,註釋信息,家目錄,默認shell等
---------------------------------------------------
# useradd -r USERNAME,創建系統用戶:1-499的uid和gid是系統用戶和系統組使用的
雖然testd的finger信息顯示其家目錄是/home/testd,實際系統用戶是沒有家目錄的
你可以ls /home進行查看
# useradd -M USERNAME,新建用戶時不創建家目錄:和創建系統用戶類似,家目錄實際不存在
# useradd -m USERNAME,新建用戶時必須創建家目錄
修改用戶屬性:
# usermod [option] [argument] USERNAME
# 修改hadoop的登錄名:
# 修改hadoopa的UID:
# 修改hadoopa的基本組:
# 修改hadoopa的附加組:
用戶的基本組只有一個,附加組可以有多個,如果想給hadoopa增加附加組就需要使用-a選項:
# 修改hadoop的家目錄:
使用-m -d選項把原來家目錄下的文件一併移動到新家目錄
# 修改hadoopa的默認shell:
刪除用戶:
格式:userdel [option] USERNAME
# userdel USERNAME:
但是家目錄和郵件都沒有刪除
# userdel -r USERNAME:
連同家目錄一併刪除
2.組管理
新建組:
# groupadd [option] GRPNAME
# groupadd GRPNAME:
自動生成的GID=/etc/group中最大UID+1
# groupadd -g GID GRPNAME:範圍1-65535
# groupadd -r GRPNAME:
創建系統組,那麼GID一定是1-499之間的
修改組屬性:
groupmod [option] GRPNAME
# groupmod -n new_group_name GRPNAME:
# groupmod -g GID GRPNAME:
刪除組:
# groupdel GRPNAME