linux基本功系列之useradd命令实战

news2024/11/29 11:39:50

在这里插入图片描述

文章目录

  • 一. useradd 命令介绍
  • 二. 语法格式及常用选项
  • 三. 参考案例
    • 3.1 不加任何参数创建用户
    • 3.2 创建不能登录系统且没有家目录的用户
    • 3.3 创建一个用户,ID为2333
    • 3.4 创建一个用户并指定其附加组
    • 3.5 创建用户并账户过期时间
    • 3.6 与useradd相关的目录文件
  • 总结

前言🚀🚀🚀
想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。
💓 知识最重要的是记忆
💓 入门须知: 想要人生从容,必须全力以赴,努力才是你最终的入场券🚀🚀🚀
💕 最后: 努力成长自己,愿我们都能在看不到的地方闪闪发光 ,一起加油进步🍺🍺🍺


一. useradd 命令介绍

王姨又来我家,张罗着要给我介绍对象。 我说自己还小,不想去相亲,那都不行,差点动手打我。
没法子,只能去相亲看看。 王姨说可以先处着,以后慢慢认识。

我就问了他一个问题: linux中useradd的参数有几个,他支支吾吾答不上来,我瞬间有了分手(还没牵手就分手)的理由: 很明显,我们合不来,因为词汇量不合适。

useradd命令来自于英文词组“User add”的全拼,其功能是用于创建并设置用户信息。
使用useradd命令可以自动的完成创建用户的信息、基本组、家目录等工作,并在创建的过程中对用户初始信息进行定制。

二. 语法格式及常用选项

我们可以用–help查看命令的参数及语法格式:如下:

[root@mufenggrow ~]# useradd --help
用法:useradd [选项] 登录
      useradd -D
      useradd -D [选项]

选项:
  -b, --base-dir BASE_DIR	    新账户的主目录的基目录
  -c, --comment COMMENT         新账户的 GECOS 字段
  -d, --home-dir HOME_DIR       新账户的主目录
  -D, --defaults	        	显示或更改默认的 useradd 配置
 -e, --expiredate EXPIRE_DATE   新账户的过期日期
  -f, --inactive INACTIVE       新账户的密码不活动期
  -g, --gid GROUP		        新账户主组的名称或 ID
  -G, --groups GROUPS	        新账户的附加组列表
  -h, --help                    显示此帮助信息并推出
  -k, --skel SKEL_DIR	        使用此目录作为骨架目录
  -K, --key KEY=VALUE           不使用 /etc/login.defs 中的默认值
  -l, --no-log-init	            不要将此用户添加到最近登录和登录失败数据库
  -m, --create-home         	创建用户的主目录
  -M, --no-create-home		    不创建用户的主目录
  -N, --no-user-group	        不创建同名的组
  -o, --non-unique		        允许使用重复的 UID 创建用户
  -p, --password PASSWORD	 	加密后的新账户密码
  -r, --system                  创建一个系统账户
  -R, --root CHROOT_DIR         chroot 到的目录
  -s, --shell SHELL		        新账户的登录 shell
  -u, --uid UID			        新账户的用户 ID
  -U, --user-group		        创建与用户同名的组
  -Z, --selinux-user SEUSER		为 SELinux 用户映射使用指定 SEUSER

可以看到useradd的基本语法是:
useradd username
或者
useradd -d -u “UID” -g “初始组” -G “附加组” -s "登陆的shell” 用户

在创建的时候,选择自己需要的参数进行添加。

从useradd的帮助文档中,我们摘选中比较常用的选项:

在这里插入图片描述
其实默认情况下不加任何参数,也可以直接创建用户,同一个用户名只能创建一个用户,每个用户名不能重复。

三. 参考案例

3.1 不加任何参数创建用户

要创建一个用户名为 user1的用户:

[root@mufenggrow ~]# useradd user1
[root@mufenggrow ~]# id user1
uid=1000(user1) gid=1000(user1)=1000(user1)

我们来使用find查询下,创建一个用户到底创建了哪些目录和文件:

[root@mufenggrow ~]# find / -name user1
/var/spool/mail/user1
/home/user1

