# 以下命令是以root身份在执行的 # 查看现有的用户 root@DESKTOP-1217V6I:~# cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin ... # 省略 landscape:x:108:115::/var/lib/landscape:/usr/sbin/nologin p6158:x:1000:1000::/home/p6158:/bin/sh # 更新一个现有用户的密码 root@DESKTOP-1217V6I:~# passwd p6158 New password: Retype new password: passwd: password updated successfully # 创建一个新用户,同时为其创建home文件夹 root@DESKTOP-1217V6I:~# useradd -m p6158 # 创建一个新用户 root@DESKTOP-1217V6I:~# useradd p6158 # 为一个已存在的,没有home文件夹的用户创建home文件夹 root@DESKTOP-1217V6I:/home# mkhomedir_helper p6158 # 查看当前登录中的用户 root@DESKTOP-1217V6I:/home# whoami root # 切换用户,如果是切换到root,可以省略用户名,直接写[su -] # 有时候切换用户需要 root 权限,在前面加上 sudo 就可以了 root@DESKTOP-1217V6I:/home# su - p6158 Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.10.16.3-microsoft-standard-WSL2 x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/pro ... # 省略
登录到新用户之后,你可能会发现命令行有些奇怪(比如tab补全不能用了),可能是因为用的Shell不是常用的bash,此时使用以下命令:
# 检查当前的Shell类型 echo $0 # 启动bash /bin/bash
更多Shell命令、包括如何切换默认Shell,参照这里:Shell
登录到新用户之后,你可能会发现没有sudo权限了,此时参考这里:使用Sudo
AI:在 Linux 上 添加新用户时默认是可以不设置密码的,也就是说,新用户的密码可以为空,但这种做法存在一定的安全风险,尤其是在有 SSH 登录权限的情况下。使用 useradd 添加用户后,不运行 passwd 命令,就不会设置密码,此时用户密码为空,此时 testuser 用户存在,但无法登录(默认大多数 Linux 系统禁用了空密码登录)。
# create user with key (not passwd) root@osaka:~# useradd -m gitu root@osaka:~# cd /home/gitu/ root@osaka:/home/gitu# ls -a . .. .bash_logout .bashrc .profile root@osaka:/home/gitu# mkdir .ssh root@osaka:/home/gitu# cd .ssh/ root@osaka:/home/gitu/.ssh# touch authorized_keys root@osaka:/home/gitu/.ssh# vim authorized_keys root@osaka:/home/gitu/.ssh# cd .. root@osaka:/home/gitu# chown -R gitu:gitu ./.ssh root@osaka:/home/gitu# chmod 600 ./.ssh/authorized_keys root@osaka:/home/gitu# chmod 700 ./.ssh root@osaka:/home/gitu# ls -lha total 24K drwxr-xr-x 3 gitu gitu 4.0K Jul 25 07:01 . drwxr-xr-x 4 root root 4.0K Jul 25 06:54 .. -rw-r--r-- 1 gitu gitu 220 Mar 29 2024 .bash_logout -rw-r--r-- 1 gitu gitu 3.5K Mar 29 2024 .bashrc -rw-r--r-- 1 gitu gitu 807 Mar 29 2024 .profile drwx------ 2 gitu gitu 4.0K Jul 25 07:01 .ssh root@osaka:/home/gitu# ls -lha ./.ssh total 12K drwx------ 2 gitu gitu 4.0K Jul 25 07:01 . drwxr-xr-x 3 gitu gitu 4.0K Jul 25 07:01 .. -rw------- 1 gitu gitu 386 Jul 25 07:01 authorized_keys root@osaka:/home/gitu# exit logout Connection to djwcb.com closed.