首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux 普通用户无法su

基础概念

su 命令用于切换用户身份,允许一个用户以另一个用户的身份运行命令。普通用户通常没有权限切换到 root 用户或其他特权用户,除非他们知道该用户的密码。

相关优势

  • 安全性:限制普通用户使用 su 可以防止未经授权的访问和潜在的安全风险。
  • 权限管理:明确的权限划分有助于维护系统的稳定性和安全性。

类型

  • su -:切换到目标用户并加载其环境变量。
  • su:仅切换用户身份,不加载目标用户的环境变量。

应用场景

  • 系统管理员:用于管理系统和维护任务。
  • 多用户环境:允许用户在必要时切换到其他用户身份执行特定任务。

遇到的问题及原因

普通用户无法使用 su 命令通常是由于以下原因:

  1. 权限限制:系统默认情况下不允许普通用户切换到 root 用户。
  2. PAM 配置:Pluggable Authentication Modules (PAM) 的配置可能限制了 su 命令的使用。
  3. 组策略:某些组策略可能禁止普通用户使用 su

解决方法

方法一:修改 /etc/pam.d/su 文件

编辑 /etc/pam.d/su 文件,注释掉或删除限制普通用户的行。例如:

代码语言:txt
复制
# auth       required   pam_wheel.so use_uid

这行代码表示只有属于 wheel 组的用户才能使用 su

方法二:将用户添加到 wheel

将普通用户添加到 wheel 组,这样他们就可以使用 su 命令了。

代码语言:txt
复制
sudo usermod -aG wheel username

然后重新登录或重启系统以使更改生效。

方法三:修改 /etc/sudoers 文件

使用 visudo 命令编辑 /etc/sudoers 文件,添加允许特定用户使用 su 的规则。例如:

代码语言:txt
复制
username ALL=(ALL) NOPASSWD: /bin/su -

这行代码允许 username 用户在任何主机上无密码切换到任何用户。

示例代码

假设你想允许用户 john 使用 su 命令切换到 root 用户,可以按照以下步骤操作:

  1. 编辑 /etc/pam.d/su 文件
  2. 编辑 /etc/pam.d/su 文件
  3. 注释掉或删除以下行:
  4. 注释掉或删除以下行:
  5. john 添加到 wheel
  6. john 添加到 wheel
  7. 重新登录或重启系统
  8. 重新登录或重启系统

通过这些步骤,john 用户应该能够成功使用 su 命令切换到 root 用户。

希望这些信息对你有所帮助!如果有其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux用户-su命令

Linux是一个多用户多任务操作系统,这意味着它可以同时支持多个用户登录并使用系统。但是我们之前所有的操作都是基于超级管理员root来操作的,但是从Linux设计来说,是不推荐的。...因为root的权限太大,所以才需要普通用户来进行日常运维,那如果普通用户需要做的操作需要root权限的时候又怎么做的,我们将通过以下几个方面来讲解。...1.linux用户 2.linux用户组 3.Linux用户-su命令(本章节) 4.Linux用户-sudo命令 前面讲过,我们使用普通用户运维系统的时候,有些操作是必须通过超级管理员才能完成的,其中一个方式是使用...SU su 是在类 Unix 操作系统(如Linux、BSD等)中用于切换用户的命令。它的主要作用是让当前用户临时切换到另一个用户,可以是超级用户(root)或者系统中的其他用户。...总结 1.一种常见的安全策略是禁止root的ssh登录,然后使用普通用户ssh登录,然后开放su命令切换到root用户下进行对应的操作。在Linux进阶部分会有讲这部分内容。

11000
  • Linux命令su、sudo、sudo su、sudo -i使用和区别

    sudo 与 su 两个命令的最大区别是: sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码。另外一个区别是其默认行为。...su 用以切换成不同的用户的身份 ? 默认只是切换身份,并没有切换环境变量,环境变量依然是普通用户的。...切换用户身份时,用户的环境变量也切换成新用户的环境变量,所以"-"不能省略,不然有些操作无法执行。 su root 输入root密码后切换之root用户但是pwd目录不变 ?...su :切换到某某用户模式,提示输入密码时该密码为切换后账户的密码,用法为“su 账户名称”。如果后面不加账户时系统默认为root账户,密码也为超级账户的密码。没有时间限制。...sudo su 运行sudo命令给su命令提权,运行su命令。要求执行该命令的用户必须在sudoers中才可以。 来自:Linux迷 链接:https://www.linuxmi.com/

    16K10

    linux中su和su -之间你知不道的事

    su 命令用于切换到另一个用户,即更改用户ID。在正常登录会话期间,如果没有执行username例如su -,它默认以root用户身份登录。...$ su rumenz 要注意用户对用户rumenz保持环境deploy 原始登录会话,当前工作目录和可执行文件的路径也保持不变。...当你使用 su -或-l或--login时,它会为你提供一个类似于正常登录时的登录界面。下面的所有命令都是等价的。...$ su - rumenz OR $ su -l rumenz OR $ su --login rumenz 在这种情况下,用户rumenz提供了自己的默认登录环境,包括可执行文件的路径;他还会进入他的默认家目录...重要的是,当你在su没有username,将自动成为超级用户。将获得root的默认环境,包括可执行文件更改的路径。还将进入 root 的家目录: $ su

    2.8K20

    Linux 命令 su 和 sudo 的区别?

    Linux 中新建用户的命令是 useradd ,一般系统中这个命令对应的路径都在 PATH 环境变量里,如果直接输入 useradd 不管用的话,就用绝对路径名的方式:/usr/sbin/useradd...useradd 新建用户命令只有 root 用户才能执行,我们先从普通用户 ubuntu 切换到 root 用户(如何切换后文会介绍): ubuntu@VM-0-14-ubuntu:~$ su - Password...14-ubuntu:~# ls /home test_user ubuntu # 可以看到 /home 目录下面有两个用户了 因为还没有给新建的用户 test_user 设置登录密码,这就导致我们无法从普通用户...3.1 主要用法 我们在 Linux 中经常会碰到 Permission denied 这种情况,比如以 ubuntu 用户的身份查看 /etc/shadow 的内容。...同时我们注意到,这个文件里并没有 test_user 对应的行,这也就解释了为什么 test_user 无法使用 sudo 命令。

    17610

    Linux中su,sudo,sudo su,sudo -i命令的使用和区别

    sudo 与 su 命令的区别: sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码。...更多可参考:Linux 命令 su 和 sudo 的区别 su 切换不同的用户的身份: 默认只是切换身份,并没有切换环境变量,环境变量依然是普通用户的。...切换用户身份时,用户的环境变量也切换成新用户的环境变量,所以"-"不能省略,否则有些操作无法执行。...su root 输入root密码后切换到root用户但是pwd目录不变 su - root 输入root密码后切换到root用户但是pwd目录/root sudo 命令: sudo -i root 与...su : 切换到某某用户模式,提示输入密码时该密码为切换后账户的密码,用法为“su 账户名称”。如果后面不加账户时系统默认为root 账户,密码也为超级账户的密码,没有时间限制。

    10K20

    Linux 命令 su 和 sudo 的区别

    Linux 中新建用户的命令是 useradd ,一般系统中这个命令对应的路径都在 PATH 环境变量里,如果直接输入 useradd 不管用的话,就用绝对路径名的方式:/usr/sbin/useradd...useradd 新建用户命令只有 root 用户才能执行,我们先从普通用户 ubuntu 切换到 root 用户(如何切换后文会介绍): ubuntu@VM-0-14-ubuntu:~$ su - Password...ubuntu # 可以看到 /home 目录下面有两个用户了 因为还没有给新建的用户 test_user 设置登录密码,这就导致我们无法从普通用户...3.1 主要用法 我们在 Linux 中经常会碰到 Permission denied 这种情况,比如以 ubuntu 用户的身份查看 /etc/shadow 的内容。...同时我们注意到,这个文件里并没有 test_user 对应的行,这也就解释了为什么 test_user 无法使用 sudo 命令。

    3.7K20

    Linux 命令 su 和 sudo 的区别

    useradd 新建用户命令只有 root 用户才能执行,我们先从普通用户 ubuntu 切换到 root 用户(如何切换后文会介绍): ubuntu@VM-0-14-ubuntu:~$ su - Password...ubuntu # 可以看到 /home 目录下面有两个用户了 因为还没有给新建的用户 test_user 设置登录密码,这就导致我们无法从普通用户...This incident will be reported. $ 我们会看到倒数第二行中的错误提示信息,我们无法查看 /etc/shadow 的内容,这是为什么?...同时我们注意到,这个文件里并没有 test_user 对应的行,这也就解释了为什么 test_user 无法使用 sudo 命令。...References https://www.rootusers.com/the-difference-between-su-and-sudo-commands-in-linux/ 《鸟哥的 Linux

    4.3K30

    Linux 命令 su 和 sudo 的区别?

    useradd 新建用户命令只有 root 用户才能执行,我们先从普通用户 ubuntu 切换到 root 用户(如何切换后文会介绍): ubuntu@VM-0-14-ubuntu:~$ su - Password...ubuntu # 可以看到 /home 目录下面有两个用户了 因为还没有给新建的用户 test_user 设置登录密码,这就导致我们无法从普通用户...This incident will be reported. $ 我们会看到倒数第二行中的错误提示信息,我们无法查看 /etc/shadow 的内容,这是为什么?...同时我们注意到,这个文件里并没有 test_user 对应的行,这也就解释了为什么 test_user 无法使用 sudo 命令。...References https://www.rootusers.com/the-difference-between-su-and-sudo-commands-in-linux/ 《鸟哥的 Linux

    5.2K30

    Linux命令(17)——su与sudo命令

    1.su命令 1.1作用 su用于临时切换身份到另一个指定的用户,未指定用户名默认为root。...使用su切换用户身份后,默认情况下不改变当前工作目录,但会改变“HOME”、“SHELL”、“USER”、“LOGNAME”等shell的环境变量。...sudoers的askpass选项来指定; -b(background):把sudo指令所要运行的指令放到后台运行; -H(Home):设置用户的主目录 -l:显示通过sudo允许当前用户执行的指令和无法执行的指令...3.su和sudo命令的区别 (1)二者功能不同 su用来长时间切换用户,常见用法是su [username],未指定username默认切换至root。...首先超级用户将普通用户的名字、可以执行的特定命令、按照哪种用户或用户组的身份执行等信息,登记在特殊的文件中(通常是/etc/sudoers),即完成对该用户的授权(此时该用户称为“sudoer”)[1]

    4.3K30

    Linux普通用户使用Docker

    简介 Docker 是一款开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 操作系统的机器上,也可以实现虚拟化。...不过,对于不那么要求安全性的场景,或者服务器上的部分普通用户值得信赖,能安全使用其被赋予的权限,则可以考虑给这部分用户使用 Docker 的权限。...普通用户使用 Docker 3.1 问题 普通用户直接使用 Docker 会报错权限不足: docker: Got permission denied while trying to connect to...如果需要让普通用户在 Docker 中也能使用显卡,则需要进一步配置,具体参见 Nvidia 提供的官方指导。...附录 参考资料: Install Docker Engine Post-installation steps for Linux NVIDIA Cloud Native Documentation non-root

    7.5K20

    linux下su和sudo命令如何使用?

    今天这篇我们来学习和了解“linux下su和sudo命令如何使用?”,下文的讲解详细,步骤过程清晰,对大家进一步学习和理解“linux下su和sudo命令如何使用?”有一定的帮助。...解决办法无法有两个,一是退出beinan用户,重新以root用户登录,但这种办法并不是最好的;二是我们没有必要退出beinan用户,可以用su来切换到root下进行添加用户的工作,等任务完成后再退出root...而普通用户切换到其它任何用户都需要密码验证;   2、su 的用法:   su [OPTION选项参数] [用户]   -, -l, ——login 登录并改变到所切换的用户环境;   -c, ——commmand...工具在多人参与的系统管理中,并不是最好的选择,su只适用于一两个人参与管理的系统,毕竟su并不能让普通用户受限的使用;超级用户root密码应该掌握在少数用户手中,这绝对是真理!...关于“linux下su和sudo命令如何使用?”就介绍到这了,如果大家觉得不错可以参考了解看看。

    3.1K20

    面试:说说Linux 命令 su 和 sudo 的区别?

    useradd 新建用户命令只有 root 用户才能执行,我们先从普通用户 ubuntu 切换到 root 用户(如何切换后文会介绍): ubuntu@VM-0-14-ubuntu:~$ su - Password...  ubuntu                                 # 可以看到 /home 目录下面有两个用户了 因为还没有给新建的用户 test_user 设置登录密码,这就导致我们无法从普通用户...This incident will be reported. $ 我们会看到倒数第二行中的错误提示信息,我们无法查看 /etc/shadow 的内容,这是为什么?...同时我们注意到,这个文件里并没有 test_user 对应的行,这也就解释了为什么 test_user 无法使用 sudo 命令。...References https://www.rootusers.com/the-difference-between-su-and-sudo-commands-in-linux/ 《鸟哥的 Linux

    2.4K40

    Linux禁止非WHEEL用户使用SU命令 原

    但是,为了更进一步加强系统的安全性,有必要建立一个管理员的 组,只允许这个组的用户来执行“su -”命令登录为root用户,而让其他组的用户即使执行“su -”、输入了正确的root密码,也无法登录为root...在UNIX和Linux下,这个组的名称通常为“wheel”。...,可以切换 [root@db01 ~]# usermod -G wheel woo ← 将普通用户woo加在管理员组wheel组中 [root@db01 ~]# su - woo [woo@db01...~]$ su - root ← 这时候我们看到是可以切换了 Password: [root@db01 ~]# 二、添加用户到管理员,禁止普通用户su到root...6、添加用户,并加入管理员组,禁止普通用户su到root,以配合之后安装OpenSSH/OpenSSL提升远程管理安全 [root@db01 ~]# useradd admin [root@db01

    5.8K51
    领券