Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


软件:linux:用户管理

Linux用户管理


# 以下命令是以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
... # 省略

切换Shell

登录到新用户之后,你可能会发现命令行有些奇怪(比如tab补全不能用了),可能是因为用的Shell不是常用的bash,此时使用以下命令:

# 检查当前的Shell类型
echo $0

# 启动bash
/bin/bash

更多Shell命令、包括如何切换默认Shell,参照这里:Shell

sudo权限

登录到新用户之后,你可能会发现没有sudo权限了,此时参考这里:使用Sudo

Misc

AI:在 Linux 上 添加新用户时默认是可以不设置密码的,也就是说,新用户的密码可以为空,但这种做法存在一定的安全风险,尤其是在有 SSH 登录权限的情况下。使用 useradd 添加用户后,不运行 passwd 命令,就不会设置密码,此时用户密码为空,此时 testuser 用户存在,但无法登录(默认大多数 Linux 系统禁用了空密码登录)。

演示:创建新用户,配置SSH密钥

# 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.
/var/www/DokuWikiStick/dokuwiki/data/pages/软件/linux/用户管理.txt · Last modified: 2025/09/20 17:40 by zhonghui