Linux命令进阶·如何切换root以及回退、sudo命令、用户/用户组管理,以及解决创建用户不显示问题和Ubuntu不显示用户名只显示“$“符号问题

news2024/12/26 19:50:02

目录

1.  root用户(超级管理员)

1.1  用于账户切换的系统命令——su

1.2  退回上一个用户命令——exit

1.3  普通命令临时授权root身份执行——sudo

1.3.1  为普通用户配置sudo认证

2.  用户/用户组管理

2.1  用户组管理

2.2  用户管理

2.2.1  创建用户:useradd [-g -d] 用户名

2.2.2  删除用户:userdel [-r] 用户名

2.2.3  查看用户所属组:id [用户名]

2.2.4  修改用户所属组:usermod -aG 用户组 用户名

3.  用户管理出现的相关问题解决

3.1  创建用户不显示问题

3.2  su: 警告:无法更改到 /home/test 目录: 没有那个文件或目录

3.3  使用 -m 后删除不掉创建的目录

3.4  Ubuntu不显示用户名,只显示"$“符号,回退键会变为”^H"

3.5  userdel: user dky1 is currently used by process 61754


1.  root用户(超级管理员)

        无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理。在Linux系统中,拥有最大权限的账户名为:root(超级管理员),而我们平常使用的账户是普通的用户。

        root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。

  • 使用普通用户在根目录下创建文件夹:

  • 切换到root用户后,继续尝试:

普通用户的权限,一般在其home目录内不受限的

一旦出了home目录,大多数地方,普通用户仅有只读和执行权限,无修改权限

1.1  用于账户切换的系统命令——su

功能:用于账户切换的系统

语法:su [-] [用户名]

  • -: 符号是可选的,表示是否在切换用户后加载环境变量,建议带上
  • 用户名:表示切换的用户,也可以省略,省略表示切换到root

        省略用户名:

1.2  退回上一个用户命令——exit

  • 切换用户后,可以通过exit命令退回上一个用户

  • 也可以使用快捷键:Ctrl+d

  • 使用普通用户,切换到其他用户需要输入密码,如切换到root用户
  • 使用root用户切换到其他用户,无需密码,可以直接切换

1.3  普通命令临时授权root身份执行——sudo

        我们可以通过su命令切换到root得到最大权限,但是不建议长期使用root用户,避免带来系统损伤。

功能:为普通命令授权,临时root身份执行

语法:sudo 其他命令

        在其他命令之前,带上sudo,即可为这一条命令临时赋予root授权,但并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证。

1.3.1  为普通用户配置sudo认证

        正常情况下,我们使用sudo命令,需要输入密码验证才能正常使用:

        如何跳过密码验证这一步呢?切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers,在文件最后添加:

用户名 ALL=(ALL)        NOPASSWD:ALL

        其中最后NOPASSWD:ALL表示使用sudo命令,不需要输入密码,然后通过低线命令模式输入:wq保存:

        切换回普通用户,执行命令,可以看到不需要再输入密码验证:

2.  用户/用户组管理

        Linux系统中可以:配置多个用户、配置多个用户组、用户可以加入多个用户组中。

        Linux中关于权限的管控级别有2个级别,分别是:

  • 针对用户的权限控制
  • 针对用户组的权限控制

2.1  用户组管理

 以下命令需要root用户执行:

  • 创建用户组:groupadd 用户组名
  • 删除用户组:groupdel 用户组名

2.2  用户管理

以下命令需要root用户执行:

2.2.1  创建用户:useradd [-g -d] 用户名

  • -g:指定用户的组。不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
  • -d:指定用户HOME。不指定,HOME目录默认在:/home/用户名

        首先,我们现在 /home 下创建一个目录 myuser:

        创建一个用户组 mydky:

        创建用户,并通过 su 命令切换到用户,通过 pwd 查看路径:

        这里出现一个问题Ubuntu不显示用户名,只显示"$“符号,下面3.4小节说解决方法。

