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

目录

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博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PDF版地形图矢量出现的问题

项目描述:已建风电场道路测绘项目,收集到的数据为PDF版本的地形图,图上标注了项目竣工时期的现状,之后项目对施工区域进行了复垦恢复地貌,现阶段需要准确的知道实际复垦修复之后的道路及其它临时用地的面积 解决方法&…

群论入门笔记

群的基本定义 群由一组元素 G 和一个运算(常用符号包括 ,x , 或 ∗)组成。 封闭性 对于任意两个元素 x,y∈G,运算 x * y 的结果仍然属于集合 G,即: ∀x,y∈G,x∗y∈G. 结合律 对于任意 a,b,c∈G&…

LabVIEW内燃机气道试验台测控系统

基于LabVIEW软件开发的内燃机气道试验台测控系统主要应用于内燃机气道的性能测试和数据分析,通过高精度的测控技术,有效提升内燃机的测试精度和数据处理能力。 项目背景 随着内燃机技术的发展,对其气道性能的精准测量需求日益增加。该系统通…

LabVIEW将TXT文本转换为CSV格式(多行多列)

在LabVIEW中,将TXT格式的文本文件内容转换为Excel格式(即CSV文件)是一项常见的数据处理任务,适用于将以制表符、空格或其他分隔符分隔的数据格式化为可用于电子表格分析的形式。以下是将TXT文件转换为Excel(CSV&#x…

第二节——计算机网络(四)物理层

车载以太网采用差分双绞线车载以太网并未指定特定的连接器,连接方式更为灵活小巧,能够大大减轻线束重量。传统以太网一般使用RJ45连接器连接。车载以太网物理层需满足车载环境下更为严格的EMC要求,100BASE-T1\1000BASE-T1对于非屏蔽双绞线的传…

Next.js - app 路由器之动态路由与并行路由

#题引:我认为跟着官方文档学习不会走歪路 动态路由的约定 (1) 通过将文件夹名称用方括号括起来可以创建动态段:[folderName] 动态段会作为 params 属性传递给 layout、page、route 和 generateMetadata 函数。 例如,一个博客可以包含以下…

电脑还原重置Windows系统不同操作模式

电脑有问题,遇事不决就重启,一切都不是问题!是真的这样吗。其实不然,主机系统重启确实可以自动修复一些文件错误,或者是设置问题,但是,当你由于安装了错误的驱动或者中毒严重,亦或是蓝屏,那么重启这个方子可能就治不了你的电脑了。 那么,除了当主机出现异常故障现象…

基于Java Springboot蛋糕订购小程序

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 微信…

git 上传代码时报错

在上传代码时,显示无法上传 PS E:\JavaWeb\vue3-project> git push To https://gitee.com/evening-breeze-2003/vue3.git! [rejected] master -> master (non-fast-forward) error: failed to push some refs to https://gitee.com/evening-breeze-20…

【学习笔记】GoFrame框架

文章目录 什么是GoFrame框架 and 安装项目初始化 什么是GoFrame框架 and 安装 我也是用过许多框架的程序员了,但是GoFrame框架确实是没听说过,今天就来学习一下。 首先是我们熟悉的选手自我介绍环节 GoFrame 是一款模块化、高性能、企业级的 Go 语言基…

探索温度计的数字化设计:一个可视化温度数据的Web图表案例

随着科技的发展,数据可视化在各个领域中的应用越来越广泛。在温度监控和展示方面,传统的温度计已逐渐被数字化温度计所取代。本文将介绍一个使用Echarts库创建的温度计Web图表,该图表通过动态数据可视化展示了温度值,并通过渐变色…

Linq(C#)之对数据分组

分组是指将数据分到不同的组&#xff0c;使每组中的元素拥有公共的属性。 下图演示了对字符序列进行分组的结果。 每个组的键是字符。 1、group by List<int> numbers [35, 44, 200, 84, 3987, 4, 199, 329, 446, 208];IEnumerable<IGrouping<int, int>> q…

【字体】Fire Code连字效果开启

Vscode 开启方法 1、设置字体Fire Code 放在最前面的即可&#xff1a; 2、启用连字 继续往下找到“在 settings.json 中编辑”&#xff0c;然后设置"editor.fontLigatures": true &#xff1a; 保存即可。 Sublime 开启方法 设置中设置字体后&#xff0c;启…

区块链学习笔记(2)--区块链的交易模型part1

模型基础 区块链的tx分为两种模型&#xff0c;分别是比特币为代表的UTXO&#xff08;Unspent Transaction Output&#xff09;模型&#xff0c;和以太坊为代表的Account模型。前者适用于货币记账&#xff0c;后者适用于链上应用。 UTXO模型 类似于现金的交易模型 一个tx包含…

ComfyUI节点安装笔记

AI高速发展&#xff0c;版本更新相当快&#xff08;11月25日才安装的版本v.0.3.4&#xff0c;27日版本就已经更新到v.0.3.5了&#xff0c;当然不是说所有的版本更新都需要全部全新安装&#xff09;&#xff0c;在遇到问题&#xff0c;而不能通过update来更新各个节点解决时&…

数据库期末复习题库

1. Mysql日志功能有哪些? 记录日常操作和错误信息&#xff0c;以便了解Mysql数据库的运行情况&#xff0c;日常操作&#xff0c;错误信息和进行相关的优化。 2. 数据库有哪些备份方法 完全备份&#xff1a;全部都备份一遍表备份&#xff1a;只提取数据库中的数据&#xff0…

【经典论文阅读】Transformer(多头注意力 编码器-解码器)

Transformer attention is all you need 摘要 完全舍弃循环 recurrence 和卷积 convolutions 只依赖于attention mechanisms 【1】Introduction 完全通过注意力机制&#xff0c;draw global dependencies between input and output 【2】Background 1&#xff1a;self-…

理解字母形状,从而获得含义

英文字母&#xff0c;都是象形符号&#xff0c;所以&#xff0c;理解其形象&#xff0c;所象之形&#xff0c;是一项重要的工作&#xff0c;和非常有意义事情。也是我们快速记住大量单词&#xff0c;将单词从底层逻辑开始理清&#xff0c;融会贯通扩展记忆容量的重要办法之一。…

CA系统(file.h---申请认证的处理)

#pragma once #ifndef FILEMANAGER_H #define FILEMANAGER_H #include <string> namespace F_ile {// 读取文件&#xff0c;返回文件内容bool readFilename(const std::string& filePath);bool readFilePubilcpath(const std::string& filePath);bool getNameFro…

Linux Shell 脚本题目集(2)

1、使用 case 语句根据用户输入的分数&#xff08;0-100&#xff09;输出相应的成绩等级&#xff08;A, B, C, D&#xff09;。 #! /bin/bashread -p "请输入您的分数&#xff08;0-100&#xff09;&#xff1a;" score# 验证输入是否为数字且在0到100之间 if ! [[ …