Linux 用户权限管理之用户与组管理

本文详细介绍了Linux用户和组的概念,强调了用户作为权限载体的重要性。文章讲解了Linux中用户ID的分类,以及如何通过用户和组来增强系统的安全性。此外,还探讨了用户与组的相关文件,如/etc/passwd、/etc/shadow和/etc/group,并阐述了用户管理命令,如useradd和usermod,以及创建用户时需要注意的细节。
摘要由CSDN通过智能技术生成

一、Linux 用户介绍

  1. 什么是用户

    1. 用户是操作系统提供的一种安全机制
    2. 用户是权限的化身
  2. 为何要有用户

    1. 划分权限,增强安全性
    2. 每启动一个进程都会与一个用户关联
      进程 -> 用户 -> 权限(作用在用户身上)
    3. 组的概念
      1. 主组:用户本身所在的部门
      2. 附加组:为用户添加的部门
      3. 用户与组的关系:
        一对一:一个用户可以属于一个组,用户默认就在自己的主组下
        一堆多:一个用户可以属于多个组,用户只有一个主组,但可以为用户添加多个附加组

    Linux 系统是根据uid区分用户
    0 -> 超级管理员
    1-200 -> 系统用户
    200-999 -> 系统用户
    1000+ -> 普通用户

二、用户与组相关文件

  • /etc/passwd 用户基本属性存放位置

    [root@localhost ~]# cat /etc/passwd
    root:X(小写):0:0:root:/root:/bin/bash

    用户名:口令:用户标识号:组标识号:注释性描述:主目录:命令解释器

    在这里插入图片描述
    ps:密码位:
    一些系统中,存放着加密后的用户口令字。虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。

  • /etc/shadow(影子文件) 用户密码信息存放位置

    [root@localhost ~]# cat /etc/shadow
    root:
    6 6 6zriUs7tq$MsdY4XTnKZDwaq3hbuZQaq54h0WIyKj66Jl
    hWiJJ6pTed.U1chyQTlRQt/rjsizk/r.UnnH/haX5HY/MI9wNG1:18554:0:99999:7:::
    bin::17834:0:99999:7:::
    daemon:
    :17834:0:99999:7:::
    省略输入…

    在这里插入图片描述

  • /etc/group 组文件

    在这里插入图片描述

  • /etc/gshadow:组密码文件

    在这里插入图片描述
    /etc/skel/ 用户的模板
    /home/xxx 用户目录
    /var/spool/mail/xxx 用户邮箱文件

三、用户管理命令

useradd 添加用户
userdel 删除用户
usermod 修改用户信息
  1. 创建用户
    [root@localhost ~]# useradd demo

  2. 查看用户

     [root@localhost ~]# id root # 查看用户信息
     uid=0(root) gid=0(root) 组=0(root)
     
     [root@localhost ~]# who	# 查看当前登录的用户信息
     test     tty1         xxxx
     root     pts/0       xxxx
    
     
     [root@localhost ~]# whoami	# 查看当前登录的用户
     root
    

    注意:当创建一个用户时,如果没有指定用户的主组,将会创建一个同名的组作为用户的组组。

  3. 删除用户

     [root@localhost ~]# userdel test	删除用户test,但不删除用户家目录和mail
     [root@localhost ~]# userdel -r test	携带-r	底删除用户及残留信息
    
  4. useradd命令详解:创建用户时同时指定选项

     怎样在Linux系统中添加一个新的用户账户
     1) 掌握useradd命令的功能:新增一个用户
     2)了解useradd命令的常用选项:
     3)-u:指定用户的UID
     4)-g:指定用户所属的主组
     	-G:指定用户所属的附加组
     5)-d:指定用户的家目录
     6)-c:指定用户的备注信息
     7)-s:指定用户所用的shell
     8)-e:修改过期时间
     9)-M:不创建家目录
     10)-r:创建系统用户,uid处于系统用户范围,默认就没有家目录
    
  5. usermod命令

     同useradd参数基一致,只不过useradd是添加,usermod是修改
     usermod  -u 2020 demo # 将demo用户uid改为2020
     
     -u	指定要修改用户的UID
     -g 指定要修改用户的基本组
     -a 将用户添加到补充组。仅与-G选项一起使用
     -G 指定要修改用户附加组,使用逗号隔开多个附加组,覆盖原有的附加组
     -d 指定要修改用户家目录
     -c 指定要修改用户的注释信息
     -s 指定要修改用户的bash shell
     -l 指定要修改用户的登录名
     -L 指定要锁定的用户
     -U 指定要解锁的用户
    
  6. 设置与修改密码

     passwd 用户名	root用户可以给自己及其他用户设置密码,普通用户只能设定自己的密码
     echo '密码' || passwd --stdin 用户名 	非交互式
    

四、组管理

创建组 groupadd		组名
-g 设置组id

删除组 groupdel 组名

删除组的前提是这个组不属于任何用户的主组

设置组密码
gpasswd 组名  

把用户添加到组里
gpasswd -a 用户 组名

把用户从组里删除
gpasswd -d 用户 组名

五、手动创建用户

下面文件的作用的作用 在上面有提到过
  • 用户信息准备

    1. /etc/passwd

       [root@localhost ~]# vim /etc/passwd
       tom:(x忽略括号):1073:1074:tom:/home/tom:/bin/bash	# 按G 移动到末行添加
      
    2. /etc/shadow

       tom::18554:0:99999:7:::
      
    3. /etc/group

       tom:x:1074
      
    4. /etc/gshadow(group 的加密)

       [root@localhost ~]# vim /etc/gshadow
       [root@localhost ~]# tail -1 /etc/gshadow
       tom:!::
      
  • 准备家目录

      Mkdir /home/tom/ # 创建用户文件夹
      chown tom.tom /home/tom/	设置用户访问权限为tom
      chmod 700 /home/tom/	设置操作权限
      cp -ra /etc/skel/.[!.]* /home/tom/ 拷贝家目录模板
      chown tom.tom /home/tom/.[!.]*	家目录设置权限
    
  • 准备邮箱

      Touch /var/spool/mail/tom	创建tom用户邮件
      chown tom.mail /var/spool/mail/tom	用户权限设置为tom
      chmod 660 /var/spool/mail/tom	操作权限设置
    
  • 使用账号登录:

      su tom 切换成功则为创建成功
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值