Linux用户和组管理
UID(用户ID)范围:root账户是0,系统账户1~999和65534,普通用户默认从1000开始
GID(组ID)范围:root(超级组)是0,系统组1~999和65534,自定义组默认从1000开始
1.用户账户配置文件:/etc/passwd
每行由7个字段组成,用:号分割格式为:
root : x : 0 : 0 : root : /root : /bin/bash
账户名 : 密码 : UID : GID : 注释 : 主目录 : shell
禁止账户登录Linux,可把shell设置成:/sbin/nologin
。
在账户行首加星号(*)可以临时禁用某账号。
2.用户密码配置文件:/etc/shadow
每行由9个字段组成,用:号分割格式为:
账户名 : 密码 : 最近一次修改 : 最短有效期 : 最长有效期 :
过期前警告期 : 过期日期 : 禁用 : 保留字段
第2个字段:储存加密后的密码,为空表示没密码,!!表示密码已被禁用(锁定)。
第3个字段:最近一次修改密码的日期,相对日期格式,即从1970.1.1到修改日期的天数。
第4个字段:密码多少天内不允许修改,0表示随时修改。
第5个字段:密码多少天后必须修改。
第6个字段:密码过期之前多少天开始发出警告信息。
第7个字段:密码过期日期,也是相对日期格式,为空表示永不过期。
3.组账户配置文件:/etc/group
每行由4个字段组成,用:号分割格式为:
root : x : 0 :
wheel : x : 10 : kong
组名 : 组密码 : GID : 组成员列表
用户主要组不会把成员列出,用户此要组才会把成员列出。
4.组账户密码配置文件:/etc/gshadow
每行由4个字段组成,用:号分割格式为:
组名 : 加密后的组密码 : 组管理员 : 组成员列表
5.超级用户权限
sudo配置文件:
/etc/sudoers
sudo [选项] <命令> ...
-u
指定用户要切换的身份,默认是root身份。
-i
暂时切换到root身份登录,exit即可退出root身份。
visudo
命令可以修改sudo配置文件
普通用户要使用sudo命令,要么加入wheel组,要么在sudo配置文件加入许可。
wheel组成员具有管理员权限,组成员可使用sudo获取root账户的所有权限,需用户密码。
su
命令
su [选项] [用户登录名]
加上选项-或-l(–login)切换新用户时,系统会把当前shell环境切换到新用户的shell环境。
su不提供用户名,默认切换到root身份。
系统阻止非wheel组成员使用su命令切换到root身份,需一下配置:
修改配置文件/etc/pam.d/su
,找到以下行,去掉#号:
#auth required pam_wheel.so use_uid
修改/etc/login.defs
文件,最后加入一行语句:
SU_WHEEL_ONLY yes
usermod -G wheel 用户名
普通用户加入wheel组,即可使用su命令切换root账户,exit退出root身份
6.用户账户管理
useradd [选项] <用户账户名>
-d
指定用户主目录
-g
指定所属主要组(名称或UID都可)
-G
指定所属其他组,各组之间用逗号隔开
-r
指定创建一个系统账户,建系统账户不会建立主目录,UID也会有限制。
-s
指定用户登录所使用shell,默认/bin/bash。
-u
指定新用户UID。
没指定选项,系统根据/etc/login.defs文件和./etc/default/useradd文件中的定义提供默认值,另外Linux还根据/etc/skel/目录为新用户初始化主目录。
cat /etc/passwd|grep kong
查看用户kong的账户信息
CentOS使用用户私有组(UPG)模式。默认创建与账户同名的组账户,并作为用户主要组(默认组)。
passwd [选项] [用户名]
-l
锁定密码
-u
解锁密码
-S
查看账户当前状态
-d
删除密码
不加用户名,修改当前登录账户密码。新建账户没有设置密码之前,账户密码处于锁定!!状态,无法登录系统。
usermod [选项] 用户名
选项除useradd命令选项可用以外还可以指定下面选项:
-L
临时禁止账户登录
-U
解除账户锁定
-l
新账户名 旧账户名 (改账户名)
userdel [-r] 用户名
-r
删除账户的同时,删除账户对应主目录和邮件目录。
该命令不允许删除已登录的用户账户
7.组账户管理
groupadd [选项] 组名
-g
自行指定GID。
-r
创建系统组,GID小于1000。不带此选项则创建普通组。
groupmod [选项] 组名
-g
修改GID。
-n
新组名 旧组名 可修改祖名。
groupdel 组名
不能删除账户的私有组(主要组),若要删除,需先删除该组的账户。
gpasswd -a kong wheel或Iusermod -G wheel kong
(wheel组增加用户kong)
gpasswd -d kong wheel
(wheel组删除用户kong)
8.其他用户管理命令
id [选项] [用户名]
显示指定用户名账户信息,如不指定用户名,则显示当前登录账户的信息。
who
查看当前系统那些用户登录。、
w
查看监视用户具体执行的进程。
last
查看系统整体的历史登录记录。加用户名则查看指定用户登录历史记录。
查看最近5次登录事件则用:last -5
命令
pkill -kill -t tty1
强制踢出登录tty1的用户
ctrl+d
退出命令行