用户管理
内容: 用户管理、用户组管理、密码管理
用户类型
超级管理用户:又称为系统管理员,拥有所有权限,uid=0
普通用户:是在系统安装后由超级用户所创建的,普通用户的权限相当有限,只能对其拥有权限的文件和目录进行操作,只能管理自己启动的进程。Uid=999以上(可以登录系统)
程序用户:与系统服务相关的用户,通常在安装的相关软件包时自动创建,一般不需要改变其默认设置,它们的shell为/sbin/nologin。Uid=1-999(不可以登录系统)
区分用户
uid----user identify
注:在系统中通过uid区分用户,UID是系统中唯一标识一个用户的数字,管理员的UID固定在0
在centos7之后系统⽤户的id从1--999
在centos7之前系统⽤户id是从1-499
id 查看用户的id
[root@1000phone ~]# id
uid=0(root) gid=0(root) 组=0(root)
uid=0(root): 用户 uid
gid=0(root): 用户组的 gid
组=0(root) : 附加组
用户组分为两类:基本组(私有组)和附加组(共有组)
基本组(私有组): 在创建用户的同时就自动会建一个与用户同名的组。如建立mike用户会同时建立一个mike组,mike这个用户就属于mike组。
附加组(共有组) :用户所属的除基本组外的其他组,如建立mike用户和tom用户,mike用户加入Tom用户的这个组,那么对于Mike这个用户来说tom组就是附加组。
储存用户信息的相关文件
1./etc/passwd ---- 系统中用户的详细信息
(每行用户信息“ :”为分隔符,划分为 7 个字段,每个字段所表示的含义如下 )
root:x:0:0:root:/root:/bin/bash
用户名:密码占位符:uid:gid:描述信息:家目录:登录shell
2.、/etc/shadow ---- 系统中用户的密码信息
root:$6$vcqLXI52kpF9fJ9O$k6NsztxvQ6R85K.tPL979cEiVaVAZ8R19mtSdhlJ9r8ASfCc4k9/0D4/OAuRORokxLzakcTnFS/Y4D0748tnv1::0:99999:7:::
第⼀列:⽤户名
第⼆列:密码位 (有密码 ⽆密码 !帐号锁定 !!密码锁定 *该⽤户永久不能登录系统)
$id$salt$encrypted
加密算法$id:
$1: MD5
$5: SHA-256
$6: SHA-512
注释:加密算法就是⽤明⽂的密码和⼀个叫做salt的函数通过crypt()函数完成加密的,salt由
a-z A-Z 0-9 . / 组成,⽤来决定使⽤4096种不同内建表格的哪⼀种
第三列:最后⼀次修改密码时间
第四列:密码最短有效天数(即密码⾄少使⽤的天数,0⽆限制)从1970.1.1开始计算 -n
第五列:密码最⻓有效天数(99999 永久⽣效) -x
第六列:密码过期前警告时间(默认是7天,在这期间可使⽤就旧密码) -w
第七列:密码过期后的宽限时间(密码过期后预留给账户修改密码的时间) -i
第⼋列:帐号失效期
第九列:保留列
3.家目录
普通⽤户: /home/⽤户名/,所有者和所属组都是此⽤户,权限是700
超级⽤户: /root/,所有者和所属组都是root⽤户,权限是550
4.用户的邮箱
/var/spool/mail/⽤户名
5.用户模板目录
/etc/skel
用户的相关操作
1.添加用户
登录:
su user :登录用户user
exit:退出当前用户,回到管理用户
[root@localhost ~]# su user1
[user1@localhost root]$ exit
exit
[root@localhost ~]#
-u选项,制定用户uid
-g选项,设置新用户所属于的组 (预先系统中得有创建新用户的组)
-s选项,设置新用户使用的shell (选择/bin/bash或者/sbin/nologin)
-G选项,添加附加组的新用户
-b选项,制定家目录的根
-c选项,给新用户添加说明信息
-d选项,给新用户设置家目录
-e选项,给新用户设置账户到期时间
-m选项,自动建立用户的家目录
-M选项,不自动建立用户的家目录
-b 选项: 仅指定 home 目录路径,但不创建 home 目录。
-d 选项: 既指定 home 目录路径,又创建 home 目录。
添加:
useradd user :添加用户user
useradd -u user :添加指定uid的用户user
useradd -g user :添加指定gid的用户user
注:想要添加指定gid,系统当中必须有相同的gid组用户
[root@localhost ~]# useradd user1
[root@localhost ~]# useradd -u 1002 user2
[root@localhost ~]# id user2
uid=1002(user2) gid=1002(user2) 组=1002(user2)
[root@localhost ~]# useradd -g 1003 user3
useradd:“1003”组不存在 (必须先添加gid=1003的用户)
[root@localhost ~]# useradd -u 1003 -s /sbin/mologin user3 (并不限于普通用户和系统用户)
[root@localhost ~]# useradd -g 1003 user4
[root@localhost ~]# ls /home/
user1 user2 user3 user4
useradd -d /dir user :添加指定主目录的用户user
[root@localhost ~]# useradd -d /user55 user5
[root@localhost ~]# tail -1 /etc/passwd
user5:x:1005:1005::/user55:/bin/bash
[root@localhost ~]# ls /
aa bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp user55 usr var
useradd -s user : 添加指定登录系统的用户user
[root@localhost ~]# useradd -u 1003 -s /sbin/mologin user3
[root@localhost ~]# id user3
uid=1003(user3) gid=1003(user3) 组=1003(user3)
[root@localhost ~]# su user3
su: failed to execute /sbin/mologin: 没有那个文件或目录
useradd -c “描述信息” user : 添加指定描述信息的用户user
[root@localhost ~]# useradd -c "is a user6" user6
[root@localhost ~]# id user6
uid=1006(user6) gid=1006(user6) 组=1006(user6)
[root@localhost ~]# tail -1 /etc/passwd
user6:x:1006:1006:is a user6:/home/user6:/bin/bash
useradd -G userA userB : 添加附加组userA的用户userB
[root@localhost ~]# useradd -G user1 user7
[root@localhost ~]# id user7
uid=1007(user7) gid=1007(user7) 组=1007(user7),1000(user1)
useradd -M user : 添加无用户家目录的用户user
useradd -m user : 添加用户家目录的用户user
[root@localhost ~]# useradd -M user8
[root@localhost ~]# id user8
uid=1008(user8) gid=1008(user8) 组=1008(user8)
[root@localhost ~]# ls /home/
user1 user2 user3 user4 user6 user7 (无用户user8)
[root@localhost ~]# tail -1 /etc/passwd
user8:x:1008:1008::/home/user8:/bin/bash (无描述信息)
2.删除用户
userdel user : 删除用户user
userdel -r user : 删除主目录和邮件池(彻底删除,)
[root@localhost ~]# useradd user9
[root@localhost ~]# userdel -r user9
[root@localhost ~]# ls /home/
user1 user2 user3 user4 user6 user7
3.修改用户
usermod -u “uid” user : 修改用户user的uid
[root@localhost ~]# usermod -u 2001 user1
[root@localhost ~]# id user1
uid=2001(user1) gid=1000(user1) 组=1000(user1)
usermod -g “gid” user : 修改用户的组id
[root@localhost ~]# usermod -g 1003 user2
[root@localhost ~]# id user2
uid=1002(user2) gid=1003(user3) 组=1003(user3)
注:修改组前必须系统当中存在相同的组id
usermod -c “描述信息” user : 修改用户user的描述信息
[root@localhost ~]# tail -3 /etc/passwd | head -1
user6:x:1006:1006:is a user6:/home/user6:/bin/bash
[root@localhost ~]# usermod -c "i am user6" user6
[root@localhost ~]# tail -3 /etc/passwd
user6:x:1006:1006:i am user6:/home/user6:/bin/bash
user7:x:1007:1007::/home/user7:/bin/bash
user8:x:1008:1008::/home/user8:/bin/bash
usermod -s “登录shell” user : 修改用户的登录shell
[root@wyy ~]# usermod -s /sbin/nologin user7
usermod -aG “gid” user : 追加附加组(注意是附加组不是组id)
[root@localhost ~]# id user3
uid=1003(user3) gid=1003(user3) 组=1003(user3)
[root@localhost ~]# id user4
uid=1004(user4) gid=1003(user3) 组=1003(user3)
[root@localhost ~]# id user5
uid=1005(user5) gid=1005(user5) 组=1005(user5)
[root@localhost ~]# usermod -aG 1003 user5
[root@localhost ~]# id user5
uid=1005(user5) gid=1005(user5)
组=1005(user5),1003(user3)
usermod -l userB userA :重命名用户 (user8重命名为user9)
[root@localhost ~]# usermod -l user9 user8
[root@localhost ~]# id user8
id: user8: no such user
[root@localhost ~]# id user9
uid=1008(user9) gid=1008(user8) 组=1008(user8)
(注意:只是修改了用户名,uid、gid、组id没变)
usermod -d “家目录” user :修改家目录的用户user
[root@localhost ~]# usermod -d /user77 user7
[root@localhost ~]# tail -2 /etc/passwd
user7:x:1007:1007::/user77:/bin/bash
user9:x:1008:1008::/home/user8:/bin/bash
方法二:
直接修改passwd文件
此文件里面除了密码字段能删除不能直接修改之外,其他字段全部都能直接修改
[[email protected] ~]# cat /etc/passwd
账户的基本信息都在这个文件内
用户名:代表密码:uid:gid:账户的描述信息:家目录:登录shell
4.用户密码
passwd user : 设置用户user密码
passwd -S user : 查看用户user密码状态 (-S是大写)
[root@localhost ~]# passwd user1
更改用户 user1 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# passwd -S user1
user1 PS 2024-03-06 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
passwd -l user : 锁定用户密码
passwd -u user : 解锁用户密码
passwd -e user : 强制用户密码过期
[root@localhost ~]# passwd -l user1
锁定用户 user1 的密码 。
passwd: 操作成功
[root@localhost ~]# passwd -u user1
解锁用户 user1 的密码。
passwd: 操作成功
[root@localhost ~]# passwd -e user1
正在终止用户 user1 的密码。
passwd: 操作成功
用户组的相关操作
1.用户组的相关信息
cat /etc/group ----查看用户组信息
root:x:0:
[root@localhost ~]# tail -8 /etc/group
tcpdump:x:72:
user1:x:1000:user7
user2:x:1002:
user3:x:1003:user5
user5:x:1005:
user6:x:1006:
user7:x:1007:
user8:x:1008:
1.用户组
2.用户组密码,这个段可以是空的或!,如果是空的或有!,表示没有密码;
3.用户组管理者,这个字段也可为空,如果有多个用户组管理者,用,号分割;
4.组成员,如果有多个成员,用,号分割;
比如:
user2:x:3000:user7,user3
/etc/gshadow -----用户组密码信息
root:::
1.用户组名
2.用户组密码
3.用户组管理员的名称
4.组中附加用户
2.添加用户组
添加组
groupadd dir : 添加用户组dir
groupadd -g “gid” dir : 添加指定gid用户组dir
[root@localhost ~]# groupadd dir1
[root@localhost ~]# tail -1 /etc/group
dir1:x:1009:
[root@localhost ~]# groupadd -g 2222 dir2
[root@localhost ~]# tail -1 /etc/group
dir2:x:2222:
查看组
[root@localhost ~]# cat /etc/group
[root@localhost ~]# cat /etc/group | tail -2
dir1:x:1009:
dir2:x:2222:
查看一个用户的所属组
[root@localhost ~]# groups user1
user1 : user1
修改组
[root@localhost ~]# groupmod -g 1112 user2
[root@localhost ~]# tail -1 /etc/group
dir2:x:2222:
给组设置密码
[root@localhost ~]# gpasswd user2
新密码:
请重新输入新密码:
给组添加账户
[root@localhost ~]# gpasswd -a user7 dir2
正在将用户“user7”加入到“dir2”组中
[root@localhost ~]# tail -1 /etc/group
dir2:x:2222:user7
给组添加多个账户
[root@localhost ~]# useradd jim
[root@localhost ~]# useradd tom
[root@localhost ~]# gpasswd -M jim,tom dir2
[root@localhost ~]# tail -3 /etc/group
dir2:x:2222:jim,tom
jim:x:2002:
tom:x:2003:
从组中删除账户
[root@localhost ~]# groupdel dir2
[root@localhost ~]# tail -3 /etc/group
dir1:x:1009:
jim:x:2002:
tom:x:2003:
方法二:
直接去修改配置文件
/etc/group
标签:管理,user1,用户,gid,user,Linux,root,localhost
From: https://www.cnblogs.com/fenglei7093/p/18337395