可以看到创建一个文件,是在/home目录下创建了一个目录user,作为家目录。
在/var/spool/mail下创建了一个user1作为邮件目录

除此之外在 /etc/passwd 和/etc/shadow中插入了两条信息:

[root@mufenggrow ~]# tail -n 1 /etc/passwd /etc/shadow
==> /etc/passwd <==
user1:x:1000:1000::/home/user1:/bin/bash

==> /etc/shadow <==
user1:!!:19373:0:99999:7:::
[root@mufenggrow ~]# 

所以 每次创建用户其实就是做了这四步操作。

3.2 创建不能登录系统且没有家目录的用户

-M 不建立用户的家目录
-s 指定用户的shell

linux系统中有多种shell,其中/bin/bash是默认的,使用它可以登录系统
而 倘若使用/sbin/nologin 是不能登录系统的。

我们来看下案例:

[root@mufenggrow ~]# useradd -M -s /sbin/nologin user2
[root@mufenggrow ~]# su - user2
su: 警告:无法更改到 /home/user2 目录: 没有那个文件或目录
This account is currently not available.

这里的: This account is currently not available. 表示此账户当前不可用

英语单词注释:

account	美[əˈkaʊnt]  账户,账目

currently 美[ˈkɜːrəntli] 当下,目前,现时
available 美[əˈveɪləbl] 可获得的,可以找到的,有空的

也就是我们刚刚创建的用户是不允许登录系统的,而且没有家目录。

3.3 创建一个用户,ID为2333

需要指定ID的时候,用到的就是-u参数,此时的u代表的user。

[root@mufenggrow ~]# useradd -u 2333 user3
[root@mufenggrow ~]# id user3
uid=2333(user3) gid=2333(user3)=2333(user3)

ID命令是用来查看当前用户的UID,GID和组的,判断一个用户是否存在,就可以用id命令,若不存在,echo $? 执行结果不为0

[root@mufenggrow ~]# id zhangsan
id: zhangsan: no such user
[root@mufenggrow ~]# echo $?
1

3.4 创建一个用户并指定其附加组

创建一个用户,他的所有者默认就是所有组的组名,但有时候一个用户可能在多个组里面,所以我们可以使用-G来指定附加组。

这就类似于一个财务,她的默认组是财务组,但有时候她也兼职前台,所以前台是她的附加组,一个用户可以又多个附加组。

[root@mufenggrow ~]# useradd -G root user4
[root@mufenggrow ~]# id user4
uid=2334(user4) gid=2334(user4)=2334(user4),0(root)
[root@mufenggrow ~]# useradd -G root,user1,user2 zhangsan
[root@mufenggrow ~]# id zhangsan
uid=2335(zhangsan) gid=2335(zhangsan)=2335(zhangsan),0(root),1000(user1),1001(user2)
[root@mufenggrow ~]# 

当我们需要指定多个用户组的时候,需要用“逗号”隔开。

3.5 创建用户并账户过期时间

-e参数是用来创建用户过期时间的,如果想查看用户的信息,可以使用 chage -l 参数。

[root@mufenggrow ~]# useradd -e "2023/02/14" mufenggorw

我们用chage -l 参数查看:

[root@mufenggrow ~]# chage -l mufenggorw
最近一次密码修改时间				:1月 16, 2023
密码过期时间					    :从不
密码失效时间					    :从不
帐户过期时间					  	:2月 14, 2023
两次改变密码之间相距的最小天数		:0
两次改变密码之间相距的最大天数		:99999
在密码过期之前警告的天数	:7

从上面可以看到过期时间为: 2023年1月16日,与我们设置的日期一致。

3.6 与useradd相关的目录文件

  • /etc/passwd,用户账号信息。
  • /etc/shadow,用户密码加密。
  • /etc/group,群组资讯。
  • /etc/default/useradd,定义资讯。
  • /etc/login.defs,系统广义设定。
  • /etc/skel,内含定义档的目录。

关于这些目录的使用方法,会在Linux运维系列操作系统实战里面讲解,可以关注【运维系列操作系统实战】专栏,后续我会持续更新。

