linux修改用户主目录的方法

时间:2021-09-28 12:19:53
第一:修改/etc/passwd文件
第二:usermod命令
 
详细说明如下:
第一种方法:vi /etc/passwd
找到要修改的用户那几行,修改掉即可。此法很暴力,建议慎用。
/etc/passwd文件格式
登录名:加密口令:数字用户ID:数字组ID:注释字段:起始目录:shell程序 
用此方法修改了用户宿主目录后,会出现某些异常,如:bash环境异常,需要将用户原宿主目录下的隐藏文件拷贝到更改后的宿主目录即可
cp /原宿主目录/.* /目标目录  
 
第二种:usermod
usermod -d /usr/newfolder -u uid
-u后面一定要接uid啊,不是username
附:usermod详细参数
语  法:usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][- f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s ][-u ] [用户帐号]
补充说明:usermod可用来修改用户帐号的各项设定。
参  数:
-c<备注>  修改用户帐号的备注文字。
-d登入目录>  修改用户登入时的目录。
-e<有效期限>  修改帐号的有效期限。
-f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。
-g<群组>  修改用户所属的群组。
-G<群组>  修改用户所属的附加群组。
-l<帐号名称>  修改用户帐号名称。
-L  锁定用户密码,使密码无效。
-s  修改用户登入后所使用的shell。
-u  修改用户ID。
-U  解除密码锁定。


=============================================================================
方法一:使用 id 命令 
使用 id 命令可以很轻松的通过用户名查看UID、GID,下面来讲解一下这个命令的用法。


$id username
uid=10001(username)   gid=10002(www)    groups=10002(www)


命令格式
id [选项]... [用户名]
命令选项
-a 忽略,兼容其它版本
-Z, –context 只输出当前用户的安全上下文
-g, –group 只输出有效的GID
-G, –groups 输出所有的GID
-n, –name 对于 -ugG 输出名字而不是数值
-r, –real 对于 -ugG 输出真实ID而不是有效ID
-u, –user 只输出有效UID
–help 输出帮助后退出
–version 输出版本信息后退出
使用案例
heihaier@heihaier-desktop:~$ id root
uid=0(root) gid=0(root) groups=0(root)
方法二:查看 /etc/password 文件 
/etc/password 文件格式
root:x:0:0:root:/root:/bin/bash
上面是这个文件的一行实例,每个域用 : 区分,从左向右分别是
root 用户名:1~32 字节长。
x 密码:字符x表示密码被加密保存在 /etc/shadow 文件中。
0 用户ID(UID):每个用户必需指定UID。UID 0 是保留给 root 用户的。UID 1~99是保留给其它预定义用户的。 UID 100~999是保留给系统用户的。
0 组ID(GID):主组ID(保存在 /etc/group 文件中)。
root 用户ID信息:用户备注信息。
/root 主目录:用户主目录。
/bin/bash 命令解释器(Shell):用户默认的命令解释器的路径。
使用案例
heihaier@heihaier-desktop:~$ sudo cat /etc/passwd | grep root
root:x:0:0:root:/root:/bin/bash