程序员必知必会的 Linux系列 —— 用户组篇

300 阅读3分钟

1. 用户和用户组

  • 使用操作系统的人都是用户
  • 用户组是具有相同系统权限的一组用户

2 配置文件

2.1 /etc/group

  • /etc/group 存储当前系统中所有用户组信息
  • root 组编号为 0
  • 1-499系统预留的编号 预留给安装的软件和服务的
  • 用户手动创建的用户组从500开始
  • 组密码占位符都是x
  • 如果组内只有一个用户,而且用户名和组名相同的话,是可以省略用户名的
root:x:0:root
含义含义
root组的名称
x密码占位符
0组编号
root组中用户名列表

2.2 /etc/gshadow

  • 存放当前系统中用户组的密码信息
  • /etc/group中的记录一一对应
root:*::root
内容含义
root组的名称
*组密码,*为空
组管理者,为空表示都可以管理这个组
root组中用户名列表

2.3 /etc/passwd

  • 存储当前系统中所有用户的信息
root:x:0:0:root:/root:/bin/bash
内容含义
root用户名
x密码占位符
0用户编号
0用户组编号
root用户注释信息
/root用户主目录
/bin/bashshell类型

2.4 /etc/shadow

  • 存放当前系统中所有用户的密码信息
  • user:xxx:::::::
  • 用户名:密码:
root:password:17982:0:99999:7:::
内容含义
root用户名
password单向加密后的密码
17982修改日期,这个是表明上一次修改密码的日期与1970-1-1相距的天数密码不可改的天数:假如这个数字是8,则8天内不可改密码,如果是0,则随时可以改
0这个是表明上一次修改密码的日期与1970-1-1相距的天数密码不可改的天数:假如这个数字是8,则8天内不可改密码,如果是0,则随时可以改
99999如果是99999则永远不用改。如果是其其他数字比如12345,那么必须在距离1970-1-1的12345天内修改密码,否则密码失效
7修改期限前N天发出警告
密码过期的宽限天数
帐号失效日期
保留:被保留项,暂时还没有被用上

3. 用户命令

显示登录的用户名

whoami

显示指定用户信息,包括用户编号,用户名 主要组的编号及名称,附属组列表

id student  

显示zhangsan用户所在的所有组

groups student 

4. 用户和用户组操作

4.1 添加用户组

groupadd stu
cat  /etc/group

4.2 修改用户组名称

groupmod -n student stu
cat  /etc/group

4.3 修改用户组编号

groupmod -g 666 student
cat  /etc/group

4.4 创建分组并指定编号

groupadd -g 888 teacher

4.5 删除用户组

groupdel student

4.6 添加用户

  • 如果创建用户的时候没有指定用户组,系统会为他创建一个和用户名相同的用户组
groupadd stu  //添加用户组
useradd -g stu zhangsan  //创建用户并指定用户组
useradd -g stu lisi      //创建用户并指定用户组

id zhangsan
id lisi

useradd -d /home/james james   //创建用户并指定家目录

passwd zhangsan //root用户可以设置用户的密码

4.7 指定个人文件夹

usermod -d /home/james james

4.8 修改用户组

usermod -g student james

4.9 删除用户

userdel james
userdel -r james //删除用户的时候级联删除对应的目录