linux禁止普通用户执行su命令

fiy 其他 129

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Linux系统中,普通用户默认是没有权限执行`su`命令切换到其他用户的身份的。然而,有时候我们可能还是希望禁止普通用户执行`su`命令,以增加系统的安全性。下面我将介绍三种方法来禁止普通用户执行`su`命令。

    第一种方法是通过修改`/etc/pam.d/su`文件来实现。可以使用文本编辑器打开该文件并添加一行配置,内容为:`auth requisite pam_wheel.so groups=!wheel`。保存并退出文件后,普通用户再使用`su`命令就会收到一条错误消息,无法切换到其他用户的身份。

    第二种方法是通过修改`/etc/login.defs`文件来实现。可以使用文本编辑器打开该文件并找到`SU_WHEEL_ONLY`这一行,将其改为`yes`。保存并退出文件后,普通用户再使用`su`命令就会收到一条错误消息,无法切换到其他用户的身份。

    第三种方法是通过修改`/etc/sudoers`文件来实现。可以使用`visudo`命令打开该文件,并找到以下行:
    “`
    # Allow members of group sudo to execute any command
    %sudo ALL=(ALL:ALL) ALL
    “`
    在这两行的下面添加一行配置,内容为:`ALL ALL=(ALL) NOPASSWD: /bin/su`。保存并退出文件后,普通用户使用`sudo su`命令切换到其他用户的身份时将不再需要输入密码。

    需要注意的是,在对系统进行修改前,最好先备份相关文件,以防出现不可预料的问题。另外,禁止普通用户执行`su`命令可能会影响一些特定的应用程序需要切换用户的操作,所以在进行上述修改前,请确保你了解系统的需求和相关风险。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux系统中,默认情况下,普通用户是无法执行su命令切换为超级用户(root)的权限。然而,如果需要进一步限制普通用户执行su命令的权限,可以通过以下几种方法来禁止普通用户执行su命令:

    1. 禁止特定用户执行su命令:
    可以通过修改/etc/pam.d/su文件中的配置,来限制特定用户执行su命令。在该文件中,可以使用deny指令指定不允许执行su命令的用户。例如,将以下行添加到文件的末尾:

    “`shell
    # 禁止用户john执行su命令
    deny john
    “`

    保存文件后,用户john将无法通过su命令切换为超级用户。

    2. 禁用su命令的可执行权限:
    可以通过修改su命令的可执行权限,来禁止所有用户执行su命令。使用chmod命令可以更改su命令的可执行权限。例如,使用以下命令禁用su命令的可执行权限:

    “`shell
    sudo chmod 750 /bin/su
    “`

    该命令将su命令的可执行权限设置为750,其中7表示拥有者具有读、写和执行权限,5表示组用户具有读和执行权限,而其他用户没有任何权限。这样一来,只有root用户能够执行su命令。

    3. 使用sudo命令代替su命令:
    可以通过配置sudo命令来限制用户的执行权限。在sudo配置文件(/etc/sudoers)中,可以指定只有特定用户或者用户组可以执行su命令。例如,可以将以下条目添加到sudoers文件中:

    “`shell
    # 允许用户组developers执行su命令
    %developers ALL=(ALL:ALL) /bin/su
    “`

    上述配置允许用户组developers中的所有用户执行su命令,且需要输入管理员密码。

    4. 删除或重命名su命令:
    可以通过删除或者重命名su命令的文件,来禁止所有用户执行su命令。例如,使用以下命令删除su命令的文件:

    “`shell
    sudo rm /bin/su
    “`

    或者,可以使用以下命令重命名su命令的文件:

    “`shell
    sudo mv /bin/su /bin/su.disabled
    “`

    这样一来,所有用户将无法执行su命令。

    5. 使用访问控制列表(ACL):
    可以使用访问控制列表(ACL)来限制特定用户或者用户组执行su命令的权限。ACL允许在文件或目录级别上设置更细粒度的权限控制。使用setfacl命令可以为su命令设置ACL,例如:

    “`shell
    sudo setfacl -m u:jane:— /bin/su
    “`

    该命令将su命令的ACL设置为只有用户jane不能执行su命令。

    总结起来,禁止普通用户执行su命令的方法包括:禁止特定用户执行su命令、禁用su命令的可执行权限、使用sudo命令代替su命令、删除或重命名su命令以及使用访问控制列表(ACL)。通过使用这些方法,可以进一步限制用户的权限,增强系统的安全性。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Linux系统中,su命令用于切换用户身份,一般来说,普通用户是被允许执行su命令的。但是,有时候为了加强系统安全性,管理员可能会禁止普通用户执行su命令,以防止恶意用户获取root权限。下面将介绍一些方法来禁止普通用户执行su命令。

    方法一:限制su命令访问权限

    第一步:查找su命令的路径
    在终端输入以下命令:
    “`
    whereis su
    “`
    会显示su命令的路径,一般在/bin/su或者/usr/bin/su。

    第二步:修改su命令的权限
    在终端输入以下命令(根据实际路径修改):
    “`
    sudo chmod 750 /bin/su
    “`
    这将修改su命令的权限为750,具体含义如下:
    – 所有者(root)有读、写和执行权限;
    – 所属组(root组)只有读和执行权限;
    – 其他用户无权限。

    方法二:修改sudo配置文件

    第一步:编辑sudoers文件
    在终端输入以下命令来编辑sudoers文件:
    “`
    sudo visudo
    “`
    visudo是编辑sudoers文件的推荐方式,它会在保存前检测语法错误。

    第二步:添加配置
    找到如下行:
    “`
    root ALL=(ALL:ALL) ALL
    “`
    在其下面添加以下行:
    “`
    %users ALL=(ALL) /bin/*su
    “`
    这将允许users组的成员通过sudo执行su命令。

    第三步:保存退出
    按Ctrl + X组合键退出,然后输入Y保存更改。

    方法三:修改PAM配置文件

    第一步:编辑pam.d文件
    在终端输入以下命令来编辑pam.d文件:
    “`
    sudo vi /etc/pam.d/su
    “`

    第二步:修改配置
    找到以下行:
    “`
    auth sufficient pam_rootok.so
    “`
    在其后面添加以下行:
    “`
    auth required pam_wheel.so group=wheel
    “`
    这将要求执行su命令的用户必须是wheel组的成员。

    第三步:保存退出
    按Esc键退出编辑模式,然后输入:q保存退出。

    这三种方法中,第一种方法是修改su命令的权限,第二种方法是修改sudoers文件,第三种方法是修改pam.d文件。可以根据实际需求选择其中一种方法来禁止普通用户执行su命令。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部