一看就会的Linux用户和组

目录

🔥Linux系统中用户的分类

🔥添加用户

🔥给用户设置密码

🔥明文设置密码

🔥切换用户操作

💧系统文件:

💧 /etc/passwd

💧/etc/shadow 

💧/etc/group

💧/etc/gshadow  

💧//useradd 命令常用选项

💧//usermod 修改用户相关信息常用选项 

🪵对用户的常用操作:

🪵查看用户 id

🪵 添加用户 useradd

🪵添加用户时指定选项 man useradd

🪵 要求区分的两种shell

🪵 删除用户 userdel

🪵给用户设置密码

🪵修改用户:常用

🪙组 group

🪙组的分类:

🪙添加组 groupad

🪙 修改组: groupmod

🪙删除组:groupdel

🪙组管理 gpasswd  

🪙 指定组的管理员列表

🪙向组中添加成员

🪙 给组设置密码

🪙切换组

🪙将用户从组中删除  

🥔 常用命令


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

Linux系统中用户的分类

超级用户: root uid=0
系统用户:不需要登录系统,服务于应用程序,维护系统的运行
普通用户:可以登录的用户 uid>=1000 Linux6 版本 uid>=500

添加用户

[root@mysql ~]# useradd user

给用户设置密码

[root@mysql ~]# passwd user
更改用户 user 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

明文设置密码

[root@mysql ~]# echo 123.com.CN | passwd --stdin user
更改用户 user 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@mysql ~]# 

注意: 密码必须设置为复杂性

切换用户操作

[root@mysql ~]# su - user
[user@mysql ~]$ 
执行添加用户的命令之后,系统文件会发生什么变化那?
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

[root@mysql ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash

用户名:密码占位符:UID:GID:描述信息:家目录:登录shell  

/etc/shadow 

[root@mysql ~]# tail -1 /etc/shadow
user:$6$iJT2hG4d$8KglPNCmRyY2YMjKCYZcmDuHejuV7GH5fZ9CQv11MQ2zZJMjHCtdB76m8zZoo43HKMKdG1f3wENNG.a2nesVG0:19538:0:99999:7:::
1 )用户名
2 )加密后的密码
3 )上一次密码修改时间 ( 单位是天,是距离 1970 1 1 多少天 )
4 )密码最小生存周期 单位:天 0 表示随时可以修改密码; 2 表示两天内不能修改
5 )密码最大生存周期 单位:天,密码使用的最长时间

6 )密码到期前几天开始警告
7 )密码过期之后到账户失效之前的时间限制 密码过期之后还可以用几天
8 )账户过期时间
9 )保留列

/etc/group

[root@mysql ~]# head -1 /etc/group
root:x:0:

组名:密码占位符:GID:用户列表

/etc/gshadow  

[root@mysql ~]# cat /etc/gshadow
root:::

组名: 加密后的密码:组管理员:组成员

//useradd 命令常用选项

-u 指定用户的uid
-g 指定用户的gid
-G 指定附属组,可以有多个, 但是这些附属组必须是系统内已经存在的
-c 指定描述
-d 指定家目录
-M 不建立家目录

-s 指定shell
-e 指定用户过期时间, 日期
-f 指定用户过期时间, 天数

//usermod 修改用户相关信息常用选项 

useradd 参数差不多,一个是在创建用户时设定,一个是用户创建好
-u -g -G -d -s
-L 锁定用户
-U 解除锁定
-l 改名
-a 添加用户到组,结合 -G 使用

对用户的常用操作:

新增、删除、修改、查看、设置密码

查看用户 id

[root@mysql ~]# id user
uid=1001(user) gid=1001(user) 组=1001(user)
]# whoami //查看当前用户是谁
root
]# id lp //查看指定用户的信息
uid=4(lp) gid=7(lp) groups=7(lp)
uid:用户标识
gid:组标识,用户的主组
groups:用户所属组信息

 添加用户 useradd

]# useradd niulang
反例:
]# su - niulang // switch user切换用户
]$ useradd zhinv
-bash: /usr/sbin/useradd: Permission denied 权限被拒绝,普通
用户是无法添加用户的
]$ exit
logout
]# id niulang
uid=500(niulang) gid=500(niulang) groups=500(niulang)
添加用户时,如果不指定用户的组,那么默认会创建一个与用户名同名的组作为
用户的主要组。

添加用户时指定选项 man useradd

-c :注释性的描述信息
-d :指定用户的家目录
默认情况下:
root 的家目录是 /root
普通用户的家目录是 /home
-g :指定用户的主要组,前提:组是必须存在的
-G :指定用户的附加组 ( 附属组 ) ,前提:组是必须存在的
-s :指定用户的登录 shell
-u :指定用户的 uid
[root@mysql ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@mysql ~]# echo $SHELL
/bin/bash
[root@mysql ~]# 

 用户名:密码:uid:gid:注释性描述:用户的家目录:用户的登录shell

 要求区分的两种shell

