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




