命令提示符
cnplaman@pla:~$
username @ hostname : workdirectory
[]查看当前命令提示符
用户类型
1. 超级用户
. root
. 权限最大,用于管理和维护系统
. 安全起见,不推荐使用该用户登陆系统
2. 标准用户
. home家里的用户,由系统创建
3. sudo用户
. substitute user
. 替代用户,允许普通用户替代超级用户root执行某些操作
. 使用时必须先输入密码;只有5分钟的有效期,过期则需要重新输入密码
4. 系统用户
. 为了维护系统正常运行而由系统自动创建的用户
增加用户
adduser user_name 增加新用户
adduser -g group_name user_name 增加新用户并指定组
. 只有root或具备sudo权限的用户才能创建用户
. 用户创建时,会创建同名的用户组,该用户组是用户默认的用户组;也可以创建时指定用户组
. 每个用户都在/etc/home下有对应的家目录
. 一般情况下,家目录和用户名保持一致;也可以创建的时候使用-d指定额外的家目录名字,但是不推荐
. 创建的提示,会设置密码和用户基本信息;对应的用户信息位于/etc/passwd;说是密码,其实是看不到密码信息的
cnplaman@pla:~/Desktop$ sudo adduser glboy
Adding user `glboy' ...
Adding new group `glboy' (1002) ...
Adding new user `glboy' (1002) with group `glboy' ...
Creating home directory `/home/glboy' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for glboy
Enter the new value, or press ENTER for the default
	Full Name []: 
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y
cnplaman@pla:~/Desktop$ ls /home
cnplaman  glboy  plaman
删除用户
. 只有root或具备sudo权限的用户才能删除用户
. 默认保留用户目录和用户拥有的文件;[]为什么?
. 使用--remove-all-files就不需要指定--remove-home
--remove-home 删除用户的家目录
--remove-all-files 删除用户所拥有的文件
--group 删除组
root@pla:/home/cnplaman# deluser --remove-all-files glboy
Looking for files to backup/remove ...
...
Removing files ...
Removing user `glboy' ...
Warning: group `glboy' has no more members.
Done.
root@pla:/home/cnplaman# id glboy
id: ‘glboy’: no such user
root@pla:/home/cnplaman# ls /home/
cnplaman  plaman
[]常见错误提示
. Only root may remove a user or group from the system.:非root用户不能删除
. superman is not in the sudoers file. This incident will be reported.:非sudo权限用户不能删除
. user stu20221001 is currently used by process 32675:用户还在系统进程中,应退出当前用户状态,返回到root或具有sudo权限的用户再删除;如果还是删除不了,说明利用用户切换命令登陆过该用户。切换到该用户,退出登陆log out,再使用root或具备sudo权限的用户删除
修改用户
查看用户
who 查看当前登陆的所有用户[0表示本机用户,其它为用户对应IP地址]
whoami 查看当前登陆的用户
id [username] 查看用户UID和GID;如果不指定用户,则查看当前用户
cnplaman@pla:~$ who
cnplaman tty2         2022-12-24 09:32 (tty2)
cnplaman@pla:~$ whoami 
cnplaman
cnplaman@pla:~$ id
uid=1000(cnplaman) gid=1000(cnplaman) groups=1000(cnplaman),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),122(lpadmin),134(lxd),135(sambashare)
cnplaman@pla:~$ id glboy
uid=1002(glboy) gid=1002(glboy) groups=1002(glboy)                       
cnplaman@pla:~/Desktop$ id glpla
id: ‘glpla’: no such user
[]查看所有用户
cnplaman@pla:~/Desktop$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
...
cnplaman:x:1000:1000:cnplaman,,,:/home/cnplaman:/bin/bash
plaman:x:1001:1001:,,,:/home/plaman:/bin/bash
glboy:x:1002:1002:,,,:/home/glboy:/bin/bash
[]如果whoami拆开为who am i执行会如何?
. 要使用系统,必须是合法用户;每个用户拥有的权限不同;为了高效管理用户[权限],通常将用户划分到不同的组
. 系统的组信息存放于etc/group目录
groups 查看组
groupadd 添加组
usermod 修改组
groupdel 删除组
chgrp 修改组
查看组 groups
. 查看当前/其它用户所属组;通常不至一个
[]查看当前用户所属组:当前用户具有sudo权限
cnplaman@pla:~/Desktop$ groups
cnplaman adm cdrom sudo dip plugdev lpadmin lxd sambashare
[]查看当前用户所属组:当前用户不具有sudo权限
bt@pla:/home/cnplaman/Desktop$ groups
bt
[]查看其它用户所属组
cnplaman@pla:~/Desktop$ groups bt
bt : bt
添加组 groupadd
. root或sudo权限才可以
[]创建web组
nplaman@pla:~/Desktop$ sudo groupadd web
...
web:x:1003:
修改用户组 usermod
. 修改用户所在组
. 指定的用户组必须存在,否则:usermod: group 'xxx' does not exist
-g 改变用户primary group组
-G 添加多个组;以,区分
用户切换
su username
. su:switch user
. 换个身份,默认还在当前目录
. 切换用户需要提供对应用户的密码
. 参数-表示同时切换至用户家目录;不带用户名,则切换到root[不推荐]
. 使用exit命令返回上一次用户;类似套娃;最外层用户使用exit将退出终端
cnplaman@pla:~/Desktop$ su bt
Password: 
bt@pla:/home/cnplaman/Desktop$ exit
exit
cnplaman@pla:~/Desktop$ su - bt
Password: 
bt@pla:~$ 
设置用户密码
passwd username
. 设置其它用户密码需要sudo权限或更高级权限root
. 密码长度原则上要求不少于8位;可以不用理会
. 密码不能同旧密码相同:BAD PASSWORD: The password is the same as the old one
. 安全起见,root没有指定密码;每次开机都有一个随机密码;也不建议用户使用root登陆系统;可以通过sudo设置root密码
[]设置root密码
nplaman@pla:~/Desktop$ sudo passwd
[sudo] password for cnplaman: 
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: password updated successfully
[]设置自己密码
cnplaman@pla:~$ passwd cnplaman
Changing password for cnplaman.
Current password: 
New password: 
Retype new password: 
passwd: password updated successfully
[]设置其它用户密码
cnplaman@pla:~$ passwd plaman
passwd: You may not view or modify password information for plaman.
cnplaman@pla:~$ sudo passwd plaman
[sudo] password for cnplaman: 
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: password updated successfully
一句话要点
. 用户信息在/etc/passwd
. 组信息在/etc/group