有同学在WSL中安装Ubuntu时,因某些原因略过了一些步骤,没有创建普通账号和密码。那么当他们启动WSL进入Ubuntu时,默认账号是root(其标志是:命令提示符是#符号,而普通账户的是$),所有的操作均在此账户下进行。 因为root账户的权限很高,所以在其下操作有潜在的危险。因此,推荐的做法是常用的操作均在普通账户下进行。 这里,介绍一个创建普通账户的方法。

一、 创建普通账户

假设要创建一个名为bzj的普通权限登录账号。

  1. 创建账号

    root账户下,打开Linux终端,发出如下命令:

     useradd -s /bin/bash -m bzj
    

    这条命令会创建bzj账号,以及与账号同名的组。 在创建账号的同时,指定了该账号使用的shellbash。 此外,还创建了与此账号关联的home目录/home/bzj。使用

     cd ~
    

    会进入这个目录。

  2. 创建密码

    再发出如下命令:

     passwd bzj
    

    此命令会为账号bzj添加密码。 请注意在输入密码时,需要输入两次以便验证。

  3. 添加账号到sudo

    再发出如下命令:

     usermod -aG sudo
    

    此命令会将账号bzj添加到sudo组(原来的组保持不变),以后就能使用sudo命令了。

    如果要免密使用sudo命令,请参阅我的另一篇博客:免密使用sudo

  4. 测试账号 发出如下命令:

     su - bzj
    

    此命令将从当前的root账户切换到bzj账户,并使用后者的环境。 接着发出如下命令:

     cd ~
     touch .hushlogin
    

    这个文件的存在会阻止登录时系统输出一堆信息。 此后请发出一些命令(包括sudo)测试一下。

二、 修改WSL启动时的默认账户

  1. WSL的默认用户切换为bzj

    关闭WSL终端,打开Powershell,输入:

     ubuntu2004 config --default-user bzj
    

    如果你的Ubuntu是18.04,那么请用ubuntu1804替换ubuntu2004。以下同。

  2. 再次启动WSL

    此后会看到默认账户已经是bzj了。

如果上述命令不能用,那么可以这么做:

  • 打开一个Ubuntu终端,在其中输入如下命令:

      cd /etc
      sudo vim wsl.conf
    
  • vim编辑器启动后,按字母键i(此键意为插入insert),然后将如下内容输入:
      [user]
      default=bzj
    
  • 输入完成后,先按ESC键,再按冒号键:,屏幕的底部会出现:。在其后输入:wq,然后按回车。