最近,我们在服务器上安装了 Ubuntu Server,这对我们来说非常新。但是,我们尝试设置一个 apache2 服务器,它确实可以工作。但问题是,由于缺乏权限,我们无法配置 apache 和其他配置文件。几天前,我找到了一个命令,并授予自己访问“/var/www”的权限。但那是我唯一有权限访问的文件夹。我忘了命令是什么,而且我无法使用 root,因为我不知道密码。我不记得我是否尝试过设置任何权限。我是机器上唯一的用户,所以我有管理员权限,但需要 root。所以我需要帮助的是授予自己访问整个服务器的权限。主要是“/etc/apache2”,但整个服务器会更好。无论如何,我如何授予自己访问此权限以及如何启用 root?所有 sudo 命令都告诉我“sudo:必须是 setuid root”。
答案1
sudo 不是你要找的吗?在 Ubuntu 中,当你想要获得 root 权限时,你必须运行“sudo 命令”……或者“sudo su”(还有“sudo -s”,我认为区别在于环境变量,但现在我不记得了)如果你真的想要一个 root 会话。密码是你的用户密码。
尝试检查目录的所有者...如果我没记错的话,在 ubuntu 中,apache 创建了自己的用户和组,并且只能访问它自己的目录。
编辑:我相信修复此问题的唯一方法是使用 Linux Live 光盘启动并在那里安装 Ubuntu 文件系统,以修复 sudo 二进制文件(可能还有 sudoers 文件)的权限和所有者。以下命令应该可以做到:
sudo chown root:root /mnt/yourfs/usr/bin/sudo
sudo chmod 4755 /mnt/yourfs/usr/bin/sudo
sudo chown root:root /mnt/yourfs/etc/sudoers
sudo chmod 440 /mnt/yourfs/etc/sudoers
第一个 chmod 中的前 4 是设置 setuid 特殊权限:http://docs.oracle.com/cd/E19683-01/816-4883/secfile-69/index.html