未以 su 身份登录时无法执行二进制文件

未以 su 身份登录时无法执行二进制文件

我正在玩 Linux,并开始使用终端。我试图在文件系统的根目录下创建文件夹,而我的普通用户没有权限这样做。

运行时su root mkdir u01;系统提示我输入凭据,然后终端返回错误“无法执行二进制文件”

如果我运行su root然后mkdir u01,命令就可以正常工作。

有任何想法吗?

我使用的是 Oracle Linux 6.5

答案1

问题在于您拨打的电话su

以另一个用户身份执行命令的正确语法是:

su [username] -c "[command]"

注意命令周围的引号;确保命令的其他参数正确执行很重要。

答案2

总体而言,“普通”用户不应被允许在文件系统的根目录中创建文件或文件夹。允许这样做会导致各种安全问题。

当您运行“su root mkdir u01”时,系统会要求您输入 root 密码。您可能应该运行的是“sudo mkdir u01”,它会要求您输入普通用户密码。请注意,这假定 sudo 已正确配置以允许这样做。

答案3

如果您已sudo正确配置,这是创建该目录的正确方法:

sudo mkdir u01

如果 sudo 由于某种原因不起作用(或者甚至没有安装 - 不太可能,但有可能),您可以使用su命令参数-c,如下所示:

su -c "mkdir u01"

(请注意,命令必须用引号引起来才能正确传递给su)。

sudo使用vs的重要区别su:当提示输入密码时,sudo需要您的用户帐户密码,但su需要 root 帐户密码。在许多 Linux 发行版(尤其是 Ubuntu/Debian 系列)上,root 帐户密码甚至可能从未分配过,因此su可能会失败(除非您事先为 root 帐户分配密码)。

相关内容