运维开发网

4_用户与组

运维开发网 https://www.qedev.com 2021-02-13 13:10 出处:51CTO 作者:qingt2314
前言:用户分类、手动创建用户、 用户 操作、 组 操作

前言:

用户分类、

手动创建用户、

用户 操作、

组 操作

注:“这个”好像对md引用大量代码块,显示会有问题,引用的图床图片 大小缩放 也有点问题

所以,看的排版、或代码块有问题看的不舒服;

可以去 更新相同文章的 csdn查看 或 自搭博客

csdn 点击跳转

自搭博客跳转_1(github+hexo)或跳转_2(apche+hexo)

导图

4_用户与组

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 组名 为组设定一个密码
0

精彩评论

暂无评论...
验证码 换一张
取 消