首页 > 系统相关 >Linux---(2)---用户和组(用户)

Linux---(2)---用户和组(用户)

时间:2025-01-16 16:29:14浏览次数:3  
标签:tby u1 用户 --- 密码 Linux root id

用户

前言

本章介绍Linux中用户和组中的关于用户的知识,相对来说,自己在学习用户和组的时候还是相对简单的,但是后面的权限部分可能需要动脑一下,废话不多说,开始今天的用户相关知识。

用户

一、理解 Linux 多用户、多任务的特性

Linux是⼀个真实的、完整的多用户多任务操作系统。多用户多任务就是可以在系统上建立多个用户,而多个用户可以在同⼀时间内登录同⼀个系统执⾏各⾃不同的任务,⽽互不影响。例如:某台Linux服务器上有4个用户,分别是root、www、ftp。在同⼀时间内root用户可能在查看⽇志,管理、维护系统。www用户可能在修改自己的网页程序,因此可知,不同用户具有不同的权限,每个用户在权限允许的范围内完成不同的任务,Linux正是通过这种权限的划分与管理,实现了多用户多任务的运⾏机制。

二、用户分类

  • 超级用户(默认管理员)

    uid:0

    拥有对系统的最高管理权限,可以管理其他用户

  • 系统用户

    uid:1-999

    管理系统服务,不能登录系统

  • 普通用户

    uid:1000-60000

    普通权限,可以登陆系统

三、用户配置文件

用户账户信息文件
  • 地址:/etc/passwd
    在这里插入图片描述
root:x:0:0:root:/root:/bin/bash
#七个字段 ,以:隔开

[!IMPORTANT]

第一个字段:用户名

第二个字段:密码占位符

第三个字段:UID

第四个字段:GID

第五个字段:用户描述信息

第六个字段:用户家目录

第七个字段:是否可以登录shell(操作系统)

用户账户密码文件
  • 地址:/etc/shadow

在这里插入图片描述

lc160:P@ssw0rd123:20048:0:99999:7:::
1.账户名称
2.加密后的密码
3.最近改动密码的日期
4.密码最短有限期
5.密码最长有限期
6.密码过期预警天数
7.密码过期宽恕时间
8.账号失效日期
9.----------

