我在 WSL2 环境中添加了一个用户 (user2),然后想将该用户 2 的主目录更改为不同的目录。但一定有什么不对劲。
$ usermod -d /var/lib/app1 user2
usermod: no changes
$ vim /etc/passwd
user2:x:1001:1001::/var/lib/app1:/bin/sh
$ sudo su user2
不是/var/lib/app1
但是/home/abc
。
我在这里想念什么?
我在 WSL2 环境中添加了一个用户 (user2),然后想将该用户 2 的主目录更改为不同的目录。但一定有什么不对劲。
$ usermod -d /var/lib/app1 user2
usermod: no changes
$ vim /etc/passwd
user2:x:1001:1001::/var/lib/app1:/bin/sh
$ sudo su user2
不是/var/lib/app1
但是/home/abc
。
我在这里想念什么?
这是预期的行为。
su
默认情况下不会更改工作目录。它只切换用户。根据su
手册页:su
确实会更改用户,$HOME
但不会更改cd
该用户的$HOME
.例如,我有 2 个用户,
kulfy
并且kulfy1
. BASH 是前一个的默认 shell,而后一个的 sh(它是 DASH 的符号链接)。要更改目录,您可以使用
--login
或简单地-
使用su
. 从手册页: