限制 su 访问

限制 su 访问

我在我们的环境中使用 rhel7.2。我不希望系统上的任何用户“su”到两个特定用户,比如“user3 和 user4”。但“user3 和 user4”可以“su”到系统中的任何用户。

让我详细解释一下我的要求。假设我在服务器上有 4 个用户,分别是用户 1、用户 2、用户 3 和用户 4。

假设我使用用户 1 或用户 2 登录到服务器。“我的要求是它不能将用户“su”切换到用户“用户 3 和用户 4”。但如果我使用“用户 3”或“用户 4”登录服务器,我可以将用户“su”切换到用户 1 或用户 2。

简而言之

以用户 1 身份登录服务器 > su - user3 -------这应该不起作用

以 User3 身份登录服务器 > su - user1 --------这应该可行

答案1

我怀疑您没有问出您想要回答的问题。具体来说,我怀疑您问的是有关如何控制访问的问题sudo su foo;但我会按要求回答这个问题。

为了防止用户1做某事su user3,不要告诉用户1用户3的密码。就这么简单。

如果你想控制 user1 的能力sudo su user3这是完全不同的事情,那么就不要给他们这种特权sudoers。Praveen P 的回答对此非常好,尽管如果你认为你可以有意义地授予人们 sudo 所有权限,那么你就离失败只有一步之遥,然后拿走一些命令(我脑海中浮现的,我能想到五种左右不同的方法来更改 root 的密码,在 sudoers 文件的上下文中,他/她引用了)。通常,只给人们做他们需要做的事情的特权。

答案2

您可以使用visudo它来控制用户访问权限以及他们可以使用哪些功能。

以下是一个例子

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
ubuntu  ALL=/bin/sh,/usr/bin/*,/usr/sbin/*,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/usr/bin/su,!/usr/sbin/visudo, /sbin/*, /bin/*

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL, !/usr/bin/passwd root

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

在上面的配置中,用户ubuntu有限制,sudo组也有限制。

例如,ubuntu可以执行以下操作:

  • 运行命令/bin/sh
  • 运行任意命令/usr/bin/*
  • 运行任意命令/usr/sbin/*
  • 更改任何用户的密码/usr/bin/passwd [A-Za-z]*

ubuntu不能执行以下操作:

  • 更改root密码!/usr/bin/passwd root
  • 成为超级用户!/usr/bin/su
  • visudo自行更新!/usr/sbin/visudo

您也可以这样做groups。IEsudo组可以做任何事情,但不能更改root密码。

更新

如果你真的想尽一切办法阻止某人访问其他用户。我会这么做。

  1. group查找新组的 下一个可用ID
    • getent group使用此命令并找到可用的下一个最大数字组 ID。通常它是您添加的最后一个用户之后的下一个数字。在我的情况下1002,它是我最后添加的用户之后的下一个数字user1:x:1001:
  2. 然后使用下一个可用的 ID 创建一个新组。
    • 就我而言,我做了以下事情。sudo groupadd -g 1002 restricted
  3. 然后更新viduso以添加所需的限制。
    • 就我而言,我在该行后面添加了以下行%sudo
    • %restricted ALL=(ALL:ALL) ALL, !/usr/bin/su, !/bin/su
  4. 最后将用户添加到组中。
    • sudo adduser user1 restricted

相关内容