首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制su访问

限制su访问
EN

Server Fault用户
提问于 2017-12-26 12:30:08
回答 2查看 1.5K关注 0票数 -4

我在我们的环境中使用rhel7.2,我不希望系统上的任何用户对系统中的任何用户说"su“到"user3和user4".But "user3和user4”可以"su“。

让我用detail.Lets解释一下我的需求--假设我在服务器上有4个用户--比如user1、user2、user3和user4。

假设我用用户1或user2登录到服务器。“我的要求是,如果我使用"user4”或“user4”登录服务器,可以将用户"su“切换到用户1或user2,则不能将用户"su”切换到用户“”user 3“和”user2“user4。

概括起来

以User1身份登录server> su - user3

以User3身份登录server> su - user1

EN

回答 2

Server Fault用户

发布于 2017-12-26 13:51:23

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

为了防止user1做su user3,不要给user1用户3‘S密码。事情就是这么简单。

如果您想要控制用户1‘S的sudo su user3能力,这完全是另一回事,那么在sudoers中不要给他们这种特权。Praveen P在这方面的回答相当不错,尽管你在一条通往失败的捷径上--如果你认为你可以有意义地赋予人们做任何事情的权利,然后去掉几条命令(从我的头顶上,我可以想到五种不同的方式来在sudoers文件(S)的上下文中更改root密码“,他引用了S的话)。一般来说,只给予人们特权去做他们需要做的事情。

票数 6
EN

Server Fault用户

发布于 2017-12-26 12:59:25

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

下面是一个例子

代码语言:javascript
复制
#
# 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来完成这一任务。也就是说,sudo组除了更改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
票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/889648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档