linux禁止普通用户执行su命令
-
在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年前 -
在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年前 -
在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年前