总结

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

请添加图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/166171.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

InfluxDB的查询优化

首先&#xff0c;在学习influxDB的查询优化之前&#xff0c;我们要先学习下InfluxDB的解释器profiler&#xff08;类似于mysql的Explain语句&#xff0c;不一样的是&#xff0c;sql&#xff0c;hivesql是提前查看执行计划等&#xff0c;Influx是在当前查询的最后一页两张表&…

力扣(LeetCode)382. 链表随机节点(2023.01.15)

给你一个单链表&#xff0c;随机选择链表的一个节点&#xff0c;并返回相应的节点值。每个节点 被选中的概率一样 。 实现 Solution 类&#xff1a; Solution(ListNode head) 使用整数数组初始化对象。 int getRandom() 从链表中随机选择一个节点并返回该节点的值。链表中所有…

WhatsApp居然有3个版本?深度详解区别!外贸圈获客神器用起来!

近两年&#xff0c;外贸圈用WhatsApp来营销获客&#xff0c;越来越火。不少走在前头的外贸人&#xff0c;已经尝到了甜头。但也有不少后来者&#xff0c;站在门外张望的时候&#xff0c;整个人都是蒙圈的。❓听说动不动要整几十个账号&#xff0c;还要花老长时间养号&#xff1…

《Linux Shell脚本攻略》学习笔记-第六章

6.1 简介 你开发应用程序的时间越长&#xff0c;就越能体会到有一个能够跟踪程序修订历史的软件是多重要。 大多数Linux发行版中都包含了Git。如果你的系统中还没有安装&#xff0c;可以通过yum或者apt-get获取。 6.2 创建新的git仓库 git中的所有项目都需要有一个用于保存项目…

MyBatis-Plus字段加密解密

项目创建POM依赖 <dependency><!--MyBatis-Plus 企业级模块--><groupId>com.baomidou</groupId><artifactId>mybatis-mate-starter</artifactId><version>1.2.8</version> </dependency> <!-- https://mvnrepository…

规划之路:SLAM学习经验分享

针对想学SLAM的提问&#xff0c;我觉得我还是有一定的发言权。作为一个刚入坑SLAM一年多的初学者&#xff0c;首先想说的就是这个研究方向比较广&#xff0c;大方向按搭载传感器分为激光SLAM和视觉SLAM两种&#xff0c;激光SLAM搭载激光雷达&#xff0c;视觉SLAM搭载单目、双目…

