【Linux问题合集003】解决无法创建新用户丨在home目录下看不见用户文件夹丨创建的用户设置密码时报错,当前用户不在 sudoers 列表中丨Ubunt不显示用户名,只显示“$“符号问题

简介: 【Linux问题合集003】解决无法创建新用户丨在home目录下看不见用户文件夹丨创建的用户设置密码时报错,当前用户不在 sudoers 列表中丨Ubunt不显示用户名,只显示“$“符号问题

🍁问题一、创建用户无法成功

通常我们使用以下代码来创建用户

useradd tom

但是出现如下问题:

useradd: Permission denied.
useradd:无法锁定 /etc/passwd,请稍后再试。

56b4602194f74bd8b12387c662df7b42.png

解决方法:通常是由于权限不够,要解决这个问题,用户“zhou”需要以管理员身份运行该命令。可以在命令前加上“sudo”来提升权限,如下所示

sudo useradd tom

同样如果删除不成功的话也可以通过sudo来提升权限来删除

但是强烈建议使用,重要的事说三遍

sudo useradd -m tom

这个命令来创建tom用户,原因在问题3中,就是因为没使用上面语法我才会报错误三,哎~

🍁问题二、给我创建的用户设置密码时报错

sudo passwd tom

当使用上面这行代码来给tom用户设置密码时,报如下的错误

52afc9e0a8164520b7b8951a9a66cdfa.png

这个错误当然就是你的密码太简单了,建议使用更强的密码。密码应至少包含八个字符,包括大写字母、小写字母、数字和特殊字符。如果您正在使用非英语语言环境【比如是中文输入法,那肯定要切换成英文呀】,则还应避免使用任何特殊或非 ASCII 字符。

🍁问题三、su: 警告:无法更改到 /home/tom 目录: 没有那个文件或目录

我tom用户创建好后

915e3683b5394c27934e1af4ba77a821.png

根据输出,用户“tom”已经存在于系统中,说明我已经创建好了tom用户,无需重复创建 

本来是非常开心以为大功告成:

但是当我使用如下命令

su - tom
// 上面用于切换到“tom”用户的帐户并进入该帐户的主目录

又报错了,真是难过,错误如下

1. 密码: 
2. su: 警告:无法更改到 /home/tom 目录: 没有那个文件或目录


43bd5da1b070448483d66820e17bb002.png


8390f947ac8841beb9ff978435039f4d.png

结果我跑到相应的目录下一看、我去【注:大多数 Linux 系统中,我使用 useradd 命令创建一个新用户时,默认情况下会在系统上的 /home 目录下为该用户创建一个主目录。】


2044a0ea658547b3b25f7d71f966d75b.png


我本该自动创建的tom文件夹嘞?怎么最后只有一个孤零零的 zhou的用户文件夹呢?

这就是因为我创建用户tom的时候没有使用

sudo useradd -m tom
//其中 -m 选项将指示 useradd 命令为“tom”用户同时创建一个主目录。

哪能怎么办呢?只能删除该用户重新来过喽

🍁问题四、userdel: user tom is currently used by process 3321

删除用户可以使用如下的命令

sudo userdel tom

但是,它它它又给我报错,说我进程未关闭,哎~

userdel: user tom is currently used by process 3321

c794d43bd19a4d01976e2b54ee0446ce.png

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

使用ctrl+d关闭终端,或者手动关闭终端后,重新打开,然后再执行删除用户的操作就可以了


31bc4e84310b462d840f1407e87ee90c.png

然后就是使用 sudo useradd -m tom来创建tom用户了

到此就OK了,我的tom用户终于创建好了,真是一开始创建用户没加-m的锅呀。

4caa161c6c774ca6abdf3b736af69a5e.png

🍁问题五:当前用户不在 sudoers 列表中

上面我创建的tom用户无法使用sudo命令


1603c0ff14544aab85789b5ea4ded268.png

这个错误就是当前用户不在 sudoers 列表中。sudoers 是一种配置文件,用于决定哪些用户或用户组可以通过 sudo 命令获得 root

用户的临时权限来执行特权操作。如果您的用户名未列在 sudoers 文件中,则无法使用 sudo 命令执行超级用户操作,并将收到如上的错误消息的提示。

