我正在玩 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 帐户分配密码)。