目录
1. root用户(超级管理员)
1.1 用于账户切换的系统命令——su
1.2 退回上一个用户命令——exit
1.3 普通命令临时授权root身份执行——sudo
1.3.1 为普通用户配置sudo认证
2. 用户/用户组管理
2.1 用户组管理
2.2 用户管理
2.2.1 创建用户:useradd [-g -d] 用户名
2.2.2 删除用户:userdel [-r] 用户名
2.2.3 查看用户所属组:id [用户名]
2.2.4 修改用户所属组:usermod -aG 用户组 用户名
3. 用户管理出现的相关问题解决
3.1 创建用户不显示问题
3.2 su: 警告:无法更改到 /home/test 目录: 没有那个文件或目录
3.3 使用 -m 后删除不掉创建的目录
3.4 Ubuntu不显示用户名,只显示"$“符号,回退键会变为”^H"
3.5 userdel: user dky1 is currently used by process 61754
1. root用户(超级管理员)
无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理。在Linux系统中,拥有最大权限的账户名为:root(超级管理员),而我们平常使用的账户是普通的用户。
root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。
- 使用普通用户在根目录下创建文件夹:
- 切换到root用户后,继续尝试:
普通用户的权限,一般在其home目录内不受限的
一旦出了home目录,大多数地方,普通用户仅有只读和执行权限,无修改权限
1.1 用于账户切换的系统命令——su
功能:用于账户切换的系统
语法:su [-] [用户名]
- -: 符号是可选的,表示是否在切换用户后加载环境变量,建议带上
- 用户名:表示切换的用户,也可以省略,省略表示切换到root
省略用户名:
1.2 退回上一个用户命令——exit
- 切换用户后,可以通过exit命令退回上一个用户
- 也可以使用快捷键:Ctrl+d
- 使用普通用户,切换到其他用户需要输入密码,如切换到root用户
- 使用root用户切换到其他用户,无需密码,可以直接切换
1.3 普通命令临时授权root身份执行——sudo
我们可以通过su命令切换到root得到最大权限,但是不建议长期使用root用户,避免带来系统损伤。
功能:为普通命令授权,临时root身份执行
语法:sudo 其他命令
在其他命令之前,带上sudo,即可为这一条命令临时赋予root授权,但并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证。
1.3.1 为普通用户配置sudo认证
正常情况下,我们使用sudo命令,需要输入密码验证才能正常使用:
如何跳过密码验证这一步呢?切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers,在文件最后添加:
用户名 ALL=(ALL) NOPASSWD:ALL
其中最后NOPASSWD:ALL表示使用sudo命令,不需要输入密码,然后通过低线命令模式输入:wq保存:
切换回普通用户,执行命令,可以看到不需要再输入密码验证:
2. 用户/用户组管理
Linux系统中可以:配置多个用户、配置多个用户组、用户可以加入多个用户组中。
Linux中关于权限的管控级别有2个级别,分别是:
- 针对用户的权限控制
- 针对用户组的权限控制
2.1 用户组管理
以下命令需要root用户执行:
- 创建用户组:groupadd 用户组名
- 删除用户组:groupdel 用户组名
2.2 用户管理
以下命令需要root用户执行:
2.2.1 创建用户:useradd [-g -d] 用户名
- -g:指定用户的组。不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
- -d:指定用户HOME。不指定,HOME目录默认在:/home/用户名
首先,我们现在 /home 下创建一个目录 myuser:
创建一个用户组 mydky:
创建用户,并通过 su 命令切换到用户,通过 pwd 查看路径:
这里出现一个问题Ubuntu不显示用户名,只显示"$“符号,下面3.4小节说解决方法。
完整:
2.2.2 删除用户:userdel [-r] 用户名
- -r:删除用户的HOME目录。不使用-r,删除用户时,HOME目录保留
上面是直接删除dky1,我们可以看见myuser还被保留。
当我们使用 -r 时,首先我们通过useradd - m 创建一个qwer用户:
然后使用userdel -r 我们会发现,创建的用户qwer被删除了:
2.2.3 查看用户所属组:id [用户名]
- 用户名:被查看的用户,如果不提供则查看自身
不提供用户名,查看自身:
使用id 用户名:
2.2.4 修改用户所属组:usermod -aG 用户组 用户名
- 将指定用户加入指定用户组
如下图蓝色部分表示,将用户plm,放到mydky用户组内,可以通过id plm查看其所属的组,如黄色部分:
3. 用户管理出现的相关问题解决
3.1 创建用户不显示问题
需要注意的是,在ubuntu系统中,使用useradd会出现以下这种情况:
我们明明已经创建了用户,并且显示已存在,但是在home目录下是没有显示的,解决方法使用useradd -m来进行实现:
网上找了一下原因,说是因为在/etc/login.defs中的CREATE_HOME被设置为no了。(这里最好还是不要去更改文件了)
通过man useradd文档可以看见-m可以再系统不允许创建主用户目录的情况下创建主用户目录,演示如上图。
3.2 su: 警告:无法更改到 /home/test 目录: 没有那个文件或目录
这里算是上个问题的延伸,当我们使用useradd创建用户时,想要通过:
su -
切换用户会发现:
那是因为我们 /home下根本就不显示 test:
解决方法就是加 -m。
3.3 使用 -m 后删除不掉创建的目录
在使用 -m 解决创建用户不显示的问题后,会发现当你想删除创建的用户时,会发现无法删除了,虽然使用userdel提示test不存在,但是查找会发现其还在home目录下:
这里我们可以使用 rm -rf进行删除:
3.4 Ubuntu不显示用户名,只显示"$“符号,回退键会变为”^H"
这里正常情况下应该是:
但此时确只有$号:
解决方法切换到root账户,输入命令:
vim /etc/passwd
对相关文件进行修改,不过修改前,我们需要先进行一下文件备份,以免出错:
方法一:复制文件
使用 cp 命令复制文件是备份文件的简单方法。例如,您可以使用以下命令将 /etc/passwd 文件复制到当前目录中:
cp /etc/passwd passwd.bak
- /etc/passwd 文件:这个文件包含系统中所有用户的基本信息,如用户名、密码(加密形式)、UID、GID、用户信息和默认的用户目录等。它是一个关键的系统文件
- passwd.bak:这是目标文件的名称,它是 passwd 文件的备份副本,通常会存放在当前工作目录中。
使用如下命令检查是否备份成功:
cat /etc/passwd// 该命令将显示 passwd.bak 文件的内容,其中包含与 /etc/passwd 相同的用户帐户信息。
方法二:创建归档文件
使用 tar 命令创建归档文件是备份多个文件或整个目录的一种简单方法。例如,您可以使用以下命令将 /etc 目录打包成一个压缩文件:
tar -czf etc_backup.tar.gz /etc
方法三:使用版本控制系统
使用版本控制系统(如 Git 或 SVN)来管理文件更改历史记录并创建备份是一种良好的做法。这样可以轻松地跟踪文件更改,并且在需要恢复之前的版本时更加方便。
此时我们可以使用:
vim /etc/passwd
这里需要安装好vim,否则会出现:
可以通过如下命令进行安装:
apt install vim
此时在输入就可以进入:
找到最下方如上图箭头指向,进入插入模式进行修改,修改完如下:
进入底层命令模式保存退出:
如果对于vim相关命令不熟悉可以看:
Linux命令进阶·vi\vim编辑器详细命令介绍_linux实验6:vi 编辑器进阶-CSDN博客
这样在通过su命令进入发现问题解决了:
3.5 userdel: user dky1 is currently used by process 61754
出现上述情况的根本原因在于切换回 root 用户之后,dky1用户还被某个进程占用。
解决方法,再返回前使用:
ctrl+d
把dky1的终端关掉就行了:
如果已经返回直接把终端关掉重开就行了。
Linux命令进阶·vi\vim编辑器详细命令介绍_linux实验6:vi 编辑器进阶-CSDN博客
Linux常用命令详细解析(含完整命令演示过程)_linux常用命令演示-CSDN博客