Linux中的用户和用户组管理
用户账号的管理主要涉及到用户账号的添加、删除和修改。
添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等。
关于用户管理的配置文件说明
用户信息文件:
/etc/passwd
文件内容:
root:x:0:0:root:/root:/bin/bash
第一位:用户名
第二位:密码位(只是一个密码标志,真实密码并不是存在这)
第三位:UID 用户ID
0 超级管理员
1-499 系统用户(伪用户)
>500 普通用户
第四位:GID 初始组ID
第五位:用户说明
第六位:家目录
第七位:用户登录之后的权限
影子文件:
/etc/shadow
文件内容:
root:$6$w5RBeFe7Y1bixrQR$tp0zHL1bMmAVv0SAS56LsCOyZ4KUj3V0GI0dRZ4KSlf.ggisV7dwiQ8s5xebcZghVDxwlYTjN6qKGU9zRc.En1:16247:0:99999:7:::
说明:
#
# 第一字段:用户名(也被称为登录名),在/etc/shadow中,用户名和/etc/passwd 是相同的,
# 这样就把passwd 和shadow中用的用户记录联系在一起;这个字段是非空的;
#
# 第二字段:密码(已被加密),如果是有些用户在这段是x,表示这个用户不能登录到系统;这个字段是非空的;
#
# 第三字段:上次修改口令的时间;这个时间是从1970年01月01日算起到最近一次修改口令的时间间隔(天数),
# 您可以通过passwd 来修改用户的密码,然后查看/etc/shadow中此字段的变化;
#
# 第四字段:两次修改口令间隔最少的天数;如果设置为0,则禁用此功能;也就是说用户必须经过多少天才能修改其口令;
# 此项功能用处不是太大;默认值是通过/etc/login.defs文件定义中获取,PASS_MIN_DAYS 中有定义;
#
# 第五字段:两次修改口令间隔最多的天数;这个能增强管理员管理用户口令的时效性,应该说在增强了系统的安全性;
# 如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_MAX_DAYS 中定义;
#
# 第六字段:提前多少天警告用户口令将过期;当用户登录系统后,系统登录程序提醒用户口令将要作废;
# 如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_WARN_AGE 中定义;
#
# 第七字段:在口令过期之后多少天禁用此用户;此字段表示用户口令作废多少天后,系统会禁用此用户,
# 也就是说系统会不能再让此用户登录,也不会提示用户过期,是完全禁用;
#
# 第八字段:用户过期日期;此字段指定了用户作废的天数(从1970年的1月1日开始的天数),
# 如果这个字段的值为空,帐号永久可用;
#
# 第九字段:保留字段,目前为空,以备将来Linux发展之用;
组信息文件:
/etc/group
文件内容:
bin:x:1:bin,daemon
组名:组密码位:组ID:组中的附加用户
初始组:每个用户初始组只能有一个,初始组只能有一个,一般都是和用户名相同的组作为初始组
附加组:每个用户可以属于多个附加组。要把用户加入组,都是加入附加组
添加用户
useradd 用户名
useradd 选项 用户名
-g 组名 指定初始组(但最好不要手动指定)
-G 组名 指定附加组(把用户加入组,使用附加组)
-c 说明 添加说明
-d 目录 手工指定家目录
-s /bin/bash 手工指定用户登录后之后的权限
例:
useradd -g aa bb 添加bb用户,同时指定初始组aa
useradd -G user1 aa 添加用户aa,指定附加组为user1
设定密码
passwd 用户名
passwd 改变当前用户密码(普通用户只能通过这种方式来更改自己的密码)
passwd root 更改root的密码
删除密码
userdel -r 用户名
-r 连带家目录一起删除
添加组
groupadd 组名
删除组
groupdel 组名 注意:组中没有初始用户
把已经存在的用户加入组
gpasswd -a 用户名 组名 用户加入组
gpasswd -d 用户名 组名 把用户从组中删除
查看用户相关信息
id 用户名 显示用户的UID,初始组,和附加组
例#id sc
uid=0(root) gid=0(root) 组=0(root)
用户间的相互切换
su - 用户名 切换用户身份
- 连带环境变量一起切换