如何从 root 手中夺取所有权或获得管理员权限?

Tho*_*s S 5 permissions

我从 Win 3.11 开始使用 Windows,并且只在 Linux/Ubuntu 上使用了大约三个小时。我知道 Linux 上的处理方式不同,我不希望它像 Windows 一样直观和用户友好,所以我准备好在路上遇到一些颠簸。

迁移到新的 Windows 版本时,我做的第一件事是安装磁盘映像软件,因为在熟悉新操作系统时,我总是设法搞砸了一些事情,然后很高兴能够重新安装系统分钟而不是小时。这也是为什么我总是非常注重将操作系统和我的文档和数据分开在两个不同的分区上的原因。

我在一个专用硬盘上安装了 64 位 Ubuntu,有一个 8GB 的​​ SWAP 分区,一个 20GB 的 / 分区,其余的分配给我命名为 /D-Drive 的一个用于文档、数据和磁盘映像的分区。安装后,我从软件中心安装了一个名为 Partition Image 的应用程序,然后我撞到了砖墙!

问题是我无法访问我的 D 驱动器,因为出于某种原因它属于 root 而我无法运行 Partition Image,因为出于某种原因它也属于 root(我没有以 root 身份下载它)。在 Windows 7 中,我只需右键单击并“以管理员身份运行”或授予我的用户帐户管理员权限,但我无法弄清楚如何在 Ubuntu 中执行任何操作。

我如何解决这个烦人的根本问题并获得我的 PC 的所有权?我可以为我的用户帐户授予 root 权限还是可以接管 root 帐户作为我的主要登录名?

请记住,我对 Linux 一无所知,所以我需要一步一步的描述。

Eli*_*gan 1

您可能需要更改/D-drive的所有权,并且可能需要更改其权限。具体来说,您需要做什么取决于您想要实现的目标:

  • 如果您想使用/D-drive为一个用户(不是root)安装的分区来存储数据,只需非递归地 获取安装点的所有权(在安装驱动器时执行此操作

    sudo chown $USER:$USER
    
    Run Code Online (Sandbox Code Playgroud)

    (如果您没有以要授予此功能的用户身份登录,则必须将每个实例替换$USER为用户名。否则,该命令可以逐字运行,因为$USER环境变量将扩展为当前用户的用户名。)

    chown 不带标志运行-R(即非递归)的原因是:

    1. 大概您还没有在 中放入任何文件/D-drive,因此您不需要更改其中文件的所有权。正确设置所有权后,您将能够将文件放入其中,在那里创建的文件将具有这些默认权限,并且在那里移动或复制的文件(通常)将具有原始文件的权限。
    2. /D-drive将开始包含一个名为 的文件夹lost+found。该文件夹应保留在原来的位置,任何人都root不能删除它,任何人都root不能查看它的内部。这用于存储fsck运行时恢复的数据(可以自动或手动发生)。任何文件(或任何文件的一部分)都可能最终位于其中。在某些时候,您可能想要创建一些某些用户无法读取的文件。所以lost+found应该保留其默认的所有权和权限
  • 如果您希望多个用户能够创建、删除和修改内部文件/D-drive包括其他此类用户写入的文件,那么您应该:

    1. 创建一个群组。
    2. 将您希望拥有此能力的用户放入组中。
    3. 使这个新组成为 的组所有者/D-drive
    4. 设置权限以便/D-drive
      • 这个新团体的成员对其拥有完全控制权。
      • 默认情况下,在其中创建的任何文件都将归该新组所有,而不是归其创建者的主要组所有。(当应用于目录时,setgid 位具有此效果。)

    假设您决定调用该组team-d,以下是执行所有这些操作的命令:

    1. sudo groupadd team-d
    2. sudo usermod -a -G team-d username(为组中的每个用户运行此命令)
    3. sudo chgrp team-d /D-drive
    4. sudo chmod g+rws /D-drive
  • 如果您希望多个用户能够将他们的文件放入/D-drive,并且能够修改和删除它们,不能对彼此的文件具有相同的能力,那么您应该:

    1. 创建一个群组。
    2. 将您希望能够存储文件的用户放入/D-drive新组中。
    3. 使这个新组成为 的组所有者D-drive
    4. 设置权限以便D-drive
      • 新组的成员可以访问它,查看里面的内容,并在那里创建自己的文件。
      • 新组的成员无法重命名或删除该组其他成员创建的文件(即使其成为粘性目录)。

    像以前一样调用组team-d,以下是完成此操作的命令:

    1. sudo groupadd team-d
    2. sudo usermod -a -G team-d username(为组中的每个用户运行此命令)
    3. sudo chgrp team-d /D-drive
    4. sudo chmod +t /D-drive && sudo chmod g+rwx /D-drive
  • 您可能希望所有用户都能够将文件放入 中/D-drive,因为这将包括不代表真实人员且仅存在的用户帐户,以便某些系统服务可以以较低的能力运行(出于安全原因)。如果您查看该文件/etc/passwd,您将看到类似mailwww-data、 和 的用户backup

    但是,如果您坚持允许所有用户访问此目录(但不允许他们重命名或删除彼此的文件),您可以通过向“其他人”(而不是所有者或组所有者)授予写入权限并使其粘性目录:

    sudo chmod o+rwxt /D-drive
    
    Run Code Online (Sandbox Code Playgroud)