我想知道在Linux/Unix中是否有简单的shell命令可以在不修改/etc/passwd文件的情况下更改用户主目录(类似于chsh,更改现有有效用户的默认登录shell)。谢谢
当前回答
Ibrahim对另一个答案的评论是修改现有用户的主目录的正确方法。
修改用户的主目录:
usermod -d /newhome/username username
Usermod命令用于编辑已存在的用户。 -d(——home的缩写)将更改用户的主目录。
更改用户的主目录+移动用户当前目录的内容:
usermod -m -d /newhome/username username
-m(——move-home的缩写)将把内容从用户的当前目录移动到新目录。
其他回答
在添加新用户时更改默认用户主目录:
只需使用文本编辑器打开这个文件,输入: vi /etc/default/useradd 默认home目录由home变量定义,查找行即 阅读如下: = /家 替换为: 家= / iscsi /用户 保存并关闭文件。现在您可以使用常规的useradd添加用户 命令: # useradd vivek # passwd vivek 验证用户信息: #手指vivek
Ibrahim对另一个答案的评论是修改现有用户的主目录的正确方法。
修改用户的主目录:
usermod -d /newhome/username username
Usermod命令用于编辑已存在的用户。 -d(——home的缩写)将更改用户的主目录。
更改用户的主目录+移动用户当前目录的内容:
usermod -m -d /newhome/username username
-m(——move-home的缩写)将把内容从用户的当前目录移动到新目录。
以防其他读者查找有关adduser命令的信息。
编辑/etc/adduser.conf
设置DHOME变量
你可以用:
/etc/passwd
编辑用户主目录,然后移动所需的文件和目录到它:
cp/mv -r /home/$user/.bash* /home/newdir
.bash_profile
.ssh/
设置正确的权限
chmod -R $user:$user /home/newdir/.bash*
接受的答案是错误的,因为初始用户文件夹中的内容没有使用它移动。我将添加另一个答案来纠正它:
sudo usermod -d /newhome/username -m username
您不需要创建带有用户名的文件夹,这也会将您的文件从初始用户文件夹移动到/newhome/username文件夹。
推荐文章
- fork(), vfork(), exec()和clone()的区别
- 如何从查找“类型d”中排除此/ current / dot文件夹
- 在tmux中保持窗口名称固定
- 只使用md5sum获取哈希值(没有文件名)
- 如何生成一个核心转储在Linux上的分段错误?
- 在Python中如何在Linux和Windows中使用“/”(目录分隔符)?
- 使用sh shell比较字符串
- 在Bash中测试非零长度字符串:[-n "$var"]或["$var"]
- 如何创建Bash别名?
- 如何设置ssh超时时间?
- 将所有变量从一个shell脚本传递到另一个?
- 只列出UNIX中的目录
- 如何在Apache服务器上自动将HTTP重定向到HTTPS ?
- 如何删除shell脚本中文件名的扩展名?
- 如何限制从grep返回的结果的数量?