【linux】ubuntu 用户管理

发布于:2025-03-25 ⋅ 阅读:(54) ⋅ 点赞:(0)

目录

一、用户基本命令

1.1 添加新用户

1.2 切换用户

1.3 删除用户

1.4 修改用户密码

1.5 用户组的新建和删除

二、用户相关的文件

三、sudo权限的授权

3.1 sudo权限的授权

3.2 问题:sudo和su命令不能使用。

3.3 可以试试强制切换root。但是需要sudo可以使用。

3.4 忘记root密码:网上找的方法是进入单用户模式:

3.5 认证代理:用户两个终端 进入root


一、用户基本命令

1.1 添加新用户

1. root用户 添加 新用户
adduser  用户名

2. 普通用户添加新用户
sudo adduser 用户名

  查看 /etc/passwd 文件

1.2 切换用户

【用户切换】
    su 用户:家目录不会切换
    su - 用户:家目录会切换
【用户分类】
    超级用户root:UID=0
    系统用户:UID=1~499
    普通用户:UID=500~65534

// 仅切换用户,所在目录不会切换
su 用户名
su root


// 切换用户,并切换到用户的家目录
su - 用户名
su - root
su - zj


//推出当前用户
exit

1.3 删除用户

注意:在某些Linux版本中用户虽然被删除了, 但是它的家目录却没有被删除,需要我们手动将其删除。

# 删除用户, 添加参数 -r 就可以一并删除用户的家目录了
$ sudo userdel 用户名 -r

1.4 修改用户密码

# passwd
# 修改当前用户
$ passwd

# 修改非当前用户密码
$ sudo passwd 用户名

# 修改root
$ sudo passwd root

1.5 用户组的新建和删除

默认情况下, 只要创建新用户就会得到一个同名的用户组, 并且这个用户属于这个组。一般情况下不需要创建新的用户组,如果有需求可以使用 groupadd添加用户组, 使用 groupdel删除用户组。

由于普通用户没有添加删除用户组权限,因此需要在管理员(root)用户下操作,或者在普通用户下借助管理员权限完成该操作。

# 基于普通用户创建新的用户组
$ sudo groupadd 组名

# 基于普通用户删除已经存在的用户组
$ sudo groupdel 组名

二、用户相关的文件

/etc/passwd        用户信息管理
/etc/shadow        用户密码,加密后的        
/etc/sudoers       sudo权限的授权管理
/etc/group         用户组信息管理


三、sudo权限的授权

3.1 sudo权限的授权

编辑/etc/sudoers文件。

编辑方法

  • 推荐使用visudo:自动检查语法错误,防止错误配置导致sudo不可用。
  • 直接编辑(谨慎):需用chmod修改权限,编辑后恢复权限为440。建议先进入root用户。
sudo visudo
// 下面是 /etc/sudoers 文件里,定义的root用户权限
root    ALL=(ALL:ALL) ALL

第一个ALL:表示该规则适用于所有主机。这意味着root用户可以从任何主机登录并行使这些权限。

第二个ALL:出现在括号内,表示root用户可以切换到系统中的任何用户。

第三个ALL:同样出现在括号内,跟在第二个ALL后面,由冒号分隔,表示root用户可以切换到系统中任何用户组。

第四个ALL:表示root用户可以执行系统中的任何命令。

 让普通用户执行命令时想root一样,不需要加sudo。/etc/sudoers 如下配置:

username ALL=(ALL) NOPASSWD: ALL

或者

先切换到root,修改/etc/passwd文件中的
linaro:x:1000:1000:linaro,,,:/home/linaro:/bin/bash

将其改为
linaro:x:0:1000:linaro,,,:/home/linaro:/bin/bash

也就是修改linaro用户的UID为0让其拥有与root用户相同的权限。
修改完后需要重启一下,或者注销当前用户重启登陆一下

3.2 问题:sudo和su命令不能使用。

由于我直接用普通用户加sudo,直接修改了/etc/sudoers的权限为664。并在该文件中添加了普通用户和root一样的权限配置。

由于root用户没提前切换,导致sudo 和 su命令都用不了的情况,root也切换不了。/etc/sudoers 的文件权限也chmod不了。

上面就导致超级用户权限的管理崩溃。因为这个权限要检查/etc/sudoers的权限要是不可修改的。

所以我就想着用其他方法切换到root用户,重新修改/etc/sudoers的文件权限为只读的。

方法1:进入grub界面修改,利用单用户超级权限,修改/etc/sudoers的权限。

方法2:打开两个终端,进行认证代理的机制。

两种方法,下面有详细操作。

3.3 可以试试强制切换root。但是需要sudo可以使用。

如果su不能进入root用户,可以试试下面命令。

sudo su

3.4 忘记root密码:网上找的方法是进入单用户模式:

忘记root用户密码,可以重启设置。以下是详细步骤。

【进入grub页面 修改root密码】
	1.在ubuntu开机进度条的时候,长按 eac\shift\f12. 具体按哪个看进度条下面的提示。
	2.然后回车选择 高级选项ubuntu
	3.e选择(不要按回车) recovery mode
	4.ro recovery nomodeset ----> quiet splash rw init=/bin/bash
	6.ctrl+x 退出
	5.passwd   // 修改root密码 不需要root原始密码。

3.5 认证代理:用户两个终端 进入root

这个是针对 3.2 情况下,sudo和su崩溃,/etc/sudoers权限无法修改,root用户切换不了的情况 的解决办法。

1、打开两个终端。

2、在第一个终端中,获取该shell终端的PID。

echo $$    # 获取当前终端 PID

3、在第二个终端运行以下命令

启动一个认证代理,允许你在第一个终端以超级用户的权限运行命令。这样就可以修改/etc/sudoers的权限为只读的了,进而就可以使用sudo命令了。

pkttyagent --process <PID>        // PID:第一个终端的PID

4、第一个终端修改/etc/sudoers 权限

pkexec chmod 440 /etc/sudoers

修改好/etc/sudoers的权限,那么sudo就可以正常使用了。所以在修改/etc/sudoers权限时,先进入root模式。


网站公告

今日签到

点亮在社区的每一天
去签到