AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 793949
Accepted
Alan Mick
Alan Mick
Asked: 2025-04-20 11:03:32 +0800 CST2025-04-20 11:03:32 +0800 CST 2025-04-20 11:03:32 +0800 CST

我的 Ubuntu Linux 主目录是 /home/ls。为什么它是“ls”而不是我的用户名?

  • 772

我在 Windows 11 PC 上的 WSL 下安装了 Ubuntu Linux。安装过程中我设置了一个用户名,perdiem。一切启动并运行后,我cd输入了~,最终进入的目录是/home/ls。我不知道这是为什么;我以为这是我的用户名。奇怪的是,它实际上是一个 Linux 命令——有点令人困惑。

这不是问题,但有人知道为什么ls将其建立为主目录而不是我的用户名吗?


输出id:

uid=1000(ls) gid=1000(ls) groups=1000(ls),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),100(users),107(netdev)

输出grep /home/ls /etc/passwd:

ls:x:1000:1000:,,,:/home/ls:/bin/bash
linux
  • 2 2 个回答
  • 1124 Views

2 个回答

  • Voted
  1. Best Answer
    telcoM
    2025-04-20T19:18:00+08:002025-04-20T19:18:00+08:00

    如果cd ~您进入/home/ls,则在该会话中,$HOME环境变量已被设置为/home/ls。这可能是由于/home/ls在 中的用户帐户信息中将主目录设置为/etc/passwd(或用于用户帐户信息的任何插件机制),或者是由于某些因素将环境变量更改为不正确的值(仅适用于该特定会话,或适用于所有登录会话)。

    如果您没有写权限/home/ls,而该/home/perdiem目录存在并且您的常规用户可以写入,那么我会怀疑自定义登录脚本中存在错误或输入错误的命令导致$HOME环境变量被重新分配。

    如果/home/perdiem不存在,而/home/ls存在,并且后者具有正确的所有权和权限来充当您的主目录,则表明负责创建用户帐户的脚本存在错误。在这种情况下,/etc/passwd您的用户帐户对应的行也会将主目录指定为/home/ls。

    您可以通过getent passwd perdiem查看输出行上的第 6 个冒号分隔的字段来检查这一点。

    输出如下

    perdiem:x:1000:1000:Full Name,,,:/home/perdiem:/bin/bash
    

    这意味着主目录在用户帐户信息中指定正确,因此$HOME在启动登录会话后必定有某些东西改变了变量。

    结果如下

    perdiem:x:1000:1000:Firstname Lastname,,,:/home/ls:/bin/bash
    

    意味着错误出现在用户帐户信息中,表明用户帐户创建时出现错误。

    Debian/Ubuntu 似乎提供了/usr/sbin/adduser一个用于创建用户的包装脚本,并将其视为/usr/sbin/useradd低级工具。如果您或 WSL 发行版打包人员自定义此脚本时出现错误,可能会导致该脚本调用useradd带有错误参数的低级命令。

    但如果这是在安装 WSL 环境期间创建的初始用户帐户,那么该用户帐户可能是由安装过程中使用的任何脚本直接创建的,该脚本可能涉及或根本不涉及useradd命令或adduser脚本。

    • 13
  2. Scientific Consultants
    2025-04-20T16:21:08+08:002025-04-20T16:21:08+08:00

    在通用 Linux 系统上,您可以退出 X-11(或 Wayland),注销 USER 权限,然后在没有 X-11 或图形界面运行的经典命令控制台中以 root 权限登录。请确保您未在​​任何 tty 中以 USER 权限登录,并且没有图形界面正在运行。换句话说,任何需要或在 USER 权限下运行的程序都不应处于活动状态。

    然后发出以下命令:

      usermod -l NEW_USER USER    # Change username from USER to NEW_USER
      groupmod -n NEW_USER USER   # Change groupname from USER to NEW_USER
      usermod -d /home/NEW_HOMEDIR -m NEW_USER   # Change user's directory
    

    退出 root 账户,然后尝试以 NEW_USER 身份登录(仍在命令控制台中),看看是否一切正常。如果一切正常,您可以运行“startx”(我使用 X-11,每次登录后都会手动使用“startx”启动它)来启动 GUI。您可能需要对 X-11、您选择的桌面管理器等进行一些重新配置。

    更改用户名和目录的另一种方法是创建一个新用户!然后,您可以将所有非系统内容从当前用户目录复制/移动到新的用户目录。当一切运行正常且配置完成后,您可以删除旧用户和目录。简单易行,而且始终有效。

    没有更多信息,我无法确定用户名为什么被设置为“ls”。我通常使用 Debian,并且总是从命令控制台启动,这样更容易跟踪问题——例如,如果需要重新配置 X-11,我可以直接终止它,然后在控制台模式下进行更改(例如,修改 xorg.conf),然后使用 startx 重新启动 X-11 显示器。无需重启或图形登录管理器。我非常老派!

    • 0

相关问题

  • 有没有办法让 ls 只显示某些目录的隐藏文件?

  • 使用键盘快捷键启动/停止 systemd 服务 [关闭]

  • 需要一些系统调用

  • astyle 不会更改源文件格式

  • 通过标签将根文件系统传递给linux内核

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve