用于更改用户的默认主目录的命令

时间:2013-12-27 09:07:09

标签: linux shell unix

我想知道是否有任何简单的shell命令来更改Linux / Unix中的用户主目录(类似于 chsh ,它更改现有有效用户的默认登录shell)触摸/etc/passwd文件。感谢

7 个答案:

答案 0 :(得分:295)

易卜拉欣对另一个答案的评论是改变现有用户主目录的正确方法。 usermod是编辑现有用户的命令。 -d--home的缩写)将更改用户的主目录。添加-m--move-home的缩写也会将内容从用户的当前目录移动到新目录。

usermod -m -d /newhome/username username

答案 1 :(得分:27)

来自Linux Change Default User Home Directory While Adding A New User

  

只需使用文本编辑器打开此文件,输入:

vi /etc/default/useradd
     

由HOME变量定义的默认主目录,查找该行   内容如下:

HOME=/home
     

替换为:

HOME=/iscsi/user
     

保存并关闭文件。现在,您可以使用常规useradd添加用户   命令:

# useradd vivek
# passwd vivek
     

验证用户信息:

# finger vivek

答案 2 :(得分:16)

接受的答案有误,因为初始用户文件夹中的内容不会使用它移动。我将添加另一个答案来纠正它:

sudo usermod -d /newhome/username -m username

您无需使用用户名创建文件夹,这也会将您的文件从初始用户文件夹移动到/ newhome / username文件夹。

答案 3 :(得分:4)

如果其他读者在adduser命令上查找信息。

修改/etc/adduser.conf

设置DHOME变量

答案 4 :(得分:2)

发现这会打破一些应用程序,更好的方法是

除了符号链接,在更新的发行版和文件系统上,作为root用户还可以使用bind-mount:

mkdir /home/username 
mount --bind --verbose /extra-home/username /home/username

这对于允许访问"通过" / home目录通过守护进程进行子进程,这些守护进程被配置为避免遍历符号链接(apache,ftpd等)。

当然,你必须记住(或init脚本)在重启时绑定。

/etc/fstab中的示例init脚本是

/extra-home/username /home/username none defaults,bind 0 0

答案 5 :(得分:0)

usermod -m -d / newhome用户名

答案 6 :(得分:0)

你可以这样做:

/etc/passwd

编辑用户主目录,然后将所需的文件和目录移动到其中:

cp/mv -r /home/$user/.bash* /home/newdir

.bash_profile
.ssh/ 

设置正确的权限

chmod -R $user:$user /home/newdir/.bash*