完整:

2.2.2  删除用户:userdel [-r] 用户名

  • -r:删除用户的HOME目录。不使用-r,删除用户时,HOME目录保留

        上面是直接删除dky1,我们可以看见myuser还被保留。

        当我们使用 -r 时,首先我们通过useradd - m 创建一个qwer用户:

         然后使用userdel -r 我们会发现,创建的用户qwer被删除了:

2.2.3  查看用户所属组:id [用户名]

  • 用户名:被查看的用户,如果不提供则查看自身

不提供用户名,查看自身:

使用id 用户名:

2.2.4  修改用户所属组:usermod -aG 用户组 用户名

  • 将指定用户加入指定用户组

        如下图蓝色部分表示,将用户plm,放到mydky用户组内,可以通过id plm查看其所属的组,如黄色部分:

3.  用户管理出现的相关问题解决

3.1  创建用户不显示问题

        需要注意的是,在ubuntu系统中,使用useradd会出现以下这种情况:

        我们明明已经创建了用户,并且显示已存在,但是在home目录下是没有显示的,解决方法使用useradd -m来进行实现:

        网上找了一下原因,说是因为在/etc/login.defs中的CREATE_HOME被设置为no了。(这里最好还是不要去更改文件了)

        通过man useradd文档可以看见-m可以再系统不允许创建主用户目录的情况下创建主用户目录,演示如上图。

3.2  su: 警告:无法更改到 /home/test 目录: 没有那个文件或目录

        这里算是上个问题的延伸,当我们使用useradd创建用户时,想要通过:

su -

        切换用户会发现: 

        那是因为我们 /home下根本就不显示 test:

        解决方法就是加 -m

3.3  使用 -m 后删除不掉创建的目录

        在使用 -m 解决创建用户不显示的问题后,会发现当你想删除创建的用户时,会发现无法删除了,虽然使用userdel提示test不存在,但是查找会发现其还在home目录下:

        这里我们可以使用 rm -rf进行删除:

3.4  Ubuntu不显示用户名,只显示"$“符号,回退键会变为”^H"

        这里正常情况下应该是:

        但此时确只有$号:

        解决方法切换到root账户,输入命令:

vim /etc/passwd

        对相关文件进行修改,不过修改前,我们需要先进行一下文件备份,以免出错:

方法一:复制文件

        使用 cp 命令复制文件是备份文件的简单方法。例如,您可以使用以下命令将 /etc/passwd 文件复制到当前目录中:

cp /etc/passwd passwd.bak

  • /etc/passwd 文件:这个文件包含系统中所有用户的基本信息,如用户名、密码(加密形式)、UID、GID、用户信息和默认的用户目录等。它是一个关键的系统文件
  • passwd.bak:这是目标文件的名称,它是 passwd 文件的备份副本,通常会存放在当前工作目录中。

 使用如下命令检查是否备份成功:

cat /etc/passwd
 
// 该命令将显示 passwd.bak 文件的内容,其中包含与 /etc/passwd 相同的用户帐户信息。

方法二:创建归档文件

        使用 tar 命令创建归档文件是备份多个文件或整个目录的一种简单方法。例如,您可以使用以下命令将 /etc 目录打包成一个压缩文件:

tar -czf etc_backup.tar.gz /etc

方法三:使用版本控制系统

        使用版本控制系统(如 Git 或 SVN)来管理文件更改历史记录并创建备份是一种良好的做法。这样可以轻松地跟踪文件更改,并且在需要恢复之前的版本时更加方便。


        此时我们可以使用:

vim /etc/passwd

        这里需要安装好vim,否则会出现:

        可以通过如下命令进行安装:

apt install vim

        此时在输入就可以进入:

        找到最下方如上图箭头指向,进入插入模式进行修改,修改完如下:

        进入底层命令模式保存退出:

如果对于vim相关命令不熟悉可以看:

