Ubuntu创建用户没有创建家目录

博客介绍了Ubuntu系统创建用户时家目录的处理方法。一是在创建用户时直接创建家目录;二是创建用户后手动创建家目录,包括指定家目录和Shell,以及配置.bashrc文件,手动创建目录若无该文件使用不便。

一、在创建用户时创建家目录

# -m 创建用户家目录
# -s 指定登录的shell(不指定,默认使用/bin/sh)
sudo useradd -m -s /bin/bash username 

二、在创建用户后手动创建家目录

2.1 指定家目录和Shell

# 创建家目录
sudo mkdir /home/username

# 将家目录的所有权更改为新用户
sudo chown username:username /home/username

# 使用usermod命令来设置或更改用户的登录shell(如果在创建时没有指定shell)
sudo usermod -s /bin/bash username

2.2 配置.bashrc文件

手动创建的目录没有.bashrc文件,使用起来非常不方便,比如ls查看文件;文件和目录都一个色。

# .bashrc文件是从/etc/skel/.bashrc这个模板文件复制过来的
sudo cp /etc/skel/.bashrc /home/username/

# 确保.bashrc文件属于正确的用户和组
sudo chown username:username /home/username/.bashrc
<think> 嗯,用户询问在Ubuntu系统中创建用户并同时创建目录的方法。用户特别提到了创建目录这个需求,这很关键,因为Ubuntu默认的useradd命令行为可能不会自动创建目录用户引用了三个资料片段。引用1提到了"sudo useradd -r -m -s /bin/bash userName"这个命令,其中-m选项就是用来创建目录的。引用2和引用3讨论了切换到root权限后再创建用户,但没特别说明目录的问题。需要注意到引用2中使用的"useradd"命令没有带-m参数,这可能不会创建目录。 根据我的知识,在Ubuntu创建用户同时创建目录主要有两种可靠方法:使用useradd命令配合-m参数,或者使用adduser这个交互式命令。useradd是更底层的工具,adduser则是更友好的封装。 对于useradd方法,关键参数是-m,它会强制创建目录,-s可以指定shell类型,常用的是/bin/bash。示例命令应该是"sudo useradd -m -s /bin/bash username"。 adduser命令更简单,它会自动处理目录创建、密码设置等步骤。只需要"sudo adduser username",然后根据提示操作即可。 用户可能不太熟悉命令行参数,所以我会在回答中清楚地解释每个参数的作用。特别是要强调-m参数对创建目录的重要性。考虑到用户可能不熟悉权限问题,也要说明需要使用sudo获取管理员权限。 准备在回答中给出两种方法的详细步骤,并解释为什么推荐adduser给新手用户。同时会提醒用户设置密码的必要性,以及如何验证目录是否创建成功。 </think> 在 Ubuntu 系统中创建用户并**同时创建目录**,主要有两种常用且可靠的方法: ### 🛠 方法一:使用 `useradd` 命令 (推荐参数明确指定) 这是底层命令,通过添加 `-m`(或 `--create-home`)参数来强制创建目录。 1. **打开终端** (`Ctrl+Alt+T`)。 2. **获取管理员权限**: ```bash sudo su ``` *(输入当前用户密码)* 3. **使用 `useradd` 命令创建用户创建目录**: ```bash useradd -m -s /bin/bash 新用户名 ``` * `-m` (或 `--create-home`):**核心参数**,指示系统在 `/home/` 目录创建用户名同名的目录(例如 `/home/新用户名`)。 * `-s /bin/bash`:指定用户的默认登录 Shell 为 Bash(这是 Ubuntu 的标准 Shell,推荐加上)。 * `新用户名`:替换为你想要创建的实际用户名(例如 `zhangsan`)。 * *示例*:`useradd -m -s /bin/bash zhangsan` 创建用户 `zhangsan` 及其目录 `/home/zhangsan`。 4. **(必需) 为新用户设置密码**: ```bash passwd 新用户名 ``` *(根据提示输入并确认新用户的密码)*。创建用户后必须设置密码才能登录[^1][^2]。 5. **退出 root 权限**: ```bash exit ``` ### 🧩 方法二:使用 `adduser` 命令 (推荐,更交互式友好) 这是对 `useradd` 的一个更友好的封装脚本,**默认行为就是创建目录**,并会交互式地引导设置密码等信息。 1. **打开终端** (`Ctrl+Alt+T`)。 2. **直接使用 `adduser` 命令**: ```bash sudo adduser 新用户名 ``` * `sudo`:直接使用 `sudo` 提权执行,无需先切换到 `root`。 * `adduser`:此命令**默认会自动创建用户目录** (`/home/新用户名`)。 * `新用户名`:替换为你想要创建的实际用户名。 3. **跟随交互提示操作**: * 输入当前用户的密码(用于 `sudo` 认证)。 * 为**新用户**设置密码并确认。 * 可以按 `Enter` 跳过填写全名、房间号等额外信息(这些是可选的)。 * 最后输入 `Y` 确认信息正确。 ### 📌 验证目录是否创建成功 创建后,可以检查 `/home/` 目录下是否存在以新用户名命名的文件夹: ```bash ls /home/ ``` 你应该能看到新创建用户名对应的目录(例如 `/home/zhangsan`)。 ### ⚠ 关键点总结与说明 1. **创建目录的核心参数/行为**: * **`useradd -m`**:`-m` 参数是使用 `useradd` 时创建目录的**关键**。 * **`adduser`**:**默认行为**就是创建目录,无需额外参数。这是更推荐给新手或希望简便操作的方式[^1][^3]。 2. **权限要求**:创建用户需要管理员权限,因此必须使用 `sudo` 或在 `root` 用户下执行命令[^1][^2][^3]。 3. **设置密码**:**两种方法在创建用户后都必须设置密码**(`passwd` 命令或 `adduser` 的交互提示),否则新用户无法登录系统[^1][^2]。 4. **指定 Shell**:使用 `useradd` 时,强烈建议加上 `-s /bin/bash` 明确指定 Bash Shell。`adduser` 默认也会使用 Bash。可以通过查看 `/etc/passwd` 文件对应行的最后一个字段来确认用户的 Shell。 5. **`useradd` vs `adduser`**: * `useradd`:低级工具,行为高度依赖命令行参数和系统默认配置(在 `/etc/default/useradd` 中)。`-m` 参数是确保创建目录的可靠方式。 * `adduser`:高级 Perl 脚本,封装了 `useradd`、`passwd` 等命令,提供更友好的交互式体验,并且**默认配置就是创建目录和设置密码**。对于标准需求通常更简单直接[^1][^3]。 **结论**:要在 Ubuntu创建用户并确保同时创建目录,最常用且可靠的方法是: * **`sudo adduser 新用户名`** (首选,简单直接) * 或 **`sudo useradd -m -s /bin/bash 新用户名`** 后接 **`sudo passwd 新用户名`** (需明确参数并单独设置密码)
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值