Linux创建用户和组管理

用户和组管理


各配置文件说明
配置文件作用
/etc/passwd用户及其属性信息(名称、uid、基本组id等等
/etc/group组及其属性信息
/etc/shadow用户密码及其相关属性
/etc/gshadow组密码及其相关属性。在用户执行基本组切换时使用
配置文件/etc/passwd/etc/group
第一字段用户名组名
第二字段密码占位符组密码
第三字段UIDGID
第四字段GID以当前组为附加组的用户列表(分隔符为逗号
第五字段用户的描述信息
第六字段用户家目录
第七字段用户的登录shell
配置文件/etc/shadow
第一字段登录名
第二字段加密后的密码
第三字段最近一次更改密码的日期
第四字段密码的最小使用期限
第五字段密码的最大使用期限
第六字段密码警告时间段
第七字段密码禁用期
第八字段帐号的过期日期
第九字段保留字段
加密方式

对称加密:加密和解密使用同一个密钥
公钥加密:每个密码都成对出现,一个为私钥(secret key),一个为公钥(public key)
单向加密:也叫散列加密,提取数据特征码,能加密不能解密,常用于做数据完整性校验

单向加密特点:

  • 雪崩效应(初始条件的微小改变,将会引起结果的巨大改变)
  • 定长输出
    • MD5:Message Digest,128位定长输出
    • SHA1:Secure Hash Algorithm,160位定长输出
    • SHA224:224位定长输出
    • SHA256:256位定长输出
    • SHA384:384位定长输出
    • SHA512:512位定长输出
useradd 作用:创建用户
  • -u 指定用户UID
  • -g 指定用户GID(给用户指定一个组)
  • -G 给用户添加一个附加组
  • -c 给创建的用户添加描述
  • -s 给创建的用户指定shell(给用户指定一个操作系统)
  • -M 创建用户的时候不给其指定家目录,但系统会自动分配到home默认目录下
  • -r 创建一个系统用户
  • -D //直接打印/etc/default/useradd文件的内容或配合其它选项
    //(例如-s SHELL)直接修改/etc/default/useradd文件中的默认值
[root@localhost ~]# useradd -u 1001 -g 1000 -G root -c ‘这是一个测试账号’ -d /root/zhewang -s /etc/bin/bash zhewwang 
[root@localhost ~]# grep zhewang /etc/passwd
zhewwang:x:1001:1000:‘这是一个测试账号’:/root/zhewang:/etc/bin/bash
[root@localhost ~]# id zhewwang
uid=1001(zhewwang) gid=1000(jinxin) 组=1000(jinxin),0(root)

useradd -M //不给用户指定家目录,但是系统会自动分配到home目录下

[root@localhost ~]# useradd -M zhe
[root@localhost ~]# id zhe
uid=1002(zhe) gid=1002(zhe) 组=1002(zhe)
[root@localhost ~]# grep zhe /etc/passwd
zhe:x:1002:1002::/home/zhe:/bin/bash

useradd -r

[root@localhost ~]# useradd -r sir
[root@localhost ~]# id sir
uid=997(sir) gid=995(sir) 组=995(sir)
[root@localhost ~]# usermod -c 这是一个系统测试账户 sir
[root@localhost ~]# grep sir /etc/passwd
sir:x:997:995:这是一个系统测试账户:/home/sir:/bin/bash
userdel 作用:删除用户
  • -r 删除用户的同时删除其家目录
    userdel 作用:删除用户
[root@localhost ~]# useradd zhe
[root@localhost ~]# id zhe
uid=1000(zhe) gid=1001(zhe) 组=1001(zhe)
[root@localhost ~]# userdel zhe
[root@localhost ~]# id zhe
id: zhe: no such user
//但是这样只删除了用户账号,此用户的家目录和mail还存在系统中
[root@localhost ~]# find / -name zhe
/var/spool/mail/zhe
/home/zhe
[root@localhost ~]# useradd zhe
[root@localhost ~]# id zhe
uid=1000(zhe) gid=1001(zhe) 组=1001(zhe)
[root@localhost ~]# userdel -r zhe
[root@localhost ~]# id zhe
id: zhe: no such user
[root@localhost ~]# find / -name zhe
[root@localhost ~]# 
//加了-r删除了以后,此用户在系统中的家目录及mail都会被删除
id 作用:查看账户信息
  • -u 查看账户UID
  • -g 查看账户GID
  • -G 查看账户group
[root@localhost ~]# id zhe
uid=1000(zhe) gid=1001(zhe) 组=1001(zhe),1002(xq)
[root@localhost ~]# id -u zhe
1000
[root@localhost ~]# id -g zhe
1001
[root@localhost ~]# id -G zhe
1001 1002
usermod 作用:修改用户账号属性
  • -u 修改账户UID属性
  • -G 修改账户GID属性
  • -a -G 修改账户附加组属性并且不覆盖以前的组,不加-a直接覆盖之前的所属组
  • -d -m 改变用户家目录的同时把原来家目录的文件移动到新的家目录中
  • -e YYYY-MM-DD 指明账户的过期日期
  • -f YYYY-MM-DD 设定非活动期限,也就是账户过期后还留有一定的时间来更改密码
  • -L 锁定账户,被锁定的帐号在/etc/shadow文件中密码前面会有一个!感叹号
  • -U 解锁账户
  • -s 改变用户的shell

usermod -u -g 作用:修改用户的UID和GID

[root@localhost ~]# grep wang /etc/passwd
wangzhe:x:1005:1003::/home/wangzhe:/bin/bash
[root@localhost ~]# usermod -u 1003 -g 1004 wangzhe
[root@localhost ~]# grep wangzhe /etc/passwd
wangzhe:x:1003:1004::/home/wangzhe:/bin/bash

usermod -a -G 作用:修改账户附加组并且不覆盖以前的组

[root@localhost ~]# id zhesir
uid=1004(zhesir) gid=1005(zhesir) 组=1005(zhesir)
[root@localhost ~]# usermod -a -G 1003 zhesir
[root@localhost ~]# id zhesir
uid=1004(zhesir) gid=1005(zhesir) 组=1005(zhesir),1003(wangzhe)

usermod -d -m 作用:该百年用户家目录并把原来家目录的文件移动到新的家目录中

[root@localhost ~]# grep wangzhe /etc/passwd
wangzhe:x:1003:1004::/tmp/kk:/bin/bash
[root@localhost ~]# touch /tmp/kk/haha
[root@localhost ~]# ls /tmp/kk
haha
[root@localhost ~]# usermod -d /home/wangzhe -m wangzhe
[root@localhost ~]# grep wangzhe /etc/passwd
wangzhe:x:1003:1004::/home/wangzhe:/bin/bash
[root@localhost ~]# ls /home/wangzhe/
haha
//在-d后面加上目的目录地址

user -s 作用:修改账户所使用的shell

[root@localhost ~]# cat /etc/shells 
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
[root@localhost ~]# grep wangzhe /etc/passwd
wangzhe:x:1003:1004::/home/wangzhe:/bin/bash
[root@localhost ~]# usermod -s /bin/sh wangzhe
[root@localhost ~]# grep wangzhe /etc/passwd
wangzhe:x:1003:1004::/home/wangzhe:/bin/sh
su 作用:切换用户
切换用户方式特点
su USERNAME非登录式切换,即不会读取目标用户的配置文件
su - USERNAME登录式切换,即会读取目标用户的配置文件,完全切换
su -不指定用户时默认切换至root用户

su - xxx 作用:登陆式切换,直接读取要登陆用户的配置文件,完全切换

[root@localhost ~]# su - wangzhe
上一次登录:四 9月 19 16:04:06 CST 2019pts/0 上
最后一次失败的登录:四 9月 19 16:05:27 CST 2019pts/0 上
最有一次成功登录后有 1 次失败的登录尝试。
[wangzhe@localhost ~]$ 

su - 作用:不指定用户的时候会默认切换会root账户

[wangzhe@localhost ~]$ su -
密码:
上一次登录:四 9月 19 16:05:35 CST 2019pts/0 上
[root@localhost ~]# 

bash的配置文件

配置文件类型配置文件路径
全局配置/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
个人配置~/.bash_profile
~/.bashrc
配置文件类型功能
profile类为交互式登录的shell提供配置,用来设定环境变量、运行命令或脚本
bashrc类为非交互式登录的shell提供配置,用来设定本地变量、定义命令别名

登录式shell如何读取配置文件?
/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

非登录式shell如何读取配置文件?
~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

passwd 作用:密码管理

语法:passwd [options] [USERNAME]

  • stdin //从标准输入获取用户密码
    //例:echo "redhat"|passwd --stdin user1
  • -l //锁定用户
  • -u //解锁用户
  • -n mindays //指定最短使用期限
  • -x maxdays //指定最长使用期限
  • -w warndays //提前多少天开始警告
  • -i inactivedays //非活动期限,密码过期后到禁用前的这段时间

echo ‘123456’ | passwd wangzhe 作用:给用户创建一个密码

[root@localhost ~]# echo '123456' | passwd --stdin wangzhe
更改用户 wangzhe 的密码 。
passwd:所有的身份验证令牌已经成功更新。

passwd -l 作用:锁定某个账户的密码

[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe:$6$mPIGfHT0$iiwBaZgDICXiC8nszsTTCP/RNPkwXJ9ubqW8cUOu7FtL/zVimLfEU0wWq5cuWRwCImvf7ZM9G045ZLqwkuWZ/0:18158:0:99999:7:::
[root@localhost ~]# passwd -l wangzhe
锁定用户 wangzhe 的密码 。
passwd: 操作成功
[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe:!!$6$mPIGfHT0$iiwBaZgDICXiC8nszsTTCP/RNPkwXJ9ubqW8cUOu7FtL/zVimLfEU0wWq5cuWRwCImvf7ZM9G045ZLqwkuWZ/0:18158:0:99999:7:::
//被锁定的账户在第二段开头会有两个!号

passwd -u 作用:解锁账户密码

[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe:!!$6$mPIGfHT0$iiwBaZgDICXiC8nszsTTCP/RNPkwXJ9ubqW8cUOu7FtL/zVimLfEU0wWq5cuWRwCImvf7ZM9G045ZLqwkuWZ/0:18158:0:99999:7:::
[root@localhost ~]# passwd -u wangzhe
解锁用户 wangzhe 的密码。
passwd: 操作成功
[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe:$6$mPIGfHT0$iiwBaZgDICXiC8nszsTTCP/RNPkwXJ9ubqW8cUOu7FtL/zVimLfEU0wWq5cuWRwCImvf7ZM9G045ZLqwkuWZ/0:18158:0:99999:7:::

passwd -d 作用:删除账户密码

[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe:$6$mPIGfHT0$iiwBaZgDICXiC8nszsTTCP/RNPkwXJ9ubqW8cUOu7FtL/zVimLfEU0wWq5cuWRwCImvf7ZM9G045ZLqwkuWZ/0:18158:0:99999:7:::
[root@localhost ~]# passwd -d wangzhe
清除用户的密码 wangzhe。
passwd: 操作成功
[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::18158:0:99999:7:::
//第二段乱码已经没了就是代表密码已经被删除

passwd -n 作用:修改账户密码最短使用期限

[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::18158:0:99999:7:::
[root@localhost ~]# passwd -n 8 wangzhe
调整用户密码老化数据wangzhe。
passwd: 操作成功
[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::18158:8:99999:7:::

passwd -x 作用:修改账户密码最长使用期限

[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::18158:8:99999:7:::
[root@localhost ~]# passwd -x 10 wangzhe
调整用户密码老化数据wangzhe。
passwd: 操作成功
[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::18158:8:10:7:::

passwd -w 作用:提前多少天开始提示用户更换密码

[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::18158:8:10:7:::
[root@localhost ~]# passwd -w 20 wangzhe
调整用户密码老化数据wangzhe。
passwd: 操作成功
[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::18158:8:10:20:::

passwd -i 作用:用户密码已经到期后还可以使用多久

[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::18158:8:10:20:::
[root@localhost ~]# passwd -i 30 wangzhe
调整用户密码老化数据wangzhe。
passwd: 操作成功
[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::18158:8:10:20:30::
chage 作用:改变用户密码过期信息命令

语法:chage [options] USERNAME

  • -d //最近一次的修改时间
  • -E //过期时间
  • -I //非活动时间
  • -m //最短使用期限
  • -M //最长使用期限
  • -W //警告时间

chage -d 作用:最近一次更改密码的日期

[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::18158:8:10:20:30::
[root@localhost ~]# chage -d 69 wangzhe
[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::69:8:10:20:30::
//这个不需要管理,只要更新了密码,第三段会自动更改

chage -E 作用:更改账号的过期时间

[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::69:8:10:20:30::
[root@localhost ~]# chage -E 年-月-日 wangzhe
[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::69:8:10:20:30:222:

chage -I 作用:用户密码已经到期后还可以使用多久

[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::69:8:10:20:30:222:
[root@localhost ~]# chage -I 888 wangzhe
[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::69:8:10:20:888:222:
//和passwd -i 命令同样的作用

chage -m 作用:修改账户密码最短使用期限

[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::69:8:10:20:999:222:
[root@localhost ~]# chage -m 6666 wangzhe
[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::69:6666:10:20:999:222:
//和passwd -m 命令的作用一样

chage -M 作用:

[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::69:777:10:20:999:222:
[root@localhost ~]# chage -M 99999 wangzhe
[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::69:777:99999:20:999:222:
//和passwd -x 命令的作用一样

chage -W 作用:提前多少天开始提示用户更换密码

[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::69:777:555555:20:999:222:
[root@localhost ~]# chage -W 999999 wangzhe
[root@localhost ~]# grep wangzhe /etc/shadow
wangzhe::69:777:555555:999999:999:222:
//和passwd -w 命令的作用一样
openssl 作用:密码生成工具

语法:openssl command [ command_opts ] [ command_args ]

  • command //包含标准命令、消息摘要命令、加密命令
  • version //查看程序版本号
  • dgst //提取特征码
  • passwd //生成密码
  • rand //生成伪随机数

openssl passwd -1 -salt xxxxxxxx 作用:生成加密后的密码

[root@localhost ~]# openssl passwd -1 -salt jinxinruntian    //jinxinruntian 是你加入密码里面的杂质
Password:    //此处密码为:123456
$1$jinxinru$HSIyROhBWD38pgNJQGoyQ/

openssl rand -bash64 作用:生成伪随机数

[root@localhost ~]# openssl rand -base64 20
2jmfGEom6VmHW9ZmoviUnmNnr60=
group组管理

groupadd 作用:创建组

语法:group [options] GROUP

  • -g GID //指定GID
  • -r //添加一个系统组

groupadd 作用:创建一个组

[root@localhost ~]# groupadd jinxin
[root@localhost ~]# grep jinxin /etc/group
jinxin:x:1006:

group -g 作用:指定这个组的GID

[root@localhost ~]# groupadd -g 1009 runtian
[root@localhost ~]# grep runtian /etc/group
runtian:x:1009:

group -r 作用:创建一个系统组

[root@localhost ~]# groupadd -r jinxinruntian
[root@localhost ~]# grep jinxinruntian /etc/group
jinxinruntian:x:995:

groupmod 作用:修改组信息
语法:groupmod [options] GROUP

  • -g GID //修改指定组的GID
  • -n groupname //修改组名

groupmod -g 作用:修改组ID

[root@localhost ~]# grep jinxinruntian /etc/group
jinxinruntian:x:995:
[root@localhost ~]# groupmod -g 1090 jinxinruntian
[root@localhost ~]# grep jinxinruntian /etc/group
jinxinruntian:x:1090:

groupmod -n 作用:修改组名称

[root@localhost ~]# grep jinxinruntian /etc/group
jinxinruntian:x:1090:
[root@localhost ~]# groupmod -n weijunqiang jinxinruntian
[root@localhost ~]# grep weijunqiang /etc/group
weijunqiang:x:1090:

groupdel 作用:删除组

[root@localhost ~]# groupdel weijunqiang

[root@localhost ~]# grep weijunqiang /etc/group
[root@localhost ~]# 

gpasswd 作用:给组创建密码

语法:gpasswd [option] GROUP

  • -a, --add USER //将用户添加至组
  • -d, --delete USER //将用户从组中删除
  • -r, --delete-password //删除组密码

gpasswd 作用给组创建一个密码

[root@localhost ~]# gpasswd jinxin
正在修改 jinxin 组的密码
新密码:
请重新输入新密码:
[root@localhost ~]# 

gpasswd -a 作用:添加用户到组里面

[root@localhost ~]# gpasswd -a wangzhe jinxin
正在将用户“wangzhe”加入到“jinxin”组中
[root@localhost ~]# id wangzhe
uid=1003(wangzhe) gid=1004(zhe) 组=1004(zhe),1003(wangzhe),1006(jinxin)

gpasswd -d 作用:将用户从组里面删除

uid=1003(wangzhe) gid=1004(zhe) 组=1004(zhe),1003(wangzhe),1006(jinxin)
[root@localhost ~]# gpasswd -d wangzhe jinxin
正在将用户“wangzhe”从“jinxin”组中删除
[root@localhost ~]# id wangzhe
uid=1003(wangzhe) gid=1004(zhe) 组=1004(zhe),1003(wangzhe)

gpsswd -r 作用:删除组密码

[root@localhost ~]# grep jinxin /etc/gshadow
jinxin:$6$eqpQSiGAdY/wj$cKBrgVPQAKT15t0xqv55kjVnAmKvO1seBA/Qdp5ZvxA7BfBB6zVLlybTNDON0O2CIRyHdWPPPwJDufuo4kFMh1::
[root@localhost ~]# gpasswd -r jinxin
[root@localhost ~]# grep jinxin /etc/gshadow
jinxin:::wangzhe

newgrp 作用:普通用户临时切换组

语法:newgrp [-] [group]

[wangzhe@localhost ~]$ id
uid=1003(wangzhe) gid=1006(jinxin) 组=1006(jinxin),1003(wangzhe),1004(zhe) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[wangzhe@localhost ~]$ newgrp runtian
密码:
[wangzhe@localhost ~]$ id
uid=1003(wangzhe) gid=1007(runtian) 组=1007(runtian),1003(wangzhe),1004(zhe),1006(jinxin) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[wangzhe@localhost ~]$ exit
exit
[wangzhe@localhost ~]$ id
uid=1003(wangzhe) gid=1006(jinxin) 组=1006(jinxin),1003(wangzhe),1004(zhe) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值