[NSSRound#6 Team]Web学习

[NSSRound#6 Team]Web学习 文章目录[NSSRound#6 Team]Web学习前言一、[NSSRound#6 Team]check(V1)二、[NSSRound#6 Team]check(Revenge)总结前言 日常做点题娱乐下&#xff0c;刷到了[NSSRound#6 Team]中是三道web题&#xff0c;学习到了不少&#xff0c;记录下知识点。 提示&…

C语言综合练习6:制作贪吃蛇

1 初始化界面 因为还没学QT&#xff0c;我们就使用终端界面替代。 这里我们假设界面中没有障碍物&#xff0c;我们只需要设定界面的高宽就行&#xff0c;这是蛇的移动范围&#xff0c;我们可以写两个宏来规定界面的高宽 新建一个snake.c的文件 #define _CRT_SECURE_NO_WARNIN…

快出数量级的性能是怎样炼成的

前言&#xff1a;今天学长跟大家讲讲《快出数量级的性能是怎样炼成的》&#xff0c;废话不多说&#xff0c;直接上干货~我们之前做过一些性能优化的案例&#xff0c;不算很多&#xff0c;还没有失手过。少则提速数倍&#xff0c;多则数十倍&#xff0c;极端情况还有提速上千倍的…

关于IDEA配置本地tomcat部署项目找不到项目工件的问题解答

文章目录一 原因分析二 解决方案三 具体的操作方法3.1 打开项目结构找到工件3.2 添加具体的工件内容3.3 配置本地tomcat一 原因分析 可能是之前的项目再次打开后&#xff0c;没有及时配置项目结构中的工件信息&#xff0c;导致配置tomcat中看不到工件的信息 二 解决方案 解决…

react组件优化,当父组件数据变化与子组件无关时,控制子组件不重新渲染

首先 我们来建立一个场景 我们创建一个react项目 然后创建一个父组件 这里我要叫 record.jsx 参考代码如下 import React from "react"; import Subset from "./subset";export default class record extends React.Component{constructor(props){super(…

工作的同时,我也在这里做副业

文章目录一、什么是独自开&#xff1f;二、独自开能给我们带来什么利益&#xff1f;三、如何使用独自开&#xff1f;3.1、用户任务报价步骤13.2、用户任务报价步骤2四、未来的愿景一、什么是独自开&#xff1f; 独自开&#xff0c;全称独自开发一套系统&#xff0c;是基于商品…

CTP开发(2)行情模块的开发

我在做CTP开发之前&#xff0c;也参考了不少其他的资料&#xff0c;发现他们都是把行情和交易做在同一个工程里的。我呢之前也做过期货相关的交易平台&#xff0c;感觉这种把行情和交易做在一起的方法缺乏可扩展性。比如我开了多个CTP账户&#xff0c;要同时交易&#xff0c;这…

springMVC的学习拦截器之验证用户登录案例

文章目录实现思路关于环境和配置文件pomspring的配置文件关于idea的通病/常见500错误的避坑实现步骤编写登陆页面编写Controller处理请求编写登录成功的页面编写登录拦截器实现思路 有一个登录页面&#xff0c;需要写一个controller访问页面登陆页面提供填写用户名和密码的表单…

UE4c++日记1(允许 创类、蓝图读写/调用/只读、分类、输出日志打印语句)

目录 1允许创建基于xx的蓝图类 2允许蓝图读写/允许蓝图调用/只读 读写调用 只读 3为变量/函数分类 4输出日志打印一段话 1.先创建一个蓝图类 2.构建对象 3.写提示代码&#xff0c;生成解决方案 4.运行&#xff0c;打开“输出日志” 5.总结 创类-实例化对象&#xff08;构建…

2022年个人年终总结(一)

2022年个人年终总结&#xff08;一&#xff09;考研想法的萌生回顾过去一年-考研心路历程基础阶段&#xff08;1-6月&#xff09;强化阶段&#xff08;7-9月&#xff09;冲刺阶段&#xff08;10-12月&#xff09;感受总结特别感谢2022年是做梦的一年&#xff0c;花了一年的时间…

Zookeeper相关操作

Zookeeper概念 •Zookeeper 是 Apache Hadoop 项目下的一个子项目&#xff0c;是一个树形目录服务。 •Zookeeper 翻译过来就是 动物园管理员&#xff0c;他是用来管 Hadoop&#xff08;大象&#xff09;、Hive(蜜蜂)、Pig(小 猪)的管理员。简称zk •Zookeeper 是一个分布式的…

【C++】非递归实现二叉树的前中后序遍历

​&#x1f320; 作者&#xff1a;阿亮joy. &#x1f386;专栏&#xff1a;《吃透西嘎嘎》 &#x1f387; 座右铭&#xff1a;每个优秀的人都有一段沉默的时光&#xff0c;那段时光是付出了很多努力却得不到结果的日子&#xff0c;我们把它叫做扎根 目录&#x1f449;二叉树的…

如何运营个人技术博客

前言 本篇和大家聊聊如何运营个人技术博客&#xff0c;定位下做技术写作的目的&#xff0c;有哪些交流平台和输出方式&#xff0c;如何把控内容质量&#xff0c;整理了一些写作技巧和自己常用的写作工具&#xff0c;最后分享下如何在有限的时间里合理安排保证写作与工作的平衡。…

第九届蓝桥杯省赛 C++ A组 - 付账问题

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 &#x1f4da;专栏地址&#xff1a;蓝桥杯题解集合 &#x1f4dd;原题地址&#xff1a;付账问题 &#x1f4e3;专栏定位&#xff1a;为想考甲级PAT的小伙伴整理常考算法题解&#xff0c;祝大家…