我在一台固定 PC 上使用 Ubuntu 9.10。我有一个 1 TB 的辅助硬盘,带有一个大逻辑分区(当前格式化为 ext4)。它被挂载为 /usr3,选项如下用户,执行者在 /etc/fstab 中。
我正在进行高速成像实验。好吧,只有 260fps,但这仍然会创建许多单独的文件,因为每个帧都保存为一个 png 文件。除了我之外,没有人使用这个静止图像,这就是为什么 ubuntu 提出的默认安全模型没有必要的原因。
使 /usr3 的全部内容在所有系统上都可用的最佳方法是什么。如果我需要将硬盘移动到另一台 Ubuntu 9.x 或 10.x 机器?
使用 Firewire 相机抓取图像时,我在 sudo 模式下使用自制的抓取软件实用程序(基于控制台)。这会创建所有文件,所有文件所有者和组均为 root。
我已作为用户登录外援通常,当我必须将文件提供给 otb 时,我会执行以下操作:
sudo chown otb-R * sudo chgrp otb-R * sudo chmod a=rwx-R *
这需要一些时间,因为磁盘现在包含约 200000 个单独的文件。
在此之后,如果我将硬盘移到另一个系统,Linux 会如何表现?外援是否还可用?如果不使用 sudo,是否仍可以访问这些文件?
答案1
首先,可以合并前两个命令:
sudo chown otb:otb -R *
但不确定这是否会运行得更快。
其次,由于您不关心此驱动器的安全性,因此您应该在挂载驱动器时指定一个 umask,使所有文件在写入时都变为 777:
user,exec,umask=000
这可能有助于完全避免运行第三个命令的需要。
此外,由于 umask 选项似乎不适用于所有文件系统类型,因此还有另一种方法可以设置在 sudo 中创建的文件的默认文件权限。这是通过编辑 /etc/sudoers 来实现的。
从 开始man sudoers
,选项“umask_override”似乎允许这样做。
umask_override :如果设置,sudo 将按照 sudoers 指定的方式设置 umask,无需修改。这样就可以在 sudoers 中指定比用户自己的 umask 更宽松的 umask,并与历史行为相匹配。如果未设置 umask_override,sudo 将把 umask 设置为用户的 umask 和 sudoers 中指定的 umask 的并集。此标志默认为关闭。
不过,我从未使用过此选项,因此请谨慎操作。 编辑 /etc/sudoers 可能很危险,如果操作错误则需要重建系统(或实时 CD 干预)。
答案2
您将需要拥有相同的用户uid
(或任何用户名)才能无需在其他系统上访问文件。gid
otb
sudo
UID(用户 ID)和 GID(组 ID)都是分配给用户和组的唯一数字系统。对于普通用户,它们从 1001 开始。
确保相同权限的最简单方法:在文件中/etc/passwd
,对于任何用户条目,UID 和 GID 分别是第三和第四个字段。在第二个系统上,您可以使用终端命令创建用户,useradd -u UID -g GID username
其中 UID 和 GID 与第一个系统中用户的 UID 和 GID 相同otb
。在发出命令之前,请确保相同的 UID 尚未被使用。
我尝试从 GUI 系统 -> 管理 -> 用户和组进行同步,但找不到方法。
如果您有更多系统,则跨系统保留相同的/etc/passwd
文件或使用 NIS、LDAP 等解决方案将使这个过程更加顺畅。
有关更多详细信息man useradd
,请参阅man usermod
,如果您需要man userdel
从终端删除任何用户。