You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Linux下无管理员权限时如何修改自身用户名及家目录?

Linux下无管理员权限时如何修改自身用户名及家目录?

兄弟,实话说哈——没有root或者sudo权限的话,你没法直接修改系统层面的用户名和对应的家目录哦。

为啥呢?因为你的用户名、家目录路径这些核心信息,都存在/etc/passwd/etc/shadow/etc/group这类系统配置文件里,这些文件只有root用户才有读写权限,普通用户根本碰不了。

不过如果只是想满足自己日常使用的“改名”需求,倒是有几个替代方案:

  • 临时修改终端显示的用户名:如果你只是觉得终端里显示的旧用户名看着不舒服,可以修改Shell的配置文件,让终端显示你想要的名字。比如用bash的话,编辑~/.bashrc文件,在末尾加一行:

    export PS1='\[\033[01;32m\]new_username\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
    

    new_username换成你想要的名字,保存后执行source ~/.bashrc,下次打开终端就会显示新名字了。注意这只是显示层面的修改,系统实际识别的用户名还是原来的。

  • 给自己的工作目录起个“别名”:如果想让自己常用的目录叫新名字,可以在自己的家目录里创建一个软链接或者直接新建文件夹。比如:

    # 新建文件夹并迁移内容
    mkdir ~/new_dirname
    mv ~/* ~/new_dirname/
    # 或者创建软链接(如果不想迁移文件)
    ln -s ~/old_dirname ~/new_dirname
    

    这样平时你就可以用~/new_dirname来访问自己的文件,但系统层面的家目录路径还是原来的/home/old_username

要是你真的需要彻底修改系统层面的用户名和家目录,那只能找服务器管理员要sudo权限,或者让管理员帮你操作。管理员常用的命令是:

# 修改用户名
sudo usermod -l new_username old_username
# 修改家目录(-m参数会自动迁移原有文件)
sudo usermod -d /home/new_username -m new_username

备注:内容来源于stack exchange,提问作者zakadmin

火山引擎 最新活动