【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

相关文章
|
17天前
|
NoSQL Linux Redis
Linux Redis 服务设置开机自启动
【9月更文挑战第2天】在 Linux 系统中,可使用两种方法设置 Redis 开机自启动:一是通过创建 `redis.service` 文件并利用 systemd 进行管理,包括定义服务参数和启动脚本;二是编辑 `/etc/rc.local` 文件,在其中添加启动命令。推荐使用 systemd 方法,因为它更符合现代 Linux 系统的设计理念。设置完成后,可通过 `sudo systemctl status redis.service` 检查服务状态。
|
28天前
|
Linux Shell 数据安全/隐私保护
Linux用户账户管理精髓:创建、删除、密码与会话管理全攻略
本文档介绍了Linux系统中用户账户管理的关键操作,包括创建与删除用户、设置及修改密码、用户切换与会话管理等内容。通过理论说明与具体命令示例,如使用`useradd`、`userdel`、`passwd`和`su`等命令,帮助系统管理员更好地掌握这些基本技能,从而有效提升系统的安全性和管理效率。此外,还介绍了如何利用`screen`等工具进行会话管理,确保即便在网络中断的情况下也能维持会话的持续运行。
38 3
|
28天前
|
安全 关系型数据库 MySQL
在Linux中,如何重置 mysql root 密码?
在Linux中,如何重置 mysql root 密码?
|
29天前
|
Linux 网络安全
在Linux中,如何设置防火墙规则?
在Linux中,如何设置防火墙规则?
|
19天前
|
Linux
linux内核执行fork时对写时复制的设置
linux内核执行fork时对写时复制的设置
|
28天前
|
安全 Linux 数据安全/隐私保护
在Linux中,使用rsync服务模式时,如果指定了⼀个密码文件,那么这个密码文件的权限应该设置成多少才可以?
在Linux中,使用rsync服务模式时,如果指定了⼀个密码文件,那么这个密码文件的权限应该设置成多少才可以?
|
28天前
|
网络协议 Ubuntu Linux
在Linux中,设置DNS需要修改哪个配置文件?
在Linux中,设置DNS需要修改哪个配置文件?
|
18天前
|
机器学习/深度学习 安全 网络协议
Linux防火墙iptables命令管理入门
本文介绍了关于Linux防火墙iptables命令管理入门的教程,涵盖了iptables的基本概念、语法格式、常用参数、基础查询操作以及链和规则管理等内容。
178 73
|
11天前
|
Linux Shell
Linux 中 Tail 命令的 9 个实用示例
Linux 中 Tail 命令的 9 个实用示例
40 6
Linux 中 Tail 命令的 9 个实用示例
|
7天前
|
设计模式 Java Linux
Linux的20个常用命令
Linux的23个常用命令
Linux的20个常用命令