我需要在鹦鹉螺中隐藏NTFS分区。我该如何实现?
有什么工具可以做到这一点吗?
以及如何在ubuntu中隐藏文件(。运算符除外)
我需要在鹦鹉螺中隐藏NTFS分区。我该如何实现?
有什么工具可以做到这一点吗?
以及如何在ubuntu中隐藏文件(。运算符除外)
Answers:
在Ubuntu 12.10及更高版本中,有一个名为Disks的实用程序,该实用程序显示所有可用磁盘,并允许修改每个分区的安装选项。
在各种选项中,您可以决定是否在引导时挂载该分区,以及该分区是否出现在用户界面中。需要管理员权限才能应用更改。
Home
+ Other locations
下,This computer
这就是所谓Volume
。当我单击它时,会弹出窗口,要求我提供安装驱动器的凭据。是否有可能使它不显示在other locations
?
本指南可能会为您提供帮助。
您如何隐藏磁盘以防止它们显示在Nautilus中?
首先,您必须知道要隐藏哪些磁盘和/或分区。根据我的观察,Nautilus会通过标签展示这些设备。如果没有标签,则设备将与磁盘/分区大小相关联。
看下面的图片。红色框中的标签没有标签。文件系统始终是当前
/root
分区,而45 GB文件系统是没有标签的分区。在此示例中,它是/root
我的Ubuntu 10.10 的分区(我在Natty Narwhal上运行,但保留了Maverick Meerkat作为各种备份)。另外两个– Lucid Lynx和Karmic Koala –是我的2个NTFS分区的标签。如果您不熟悉Linux如何引用这些设备,则标签非常重要。在Windows中,无论是磁盘还是分区,都用字母C或D来调用它们,依此类推。Linux具有更具体的命名系统。通常是sdaX或hdbY,其中X和Y分别是sda或hdb驱动器上的分区号。因此,如果sda驱动器上有3个分区,则将有sda1,sda2和sda3。Windows更可能将其称为C,D和E。
现在挂载所有驱动器和/或分区。你知道怎么做,不是吗?单击Nautilus中的名称,它将为您安装。我建议您卸下并卸下所有可移动驱动器,以免造成混淆。
安装完所有组件后,通过运行gnome-terminal打开终端。如果您使用的是Natty,则只需在破折号中键入该字符;如果您使用的是传统的Ubuntu桌面,则可以在菜单中找到该字符。挂载全部是查找设备名称的更简便方法的原因,是因为mount确实会告诉您设备X挂载在名称为Z的目录Y上。容易吗?您可以查看
/proc/partitions
或,/dev/disks/
但只会让您感到困惑。一次运行命令安装。在输出中,通过其关联的标签记录驱动器或分区的名称。它看起来像下面的图片。
在上面的第二个图像上,您会注意到没有引用已安装的45 GB文件系统。如前所述,这是因为后者没有标签,而且uuid太长,在Nautilus上看起来很可怕。基础系统将通过其uuid名称将其安装在/ media上,其余的将通过其标签安装。
由于45 GB的文件系统(
/dev/sdb2
)实际上在Nautilus上没有显示任何业务,因此我想隐藏它。我还想隐藏Karmic Koala(/dev/sda1
),因为它是我的Windows C分区。天堂禁止我意外地从这些分区中的任何一个删除文件。现在隐藏开始了!但在此之前,请确保您知道要隐藏哪些分区(如我上面如何识别它们)。您还可以使用命令列出所有分区,
sudo fdisk -l
以更快地识别它们。我要躲在sda1
并sdb2
在接下来的步骤,但你应该不是代替你的分区名称。
99-hide-disks.rules
使用您喜欢的编辑器创建一个名为的文件。这个文件是我们用来告诉Linux内核隐藏设备的规则的地方。我不会解释为什么文件名听起来很滑稽。如果我不会太懒惰地解释它,那将是这里另一篇文章的主题。将下面的文本放在您刚刚创建的文件中,但请确保更改适用于您的案例的设备名称。在我的我想隐藏sda1和sdb2。
通用格式为(区分大小写):
KERNEL=="device name", ENV{UDISKS_PRESENTATION_HIDE}="1"
就我而言,我将在99-hide-disks.rules中编写以下内容:
KERNEL=="sda1", ENV{UDISKS_PRESENTATION_HIDE}="1" KERNEL=="sdb2", ENV{UDISKS_PRESENTATION_HIDE}="1"
完成后不要忘记保存。
现在,
/etc/udev/rules.d/
使用以下命令将文件复制到:sudo cp 99-hide-disks.rules /etc/udev/rules.d/
现在我们完成了。这将立即被系统注意到,因为udev(用于Linux的设备管理)通过inotify(这是文件系统事件通知程序服务)寻找对rules文件夹的更改。但是,只有在重新启动后才能应用。可以使用udevadm命令触发新规则,但是我还没有真正测试过它。重新启动Ubuntu,注意在Nautilus中分区不再可见。
编辑:
至少对于Ubuntu 12.10,以上行不再起作用,应改为使用以下格式:
KERNEL=="sda1", ENV{UDISKS_IGNORE}="1" KERNEL=="sdb2", ENV{UDISKS_IGNORE}="1"
KERNEL==”sda1″
...答案现在已更改)。它适用于普通的ASCII引号。
sudo udevadm trigger
将更新设备。无需重启nautilus
fdisk
查找设备的标识符,而不是首先安装它,mount
再次运行并卸载。=>快得多:)
UDISKS_IGNORE
(我在Xubuntu 13.10上),我只在这里找到它!
Tachyons提供了一个很好的答案,该答案显示了如何为udisks应用程序(例如Dolphin)隐藏分区。但是,依靠固定的分区名称很容易出错,最好使用分区唯一的UUID。该答案已在Kubuntu 13.10中进行了测试。
为此,首先必须找到一个UUID。这可以通过多种方式找到,其中一种是通过运行命令udisksctl info -b /dev/sda1
(/dev/sda1
当然是您的分区)。该UUID在IdUUID下可见,并且该分区未标记为隐藏(忽略):
/ org / freedesktop / UDisks2 / block_devices / sda1: org.freedesktop.UDisks2.Block: 配置:[] CryptoBackingDevice:“ /” 设备:/ dev / sda1 设备编号:2049 云端硬盘:“ / org / freedesktop / UDisks2 / drives / ...” HintAuto:否 HintIconName: 提示: 假 提示名称: HintPartitionable:true HintSymbolicIconName: 提示系统:true ID:BY-ID-ATA -...-第1部分 IdLabel:系统保留 IdType:ntfs IDUUID: A10CDE7682786D73 IdUsage:文件系统 IdVersion: MDRaid:“ /” MDRaidMember:“ /” PreferredDevice:/ dev / sda1 ReadOnly:错误 大小:104857600 符号链接:/dev/disk/by-id/ata-...-part1 /dev/disk/by-id/wwn-...-part1 / dev / disk /按标签/ SystemReserved / dev / disk / by-uuid / A10CDE7682786D73
现在,为了隐藏此分区,请创建一个通过此UUID匹配该分区的udev规则,并将其从udisk中隐藏。例如,如果您要隐藏上面的NTFS分区(带有UUID A10CDE7682786D73)和另一个ext4分区(带有UUID faae2c6a-0545-4bfa-a545-440c63467467),则/etc/udev/rules.d/99-hide-partitions.rules
文件应包含:
#隐藏UI SUBSYSTEM ==“ block”,ENV {ID_FS_UUID} ==“ A10CDE7682786D73 ”,ENV {UDISKS_IGNORE} =“ 1”中的 “ SystemReserved”分区#隐藏左侧面板 SUBSYSTEM ==“ block”,ENV { ID_FS_UUID} ==“ faae2c6a-0545-4bfa-a545-440c63467467 ”,ENV {UDISKS_IGNORE} =“ 1”
注释是可选的,但建议使用,以免UUID变得不可思议。务必不能混淆=
使用==
,一个设置变量,其他比较反对的变量。
创建规则文件后,通过重新启动或运行以下命令来应用它:
sudo udevadm control --reload
sudo udevadm trigger --subsystem-match=block
现在udisksctl info -b /dev/sda1
再次运行命令,它应包含:
HintIgnore: 正确
现在应该更新答案。您可以按照本指南进行操作,但有所不同:您不必编写本指南(与其他答案一样)
KERNEL=="sda1", ENV{UDISKS_PRESENTATION_HIDE}="1"
KERNEL=="sdb2", ENV{UDISKS_PRESENTATION_HIDE}="1"
相反,您应该这样写:
KERNEL=="sda1", ENV{UDISKS_IGNORE}="1"
KERNEL=="sdb2", ENV{UDISKS_IGNORE}="1"
其余的都一样:)
您不能真正隐藏分区,以使它们绝对不能100%地安装在Linux中,除非物理上删除它们所在的磁盘。就是说,我认为您不需要那种安全级别。我怀疑您只是不想无意中单击一个图标并进入NTFS分区。为此,您可以编辑/ etc / fstab文件。为要隐藏的每个分区添加一个这样的条目:
假设您的ntfs分区是dev / sda1, 然后使用此代码
/dev/sda1 /mnt/hidden ntfs-3g noauto,ro 0 0
这会将系统配置为阻止/ dev / sda1在引导时自动挂载(该条目的“ noauto”部分)。它还对其进行设置,以便可以将其手动安装在/ mnt / hidden上,但只能作为只读分区(“ ro”选项)安装。如果添加“用户”选项(如“ noauto,ro,users”中的选项),则普通用户(即您)将能够挂载该分区;但是缺少此选项,则需要使用sudo来安装分区。您可以选择执行此操作的程度,例如,可以省略“ ro”和/或添加“ users”。
。
以及如何在ubuntu中隐藏文件(。运算符除外)?
看到这个答案
。
资源
获取磁盘UUID:
blkid
/etc/fstab
以根用户身份编辑:
UUID="XXX" /media/root/nowhere auto nosuid,nodev,nofail,noauto,nouser,x-gvfs-hide,x-udisks-auth 0 0
创建一个受保护的/ media / root文件夹(以防止用户访问已安装的分区):
sudo mkdir -m=000 /media/root
防止安装和可见性的几个独立保护层:
noauto
防止启动时自动安装nouser
需要以root身份挂载(注意:已经是默认行为,而udisk是root)x-gvfs-hide
明确地告诉Nautilus隐藏它x-udisks-auth
挂载时应要求管理员权限,但无效。我猜它需要其他配置。请注意,该块设备(例如/dev/sdX
)仍然对所有用户可见,尤其是在该Disk
实用程序中。仍然可以通过root手动将其安装在其他位置,但默认情况下不能由标准用户安装。如果您不信任root或系统进程,则需要使用较低级别的内核方法之一。
进一步说明:在此之后,如果要隐式地安装块设备,则可以使用类似于容器的方法unshare
:
unshare -m bash
MOUNT_DIR="XXX"
mkdir "$MOUNT_DIR"
mount --bind "$MOUNT_DIR" "$MOUNT_DIR"
mount --make-private "$MOUNT_DIR"
mount "/dev/sdX" "$MOUNT_DIR"
ls "$MOUNT_DIR"
注意:大多数/所有答案,包括udev规则答案,都只是从Nautilus隐藏分区,但用户仍可以通过磁盘实用程序(►
图标)以标准权限挂载该分区。将fstab挂载点放在不可访问的目录中将阻止用户访问。
noauto
(在启动时禁用自动挂载)和删除x-gvfs-show
(从桌面GUI删除图标)。这些是磁盘使用时的唯一区别。(Ubuntu MATE 16.04)
在此安装任何分区,,,,
mkdir ./.test
sudo mount /dev/sda1 ./.test/
卸下
sudo umount ./.test/
./.test/被隐藏
您只能安装设备(如果我通过给定的命令尚未安装该设备或您必须使用该设备)
mount --bind oldmount newmount
oldmount和newmount是文件夹名称
fstab
或其他方式安装它。如果是外部的,那么udev
规则会变得更加复杂。