四、添加用户

  • 命令:useradd

  • 选项:

    [!NOTE]

    -u 指定用户的uid

    -r 创建系统用户 ##在后面学到服务时会用到

    -d 指定用户的家目录

    -s 指定用户登录使用的默认shell的选项

    • useradd -s /bin/bash 可以登陆系统
    • useradd -s/sbin/nologin 不可以登陆系统

    -g 指定用户的初始组(主组 #只有一个)

    -G 指定用户的附加组(附属组 #可以有多个)

    -M 创建用户不需要创建家目录

    ​ 模板文件:/etc/skel #提供用户登录操作系统的环境,规定用户的权限

example1:创建用户u1并且指定uid为2000

[root@192 ~]# useradd -u 2000 u1
[root@192 ~]# id u1
用户id=2000(u1) 组id=2000(u1) 组=2000(u1)
# id命令可以查看用户信息

example2:创建u2用户并指定家目录为/opt

[root@192 ~]# useradd -d /opt/ u2
[root@192 ~]# su - u2
[u2@192 ~]$ pwd
/opt/
[u2@192 ~]$

五、给用户添加密码

  • 命令:passwd

  • 描述:更新用户的身份验证令牌

  • 语法:passwd [options] [参数]

    #创建用户TB 设置TB的密码
    [root@bogon ~]# useradd TB
    [root@bogon ~]# passwd TB
    更改用户 TB 的密码 。
    新的 密码:
    无效的密码: 密码少于 8 个字符
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。
    
  • 其它方式:echo "密码" | passwd --stdin 用户名

    [root@192 ~]# useradd -u 2000 u1
    [root@192 ~]# id u1
    用户id=2000(u1) 组id=2000(u1) 组=2000(u1)
    [root@192 ~]# echo "123456" | passwd --stdin u1
    更改用户 u1 的密码 。
    passwd:所有的身份验证令牌已经成功更新。
    

六、删除用户

  • 命令:userdel

  • 选项:-r

    [root@bogon ~]# userdel -r TB
    

    #不加选项,不删除关于这个用户的所有信息(自己可以做下实验)

七、修改用户

  • 命令:usermod

  • 语法:usermod [options] [参数]

  • 选项:

    [!NOTE]

    -u:修改用户的UID

    -g:修改用户的GID

    -G:修改用户的附加组

    -d:修改用户的家目录

    -s:修改用户默认的shell

    example:修改u1的uid为3000

     [root@192 ~]# usermod -u 3000 u1
     [root@192 ~]# id u1
     用户id=3000(u1) 组id=2000(u1) 组=2000(u1)
    

小实验:用VIM创建用户

1.创建用户

  • 命令:vim /etc/passwd

    [root@localhost ~]# vim /etc/passwd
    tby:x:1004:1004::/home/tby/:/bin/bash
    #在最后一行添加
    

2.切换用户

  • 命令:su - tby

    [root@localhost ~]# su - tby
    su: 警告:无法更改到 /home/tby/ 目录: 没有那个文件或目录
    /usr/bin/id: cannot find name for group ID 1004
    

3.创建家目录

  • 命令:mkdir /home/tby

  • 命令:cp -a /etc/skel/. /home/tby

    [root@localhost ~]# mkdir /home/tby
    [root@localhost ~]# cp -a /etc/skel/. /home/tby/
    ####/etc/skel		模板文件
    

4.查看用户

  • 命令:id

    [root@localhost ~]# id tby
    uid=1004(tby) gid=1004 组=1004
    [root@localhost ~]# id admin
    uid=1000(admin) gid=1000(admin) 组=1000(admin)
    

5.创建组

  • 命令:vim /etc/group

    tby:x:1004:
    

6.切换用户

[root@localhost ~]# su tby
[tby@bogon root]$
#可以正常登录

结语

最后给大家放几道题好了,大家可以把自己答案写在评论区,来检验自己的学习成果
1、创建u1用户,指定UID为1050,并为该用户设置密码
2、创建u2用户,设置其不能登录操作系统
3、创建u3用户,指定其家目录为/mnt/u3
4、将u1用户改名为s1
5、创建用户u1,指定其UID为2023
6、创建用户u2,不生成家目录

标签:tby,u1,用户,---,密码,Linux,root,id
From: https://blog.csdn.net/qq_45258963/article/details/145174846

相关文章

  • BEVFusion: Multi-Task Multi-Sensor Fusion with Unified Bird’s-Eye View Represen
    多传感器融合最近的方法为将相机特征与激光雷达点云进行融合。然而,相机到激光雷达的投影会丢失相机特征的语义密度,阻碍此类方法的效果,尤其是对于语义导向的任务(如3D场景分割)。BEVFusion,将多模态特征统一在共享的鸟瞰视图(BEV)表示空间中,同时保持了几何结构和语义密度,并......
  • Polygon-funky
    E.Polygon给定一个数n,生成一个n×n的一个全为0的初始矩阵,矩阵上方和左方均有一排炮台,矩阵的下边和右边是边界炮台可以发射子弹,子弹只能直线行走,且遇到边界后会停止,遇到一个停止的子弹也会停止,子弹停止后的坐标里面的值记为1在任何时候,都不会有超过一门大炮在射击输入......
  • K-D tree学习笔记
    翻译过来就是维护k维信息的树,是一种可以高效处理k维空间信息的数据结构。一般在算法竞赛中,k=2的情况较多。考虑对于一维数组,我们想要找到一个y,使得对于给定的x,有|x-y|最小。那么不妨考虑二叉搜索树(就是二分法),取数组的中位数为根,构造一棵树,使得每个点的左儿子小于它,右儿子大于它......
  • Java程序运行时动态生成日志文件-loj4j
    1.创建Appender;2.logger实例和appender的绑定和解绑3.logger实例使用privatestaticfinalLoggerLOGGER=LogManager.getLogger(DeviceManagerCuppsIOHandler.class);创建<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-a......
  • Linux驱动开发:处理空指针错误,ERR_PTR、IS_ERR、PTR_ERR用法
    免责声明:本文内容摘自《Linux设备驱动开发》一书,作者为JohnMadieu,译者为袁鹏飞、刘寿永,由人民邮电出版社出版。本文仅为分享知识和讨论之用,非商业用途。书籍版权归原作者及出版社所有。本人及本博客不对因使用或误用本文内容而产生的任何后果负责。请读者尊重版权,合理使用内容。......
  • Bootstrap-table 使用总结
    原文链接:https://www.cnblogs.com/laowangc/p/8875526.html一、什么是Bootstrap-table?在业务系统开发中,对表格记录的查询、分页、排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有......
  • 前端新手如何用vite构建小程序中使用的模块(以AES加密模块crypto-js为例)
    如果你只是想简单地把在vite项目中使用的模块引入到小程序中,不妨试试库模式。以crypto-js为例,你需要写两个JS文件:一个是构建脚本,类似于vite.config.js;//build.cjsconst{build}=require('vite'),path=require('path');build({publicDir:false,configFile:false......
  • 信号与系统(郑君里)第一章-绪论 1-2 课后习题解答
    题目详情(1-2分别判断下列各函数式属于何种信号,即是连续时间信号还是离散时间信号,若是离散时间信号是否为数字信号?其中各式中n为正整数)答案解析:(1)连续信号模拟信号(2)离散信号抽样信号(3)离散信号数字信号 该函数只取±1,所以为数字信号(4)离散信号抽样信号 该函数随着n的......
  • 信号与系统(郑君里)第一章-绪论 1-3 课后习题解答
    题目详情(分别求下列各周期信号的周期T。)答案解析:tips:本道题考察的是信号的周期性第(1)小题注意连续的找周期找出最小公倍数就可以了,不一定是要整数;第(2)小题注意指数是带有“j”的,如果没有“j”那就不是周期信号了;第(3)小题遇到平方形式第一时间想到用二倍角公式,可以使得形式......
  • SM9 - 密钥交换协议
    符号A,B:使用公钥密码系统的两个用户。\(cf\):椭圆曲线阶相对于\(N\)的余因子。\(cid\):用一个字节表示的曲线的标识符,其中\(\mbox{0x10}\)表示\(F_p\)(素数\(P>2^{191}\))上常曲线(即非超奇异曲线),\(\mbox{0x11}\)表示\(F_p\)表示超奇异曲线,\(\mbox{0x12}\)表示\(F_p\)上常曲线及其扭......