fenglei7093

博客园 首页 新随笔 联系 订阅 管理

用户管理

内容: 用户管理、用户组管理、密码管理


用户类型

超级管理用户:又称为系统管理员,拥有所有权限,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文件 

此文件里面除了密码字段能删除不能直接修改之外,其他字段全部都能直接修改 
[root@qfedu.com ~]# 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

posted on 2024-08-01 20:06  海石三  阅读(18)  评论(0编辑  收藏  举报