4_用户与组

本文详细介绍了Linux系统中的用户分类,包括超级用户、系统用户和普通用户,步骤涵盖了用户添加、修改信息、组管理以及密码设置等内容。重点讲解了/etc/passwd、/etc/shadow等系统文件的变化和用户权限管理。
摘要由CSDN通过智能技术生成

前言:
用户分类、
手动创建用户、
用户 操作、
组 操作

导图

Linux系统中用户的分类

用户 是用来操作 系统中不同功能的身份

  • 超级用户: root uid=0
  • 系统用户:不需要登录系统,服务于应用程序,维护系统的运行
  • 普通用户:可以登录的用户 uid>=1000 (Linux6版本uid>=500)
  • 执行添加用户的命令之后,系统文件会发生的变化
    1)在/etc/passwd添加一行
    2)在/etc/group添加一行
    3)在/etc/shadow添加一行
    4)在/etc/gshadow添加一行
    5)在/home目录下建立一个与用户同名的目录作为家目录,同时会从/etc/skel目录中复制出所有的隐藏文件到该目录
    6)修改权限

系统文件:
/etc/passwd: 保存用户信息的文件
/etc/shadow: 保存用户密码相关信息的文件
/etc/group: 保存组信息的文件
/etc/gshadow:保存组密码相关信息的文件
/etc/passwd
# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
用户名:密码占位符:UID:GID:描述信息:家目录:登录shell


/etc/shadow
# tail -1 /etc/shadow
user1:$6$AcVMb8pd$VN1.vAQqAHF0rVLwTidlmJTJfEcEqdukhCNUMS7JNKg88l7TyJK7.FGKTd2z1gPn0IUXzFMtcBbzcRv3zcult0:18659:0:99999:7:::
用户名:
加密后的密码:
上一次密码修改时间(单位是天,是距离1970年1月1日多少天)
密码最小生存周期 单位:天 0表示随时可以修改密码;2表示两天内不能修改
密码最大生存周期 单位:天,密码使用的最长时间
密码到期前几天开始警告
密码过期之后到账户失效之前的时间限制	密码过期之后还可以用几天
账户过期时间
保留列


/etc/group
# head -1 /etc/group root:x:0:
组名:密码占位符:GID:用户列表


/etc/gshadow
# cat /etc/gshadow root:::
组名: 加密后的密码:组管理员:组成员

用户:
查看用户
# id user1
uid=1002(user1) gid=1002(user1) groups=1002(user1)
uid:用户标识
gid:组标识,用户的主组
groups:用户所属组信息

查看当前用户是谁
# whoami
添加用户
# useradd username

# id username
uid=1005(username) gid=1005(username) 组=1005(username)

添加用户时,如果不指定用户的组,那么默认会创建一个与用户名同名的组作为用户的主要组
选项描述
-u指定用户的uid
-g指定用户的gid,指定用户的主要组,前提:组是必须存在的
-G指定用户的附加组(附属组),前提:组是必须存在的
-c指定描述信息
-d指定用户的家目录; root的默认家目录是/root; 普通用户的默认家目录是/home
-M不建立家目录
-s指定用户的登录shell
-e指定用户过期时间,日期
-f指定用户过期时间,天数
# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
用户名:密码:uid:gid:注释性描述:用户的家目录:用户的登录shell

查看当前shell,echo可以用来打印变量
# echo $SHELL
/bin/bash
shell区别说明
/bin/bash可登录shell,该用户可以登录到系统
/sbin/nologin非登录shell,该用户不允许登录到系统
实例:手动添加用户
直接用修改文件的方式,添加一个用户:adam;密码为:123.com

# tail -1 /etc/passwd
adam:x:1004:1004:test:/home/adam:/bin/bash

# tail -1 /etc/shadow
adam:$6$VjNBLry9$g3KUSyecAuKTKynCfNP5f3lpHckNl9/lIK1vNwux7oCWrhSfJmJcRh5SqzL3m25hT88xp5OyyRT1nPiR1mec91:18463:0:99999:7:::

# tail -1 /etc/group
adam:x:1004:

# tail -1 /etc/gshadow
adam:!::

