Ibr*_*ish 186 unix linux shell
我想知道是否有任何简单的shell命令来更改Linux/Unix中的用户主目录(一个类似于chsh,它改变现有有效用户的默认登录shell)而不触及该/etc/passwd文件.谢谢
STW*_*STW 322
Ibrahim对另一个答案的评论是改变现有用户主目录的正确方法. usermod是编辑现有用户的命令.-d(缩写为--home)将更改用户的主目录.添加-m(缩写--move-home也会将内容从用户的当前目录移动到新目录.
usermod -d /newhome/username username
Run Code Online (Sandbox Code Playgroud)
Max*_*min 27
只需使用文本编辑器打开此文件,键入:
Run Code Online (Sandbox Code Playgroud)vi /etc/default/useraddHOME变量定义的默认主目录,查找如下所示的行:
Run Code Online (Sandbox Code Playgroud)HOME=/home用...来代替:
Run Code Online (Sandbox Code Playgroud)HOME=/iscsi/user保存并关闭文件.现在,您可以使用常规的useradd命令添加用户:
Run Code Online (Sandbox Code Playgroud)# useradd vivek # passwd vivek验证用户信息:
Run Code Online (Sandbox Code Playgroud)# finger vivek
小智 22
接受的答案是错误的,因为初始用户文件夹中的内容不会使用它移动.我将添加另一个答案来纠正它:
sudo usermod -d /newhome/username -m username
Run Code Online (Sandbox Code Playgroud)
您不需要使用用户名创建文件夹,这也会将您的文件从初始用户文件夹移动到/ newhome/username文件夹.
小智 5
你可以这样做:
/etc/passwd
Run Code Online (Sandbox Code Playgroud)
编辑用户主目录,然后将所需的文件和目录移至其中:
cp/mv -r /home/$user/.bash* /home/newdir
.bash_profile
.ssh/
Run Code Online (Sandbox Code Playgroud)
设置正确的权限
chmod -R $user:$user /home/newdir/.bash*
Run Code Online (Sandbox Code Playgroud)