ubuntu有时出现创建用户后home目录下无该用户的情况,以及用户登录shell

本文详细介绍了在Ubuntu系统中如何使用useradd和usermod命令创建用户并指定家目录,解决无家目录的问题。同时,讲解了如何通过编辑sudoers文件为普通用户赋予sudo权限,实现非root用户对系统的高级管理。

先前安装ubuntu16系统后,用useradd命令后在home 目录下会自动创建该用户的家目录,重装ubuntu16最简系统后,出现无家目录的情况。

需用参数指定目录。

useradd -m xiaolan
usermod -s /bin/bash xiaolan

出现普通用户无法使用sudo命令

切换到root用户下,将普通用户xiaolan加入sudo

vi /etc/sudoers

找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)
这样普通用户就可以使用sudo了.

<think>我们面对的问题是:在Ubuntu系统上,创建了一个用户,但该用户无法使用`ll`命令。 首先,我们需要知道`ll`命令并不是一个原生的Linux命令,它通常是`ls -l`的一个别名(alias)。在Ubuntu系统中,这个别名通常定义在`~/.bashrc`文件(对于bash shell)中。 因此,新创建用户可能没有在其自己的`~/.bashrc`文件中定义这个别名,或者没有加载这个别名。 解决步骤: 1. 检查该用户的`~/.bashrc`文件是否包含`ll`的别名定义。 2. 如果没有,我们可以手动添加别名定义。 3. 添加后,需要重新加载配置文件或者重新登录。 具体操作: 我们可以编辑该用户的`~/.bashrc`文件,在文件末尾添加以下行: alias ll='ls -alF' 注意:通常标准的`ll`是`ls -l`,但有时也会用`ls -alF`或`ls -la`。这里我们按照常见的`ls -alF`来设置,也可以根据用户习惯设置。 另外,如果用户使用的是其他shell(比如zsh),则需要修改对应的配置文件(如`~/.zshrc`)。但新用户默认一般是bash。 操作步骤(以新用户身份操作,或者root用户切换到新用户后操作): - 使用文本编辑器打开`~/.bashrc`文件。 - 在文件末尾添加别名定义。 - 保存文件,然后运行`source ~/.bashrc`使配置立即生效。 但是,问题中提到的是新创建用户,所以我们需要确保该用户有权限操作自己的`~/.bashrc`文件。 如果由root用户帮助解决,可以这样操作(假设新用户名为newuser): sudo -i -u newuser # 切换到新用户 nano ~/.bashrc # 编辑.bashrc 然后添加别名,保存退出,再source。 或者直接使用root用户编辑新用户的`~/.bashrc`文件(注意文件权限): sudo nano /home/newuser/.bashrc 添加内容: alias ll='ls -alF' 然后保存,并确保该文件的所有者是新用户,以免权限问题。 最后,让新用户重新登录,或者执行`source ~/.bashrc`。 如果问题仍然存在,检查该用户使用的shell是否是bash(通过`echo $SHELL`查看),如果不是,则修改对应shell的配置文件。 另外,还有一个可能性:系统全局的配置文件(如`/etc/profile`、`/etc/bash.bashrc`)中定义了`ll`别名,但新用户可能没有继承。不过通常我们更倾向于在用户自己的配置文件中设置。 下面给出一个具体的操作示例(使用root权限为指定用户添加别名): </think>在 Ubuntu 系统中,`ll` 命令本质上是 `ls -l` 的别名(alias),而非独立命令。新用户无法使用通常是因为该用户shell 配置文件缺少这个别名定义。以下是详细解决方案: ### 解决方案: 需要在新用户shell 配置文件中定义 `ll` 别名,以下是两种方法: #### 方法一:修改用户配置文件(推荐) 1. **编辑用户配置文件** 打开新用户的 `~/.bashrc`(Bash)或 `~/.zshrc`(Zsh)文件: ```bash nano ~/.bashrc # 如果使用 Bash shell ``` 2. **添加别名定义** 在文件末尾添加: ```bash alias ll='ls -alF' ``` 3. **激活配置** 立即生效: ```bash source ~/.bashrc ``` #### 方法二:复制默认配置(适用于全新用户) 如果用户目录下缺少配置文件,复制系统默认配置: ```bash cp /etc/skel/.bashrc ~/ # 复制默认配置文件 source ~/.bashrc # 立即加载 ``` ### 验证是否生效: ```bash ll # 应显示详细文件列表 ``` ### 原理解释: 1. **`ll` 的本质** Ubuntu 中 `ll` 是预设在 `/etc/skel/.bashrc`(用户模板)中的别名,但新建用户时可能未正确复制此文件。 2. **配置文件优先级** - `~/.bashrc`:用户级 Bash 配置(优先使用) - `/etc/bash.bashrc`:系统级配置(影响所有用户) 3. **关键代码分析**: ```bash alias ll='ls -alF' ``` - `alias`:创建别名 - `ls -alF`:列出所有文件(含隐藏文件)+ 长格式 + 文件类型标识符 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值