Linux系统:关于Su的版本 (linux系统版本su)
Linux系统中包含了很多常用的工具和命令,其中Su作为一种常用的命令行工具,被广泛应用于管理员和普通用户间的权限切换。不过,随着Linux系统的发展和更新,Su也在不断地演变和改进,衍生出不同版本的Su。本文将对Su的版本及其特点进行介绍。 1. 原生的Su 原生的Su是Linux系统自带的工具,并且是最早期的版本。它可以使管理员以另一个用户身份登录,并获取目标用户的权限。在使用原生的Su时,管理员需要输入目标用户的密码才能登录。这种版本的Su没有特别明显的缺点,被广泛使用。 2. PAM(Pluggable Authentication Modules)Su PAM Su是在原生Su的基础上开发的一种版本,它结合了PAM模块,可以让管理员不仅仅以目标用户的身份登录,还可以根据需要进行其他操作。比如,管理员可以使用PAM验证模块获取目标用户的认证信息,而不用每次手动输入密码。此外,PAM Su还可以将用户登录行为写入日志文件,以便于管理员进行审计。 3. Sudo(SuperUser Do) Sudo是 Su 的一个开源替代品,也是最广泛使用的一个版本。与Su不同,Sudo可以提供更加细致的授权管理,而不是仅仅允许管理员以目标用户的身份登录。Sudo允许管理员仅仅执行特定的命令,避免了管理员意外的破坏。此外,Sudo还允许管理员隔离权限,例如可以让普通用户执行root权限下的某个命令,但不允许用户切换到root用户来执行操作。 4. SuExec SuExec是一种用于Web服务器中的Su版本,它可以实现不需要管理员介入的用户权限切换。SuExec允许许多用户在同一个Web服务器中运行自己的Web站点,并允许各个站点使用不同的权限运行。此外,SuExec还提供了一个更加安全的,不允许普通用户使用root权限执行的管理方案。 Su是Linux系统中的一个非常重要的工具。不同版本的Su有着不同的兼容性和功能特点,管理员可以根据自己的需求选择相应的版本。在使用Su时,管理员需要注意权限切换的合理性和安全性,避免意外的操作和权限泄露。 相关问题拓展阅读: 关于Linux系统上 SU命令的几点安全建议 linux su和sudo命令的区别 关于Linux系统上 SU命令的几点安全建议 需要密码才可以执行 指定需要su的用户 首先我们看su在man 帮助页中的解释su – run a shell with substitute userand group IDs ,也就是说通过su我们不用提供用户和组名就可以启动一个shell程序。 su 是一个二进制的可执行文件,命令所在的文件路睁蠢径是/bin/su ,下面是通过命令行查询su文件的类型及所在路径: 例一: islab$ which su /bin/su 例二: islab$ file /bin/悉链陪su /bin/su : setuid ELF 32-bit LSB shared object, Intel 80386, version1 (SYSV), for GNU/Linux 2.6.9, stripped 例三: islab$ll /bin/su -rwsr-xr-x 1 root rootJan/bin/su 例三和例二中我们可以看到su是一个setuid程序(setuid位可以使用chmodu+s 进行设置,如ls显示su文件所有者属性起用了setuid位),在这种情况下,su可以获得比其所有者更高的权限,也就是说su运行的时候,您的权限会被提升,将与root的权限等同。 例三中我们可以看到文件的类型是ELF 32-bit LSB shared object(设置了setuid位),也就是说程序需要libc这样的函数库,也需要使用了ELF 解释器,并遵守LSB 规范。 问一:普通用户可以从其它机器拷贝su命令。 答:他们可以从其它机器拷贝su命令,但是他们将不能对su进行正确的权限设置比如chown root和chmod u+s 等等。所以拷贝过来su不能够正常工作。 问二:如何防止普通用户执行su命令。 答: 1 )。你可以建立一个专门的组,只有组成员才能执行su命令 islab# groupadd wheel islab# useradd wheel islab# chown root :mysql /bin/bash islab# chmod 4750 /bin/su 2 )。只有root用户才能执行su命令。 islab# chmod 4700 /bin/su 3 )。通过pam 库唤源实现只有wheel 组成员才能执行su命令,下面例子中增加了zhaoke帐号到wheel...