Linux命令进阶·vi\vim编辑器详细命令介绍_linux实验6:vi 编辑器进阶-CSDN博客

        这样在通过su命令进入发现问题解决了:

3.5  userdel: user dky1 is currently used by process 61754

        出现上述情况的根本原因在于切换回 root 用户之后,dky1用户还被某个进程占用。

        解决方法,再返回前使用:

ctrl+d

        把dky1的终端关掉就行了: 

        如果已经返回直接把终端关掉重开就行了。

Linux命令进阶·vi\vim编辑器详细命令介绍_linux实验6:vi 编辑器进阶-CSDN博客

Linux常用命令详细解析(含完整命令演示过程)_linux常用命令演示-CSDN博客

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

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

相关文章

网络安全-AAA介绍与配置

前言 AAA是Authentication(认证)、Authorization(授权)和Accounting(计费)的简称,它提供了认证、授权、计费三种安全功能。AAA可以通过多种协议来实现,目前华为设备支持基于RADIUS&a…

[ACTF2020 新生赛]BackupFile--详细解析

信息搜集 让我们寻找源文件,目录扫描: 找到了/index.php.bak文件,也就是index.php的备份文件。 后缀名是.bak的文件是备份文件,是文件格式的扩展名。 我们访问这个路径,就会直接下载该备份文件。 我们把.bak后缀删掉…

软考高项经验分享:我的备考之路与实战心得

软考,尤其是信息系统项目管理师(高项)考试,对于众多追求职业提升与专业认可的人士来说,是一场充满挑战与机遇的征程。我在当年参加软考高项的经历,可谓是一波三折,其中既有成功的喜悦&#xff0…

Kubernetes常见问题解答

云原生学习路线导航页(持续更新中) 快捷链接 Kubernetes架构原则和对象设计 本文对Kubernetes学习中常见的一些问题,进行解答 1.什么时候使用公有云,什么时候使用自建k8s 看公司规模,规模小使用公有云,规…

基于C#+SQLite开发数据库应用的示例

SQLite数据库,小巧但功能强大;并且是基于文件型的数据库,驱动库就是一个dll文件,有些开发工具 甚至不需要带这个dll,比如用Delphi开发,用一些三方组件;数据库也是一个文件,虽然是个文…

C++高阶算法[汇总]