/bin/bash :可登录 shell ,如果用户的 shell 是这个,那么该用户可以登录到系统中
/sbin/nologin :非登录 shell ,如果用户的 shell 是这个,那么该用户是不允许登录到系统的

例子:

root@mysql ~]# useradd -M -s /sbin/nologin zhinv
[root@mysql ~]# id zhinv
uid=1002(zhinv) gid=1002(zhinv) 组=1002(zhinv)
[root@mysql ~]# less /etc/passwd | grep zhinv
zhinv:x:1002:1002::/home/zhinv:/sbin/nologin
[root@mysql ~]# zhinv:x:1003:1003::/home/zhinv:/sbin/nologin

 删除用户 userdel

//删除的时候不会删除用户的家目录和邮箱

[root@mysql ~]# userdel wangmu

//能添加,但是会有提示消息 

[root@mysql ~]# useradd wangmu
useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。
正在创建信箱文件: 文件已存在
// -r : 可以干净的删除一个用户
[root@mysql ~]# userdel -r wangmu

给用户设置密码

passwd

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

// 默认修改当前用户的密码

]# passwd
Changing password for user root.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.

修改指定用户的密码

]# passwd niulang
Changing password for user niulang.
New password:
BAD PASSWORD: it is too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.

 普通用户修改自己的密码,需要当前密码,而且长度最少6位,而且不能是字典单词

]$ passwd
Changing password for user niulang.
Changing password for niulang.
(current) UNIX password:
New password:
BAD PASSWORD: it is based on a dictionary word
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

修改用户:常用

//modify :修改
usermod
-G :修改用户的附属组,不管用户原来的附属组如何,直接覆盖
-g :修改用户的主要组
-a :一般和 -G 联合使用,追加附属组
-u :修改用户的 uid
-d :修改用户的家目录
-s :修改用户的 shell
[root@mysql ~]# useradd -G zhinv niulang
[root@mysql ~]# id niulang
uid=1003(niulang) gid=1003(niulang) 组=1003(niulang),1002(zhinv)
[root@mysql ~]# useradd xique
[root@mysql ~]# id xique
uid=1004(xique) gid=1004(xique) 组=1004(xique)
[root@mysql ~]# usermod -G xique niulang
[root@mysql ~]# id niulang
uid=1003(niulang) gid=1003(niulang) 组=1003(niulang),1004(xique)
[root@mysql ~]# 

group

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

组的分类:

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

添加组 groupad

[root@mysql ~]# groupadd g1
[root@mysql ~]# groupadd -g 2023 g2
[root@mysql ~]# less /etc/group
[root@mysql ~]# tail -2 /etc/group
g1:x:1005:
g2:x:2023:
[root@mysql ~]# 

组名:密码:gid:组里成员

 修改组: groupmod

[root@mysql ~]# groupmod -g 2020 g2
[root@mysql ~]# tail -1 /etc/group
g2:x:2020:
[root@mysql ~]# groupmod -g 1080 -n group2 g2
[root@mysql ~]# tail -1 /etc/group
group2:x:1080:
[root@mysql ~]# 

删除组:groupdel

PS: Centos6,以及Centos7.6之前所有的版本都适用于这个规则Centos7.7,是可以删除主要组

]# groupdel group1
]# grep group1 /etc/group //没有任何输出,表示文件中没有含有
group1关键字的行

组管理 gpasswd  

管理 /etc/group /etc/gshadow 文件的,每一个组可以有管理员,成员和密码
给组加密码:可以让知道组密码的人,临时的切换到该组中,能够使用该组的资源。

 指定组的管理员列表

[root@mysql ~]# groupadd groups
[root@mysql ~]# useradd u1
[root@mysql ~]# gpasswd -A u1 groups

向组中添加成员

[root@mysql ~]# su - u1
Attempting to create directory /home/u1/perl5
[u1@mysql ~]$ tail /etc/group
lisi:x:1000:lisi
mysql:x:980:
user:x:1001:
zhinv:x:1002:
niulang:x:1003:
xique:x:1004:niulang
g1:x:1005:
group2:x:1080:
groups:x:1081:
u1:x:1082:

 给组设置密码

[u1@mysql ~]$ gpasswd groups
正在修改 groups 组的密码
新密码:
请重新输入新密码:
[u1@mysql ~]$ 

切换组

[root@mysql ~]# su - niulang
Attempting to create directory /home/niulang/perl5
[niulang@mysql ~]$ id
uid=1003(niulang) gid=1003(niulang) 组=1003(niulang),1004(xique)
[niulang@mysql ~]$ newgrp groups
密码:
[niulang@mysql ~]$ id
uid=1003(niulang) gid=1081(groups) 组=1081(groups),1003(niulang),1004(xique)
[niulang@mysql ~]$ 

将用户从组中删除  

gpasswd -d sha groups
Removing user sha from group groups

 常用命令

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

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值