创建对应的用户的家目录
# mkdir /home/adam

# cp /etc/skel/.bash_logout /etc/skel/.bash_profile /etc/skel/.bashrc /home/adam

将家目录的属主、属组信息更改
# chown adam.adam /home/adam

验证用户是否能正常登录
# su - adam
删除用户

eg:# userdel -fr usr1

选项解释
-f强制删除用户账号
-r删除用户主目录及其中的任何文件
设置密码

超级用户:既可以修改自己的密码,又可以修改别人的密码,并且不需要提供当前密码
普通用户:只能修改自己的密码,要求严格,并且需要提供当前密码

默认修改当前用户的密码
# passwd

修改指定用户的密码
# passwd user1
修改用户

eg:# usermod -s /sbin/nologin user1

选项描述
-u指定用户的uid
-g指定用户的gid,用户的主要组
-G指定附属组,可以有多个, 但是这些附属组必须是系统内已经存在的
-d指定家目录
-s修改用户的shell
-L锁定用户
-U解除锁定
-l改名
-a添加用户到组,结合-G使用,追加附属组

组 group

用户和组的关系:组中可以没有用户、也可以有一个或者多个用户。
用户只有一个主要组,可以同时属于多个组,但是除了主组以外的其他组称为附属组。

从用户的角度分为:
主组:primary group、initial group、firstgroup,用户的默认组,也就是gid所标识的组
附属组:secondary group、supplementary group

添加组 groupadd
# groupadd -g 2021 group1
-g:指定gid

# tail -1 /etc/group
group1:x:2021:
组名:密码:gid:组中成员
修改组 groupmod
# groupmod -g 2020 g2
# tail -1 /etc/group
g2:x:2020:

# groupmod -g 1080 -n group2 g2
# tail -1 /etc/group
group2:x:1080:
删除组:groupdel
PS: Centos6,以及Centos7.6之前所有的版本都适用于这个规则,Centos7.7,是可以删除主要组的。
# groupdel group1
# grep group1 /etc/group //没有任何输出,表示文件中没有含有group1关键字的行

eg:
# id user1
uid=1001(user1) gid=1001(user1) groups=1001(user1)
# id user2
uid=1002(user2) gid=1002(user2) groups=1002(user2)

# groupdel user1 
groupdel:不能移除用户“user1”的主组

# usermod -g 1002 user1
# id userA
uid=1001(user1) gid=1002(user2) groups=1002(user2)

# groupdel userA
# id user1
uid=1001(user1) gid=1002(user2) 组=1002(user2)
# id user2
uid=1002(user2) gid=1002(user2) 组=1002(user2)
组管理 gpasswd
管理/etc/group和/etc/gshadow文件的,每一个组可以有管理员,成员和密码
给组加密码:可以让知道组密码的人,临时的切换到该组中,能够使用该组的资源。

1)指定组的管理员
# gpasswd -A 用户名 组名

2)向组中添加成员
# gpasswd -a 用户名 组名

3)给组设置密码
# gpasswd groups

4)切换组
# su - niulang
$ id
uid=1004(niulang) gid=1004(niulang)groups=1004(niulang),1005(xique)
$ newgrp 组名
$ id
uid=1004(niulang) gid=1081(groups)groups=1081(groups),1004(niulang),1005(xique)


5)将用户从组中删除
# gpasswd -d sha groups

常用命令
命令描述
useradd 用户名添加用户(创建的时候可以指定u、g、c等选项)
id 用户名查看当前用户的ID
whoami查看当前用户的名字
passwd 用户名设置用户密码(普通用户只能通过passwd修改自己本身密码)
userdel 用户名删除一个用户(-r 选项会连同创建的家目录 一同删除)
groupadd 组名创建组
groupdel 组名删除组(用户的主要组不可以删除)
usermod -[u,g,G等]修改用户信息
groupmod -[g,o,n]修改组的信息
gpasswd -A 用户名 组名为组添加一个管理员
gpasswd -a 用户名 组名用组管理员为组添加一个用户成员
gpasswd -d 用户名 组名删除一个组成员
gpasswd 组名为组设定一个密码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值