解决上面问题的方法其实很简单,就是通过一个在 sudoers 列表中的用户,比如root或我的zhou用户,使用以下命令将当前用户添加到 sudo 组中

sudo usermod -aG sudo tom
//可以将tom替换成你想要加入到sudo组的用户

58f218e1ff7b425694239979ab645ffe.png

下面我的tom用户可以使用sudo了

🍁问题六、Ubuntu不显示用户名,只显示"$“符号,回退键会变为”^H"

有没有发现当我进入到tom文件夹下显示的是下面图片所示

5e63cefa93b44e4d9e3313b4e635bfb2.png

为什么只有一个"$"号,而不是如下图所示呢?

9fd5867c66544896a3f6f236609bd2ad.png

为什么不是“tom@liunx:” ?并且使用键盘的上下箭头也无法实现历史记录的切换,

解决方法:

🔥一、切换到root用户

su - root

🔥二、切换到root帐户后,然后再用命令

vim /etc/passwd

打开在/etc目录下的passwd文件存储了所有用户帐户的信息,包括用户名、UID、GID、主目录和默认 shell 等。由于此文件包含有关系统安全性的敏感信息,因此它仅对 root 用户或具有 sudo 权限的用户可写。

但是要特别注意:

请注意,在进行任何更改之前,请确保备份原始文件,以避免意外修改文件。总结:改容易,回去难

所以,我们要备份password这个文件

在 Linux 系统中,备份 /etc/passwd 文件(或任何其他文件)是一种良好的实践,以防止在进行编辑时不小心破坏了原始文件。下面是几种备份文件的方法:

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

复制代码

sudo cp /etc/passwd passwd.bak

该命令将创建一个名为 passwd.bak 的新文件,其中包含与 /etc/passwd 相同的内容。

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

复制代码

sudo tar -czf etc_backup.tar.gz /etc

该命令将创建一个名为 etc_backup.tar.gz 的压缩文件,其中包含 /etc 目录中的所有文件和子目录。

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

无论使用哪种方法,备份文件都是非常重要的,以避免意外或错误更改破坏您的数据。

所以我们采用

sudo cp /etc/passwd passwd.bak

创建一个名为 passwd.bak 的新文件

执行完后一定要检查是否备份成功哇

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

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

a6f919c5787e4696bcc80d828bb1c6a2.png

🔥三、找对对应的用户名 一行,将最后的 /bin/sh 修改为/bin/bash,改好后按esc,键入(:wq),保存退出

文件改前:

2c1680b65dc5431083e70c4cef1a5b41.png

文件改后:



bccd225a2d454ba7891c58b27212e85a.png

okk当你退出文件,后再次使用:

su - tom

命令进入tom用户时你就会发现已经好了

48deceeacbdf4c9281a74d527ec78308.png


ef62f669a4eb42fa9e5df20a49da2ba6.png

🍁结语:

以上当然只是一部分出现的问题辣,更多问题我的专栏【Linux问题合集】会持续更新的,欢迎各位的订阅


83f7a8e49c2e405c8b320ed41300bb4a.gif

相关文章
|
28天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
71 3
|
23天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
72 3
|
27天前
|
Linux Python
Linux 中某个目录中的文件数如何查看?这篇教程分分钟教会你!
在 Linux 系统中,了解目录下文件数量是常见的需求。本文介绍了四种方法:使用 `ls` 和 `wc` 组合、`find` 命令、`tree` 命令以及编程实现(如 Python)。每种方法都附有详细说明和示例,适合不同水平的用户学习和使用。掌握这些技巧,可以有效提升系统管理和日常使用的效率。
192 6
|
24天前
|
分布式计算 Java Hadoop
linux中HADOOP_HOME和JAVA_HOME删除后依然指向旧目录
通过以上步骤,可以有效地解决 `HADOOP_HOME`和 `JAVA_HOME`删除后依然指向旧目录的问题。确保在所有相关的配置文件中正确设置和删除环境变量,并刷新当前会话,使更改生效。通过这些措施,能够确保系统环境变量的正确性和一致性。
22 1
|
27天前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
69 8
|
27天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
180 6
|
28天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
65 2
|
10天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
37 14
Linux 10 个“who”命令示例
|
19天前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
30 9
|
17天前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解