(一)高精度算法概述 高精度算法是指能够处理超出常规数据类型表示范围的数值的算法。在 C 中,标准数据类型通常有固定的位数和精度限制,而高精度算法可以解决大数运算、金融计算和科学计算等领域的问题。 (二&#x…

JS API事件监听(绑定)

事件监听 语法 元素对象.addEventListener(事件监听,要执行的函数) 事件监听三要素 事件源:那个dom元素被事件触发了,要获取dom元素 事件类型:用说明方式触发,比如鼠标单击click、鼠标经过mouseover等 事件调用的函数&#x…

【C语言】二叉树(BinaryTree)的创建、3种递归遍历、3种非递归遍历、结点度的实现

代码主要实现了以下功能: 二叉树相关数据结构定义 定义了二叉树节点结构体 BiTNode,包含节点数据值(字符类型)以及指向左右子树的指针。 定义了顺序栈结构体 SqStack,用于存储二叉树节点指针,实现非递归遍历…

Three.js 和其他 WebGL 库 对比

在WebGL开发中,Three.js是一个非常流行的库,它简化了3D图形的创建和渲染过程。然而,市场上还有许多其他的WebGL库,如 Babylon.js、PlayCanvas、PIXI.js 和 Cesium,它们也有各自的特点和优势。本文将对Three.js 与这些常…

[pdf,epub]228页《分析模式》漫谈合集01-45提供下载

《分析模式》漫谈合集01-45的pdf、epub文件提供下载。已上传至本号的CSDN资源。 如果CSDN资源下载有问题,可到umlchina.com/url/ap.html。 已排版成适合手机阅读,pdf的排版更好一些。 ★UMLChina为什么叒要翻译《分析模式》? ★[缝合故事]…

CAD深度清理工具-AVappsDrawingPurge9.0.0(2024.8.27版本) 支持版本CAD2022-2025-供大家学习研究参考

图形文件DWG体积很大:通常没有明显的数据。同时,还其他症状包括: (1)无法复制和粘贴图元。 (2)悬挂较长时间选择文本与 “特性”选项板上打开。 (3)图形文件需要很长时间…

kafka数据在服务端时怎么写入的

学习背景 接着上篇,我们来聊聊kafka数据在服务端怎么写入的 服务端写入 在介绍服务端的写流程之前,我们先要理解服务端的几个角色之间的关系。 假设我们有一个由3个broker组成的kafka集群,我们在这个集群上创建一个topic叫做shitu-topic&…

Rook入门:打造云原生Ceph存储的全面学习路径(上)

文章目录 一.Rook简介二.Rook与Ceph架构2.1 Rook结构体系2.2 Rook包含组件2.3 Rook与kubernetes结合的架构图如下2.4 ceph特点2.5 ceph架构2.6 ceph组件 三.Rook部署Ceph集群3.1 部署条件3.2 获取rook最新版本3.3 rook资源文件目录结构3.4 部署Rook/CRD/Ceph集群3.5 查看rook部…

[STM32] ADC 模数转换器 (十)

文章目录 1.ADC概述1.1 转换模式(规则组)1.2 数据对齐1.3 转换时间1.4 校准 2.代码步骤 STM32F103C8T6的12位逐次逼近型ADC的工作原理,包括转换模式、数据对齐、转换时间、校准以及程序配置流程,同时涵盖了关键的库函数和中断管理…

Web3.0安全开发实践:代理合约最佳实践总结

代理模式使智能合约能够升级其逻辑,同时维持其链上地址和状态值。对代理合约的调用会通过delegateCall的方式执行来自逻辑合约的代码,以修改代理合约的状态。 本文将为大家概述代理合约的类型、相关的安全事件和建议,以及使用代理合约的最佳…

第29天 MCU入门

目录 MCU介绍 MCU的组成与作用 电子产品项目开发流程 硬件开发流程 常用元器件初步了解 硬件原理图与PCB板 常见电源符号和名称 电阻 电阻的分类 贴片电阻的封装说明: 色环电阻的计算 贴片电阻阻值计算 上拉电阻与下拉电阻 电容 电容的读数 二极管 LED 灯电路 钳位作…

【人工智能基础05】决策树模型

文章目录 一. 基础内容1. 决策树基本原理1.1. 定义1.2. 表示成条件概率 2. 决策树的训练算法2.1. 划分选择的算法信息增益(ID3 算法)信息增益比(C4.5 算法)基尼指数(CART 算法)举例说明:计算各个…

数据结构与算法(排序算法)

我本将心向明月,奈何明月照沟渠。 排序的概念 1. 排序是指将一组数据,按照特定的顺序进行排列的过程。 2. 这个过程通常是为了使数据更加有序,从而更容易进行搜索、比较或其他操作。 常见的排序算法 插入排序 1. 把待排序的记录&#xff0c…

思科实现网络地址转换(NAT)和访问控制列表(ACL)和动态路由配置并且区分静态路由和动态路由配置。

实验拓扑(分为静态路由和动态路由两种) 静态路由互通 动态路由互通 实验背景 这个是想实现外网与内网的连接跟网络的探讨,最终实现互通以及使用并且在网络地址转换后能使用网络然后再这个基础上再配置访问控制列表和网络地址转换的的学习过程。 实验需了解的知识…

开发一套ERP 第八弹 RUst 插入数据

更全面的报错,方便检查错误在哪里,现代高级语言越来越智能 还是得看下原文档怎么操作的 src 目录为crate 的根目录 想在crate 中模块相互引入需要在 main 中声明,各个模块,然后才能在各个模块中相互引入和使用 原始工程引入,避免直接使用 lib.rs 回合cargo 中的一些 工程管理出…