如何限制对标准(非管理员)用户的NTFS分区的访问?

我使用的是Ubuntu 12.04。 我有4个NTFS分区。 我创造了2个用户:一个用于我自己(管理员),一个用于家庭用户(标准/非管理员)。

我成功地限制了从这个标准用户访问我的主文件夹。 现在我想限制它访问我的所有NTFS分区。 我怎样才能做到这一点?

我检查了从另一个用户访问NTFS分区的限制,但是虽然接受了答案但它似乎没有帮助那个OP,如后面的评论中所示。

  1. 使用打开fstab文件

    gksudo gedit /etc/fstab 
  2. 你应该在/ etc / fstab文件中添加如下行,

     /dev/sda7 /media/EXTRA ntfs-3g noauto,uid=XXX,unmask=7 0 0 

    这里XXX是我的用户ID。 你可以找到你的id命令和/dev/sda7是我想限制访问的分区。

  3. /media/创建名为EXTRA的文件夹,如下所示,

     sudo mkdir /media/EXTRA 
  4. 现在,无论何时登录,您都需要将其安装为,

     sudo mount /dev/sda7 /media/EXTRA 

完成!

说明:
如果某个特定分区包含VFAT或NTFS文件系统,并且您只希望能够自己访问它,那么它非常简单:

在fstab行中包含选项"noauto", "uid=XXX", and "umask=7" ,如果它们现在出现,则删除“user”和/或“users”选项。

这意味着在启动时系统将提供卸载的分区,并且只有您(以root身份运行,可能使用sudo)可以安装它。

一旦安装,它将由您的非特权用户拥有(假设该用户的uid为XXX,这是给予在MDV安装时在安装时创建的第一个用户 – 请使用“id”命令运行该用户,并调整fstab相应地)并且将无法被所有其他本地用户访问。


通过发出mount命令四次挂载受限制的4个分区是一项无聊的任务。 为了减少这个无聊的任务,我编写了一个shell脚本:

 #!/bin/bash #Mount Unmount secret partitions now with choice of partition function checkPartitions(){ local state=$1 local dev=$2 case $state in "unmounted") mount | grep -q $dev if [ $? -eq 1 ]; then echo $dev fi ;; "mounted") mount | grep -q $dev if [ $? -eq 0 ]; then echo $dev fi ;; esac } function safeUnmount() { local dev=$1 mount | grep -q $dev if [ $? -eq 0 ]; then echo "Device $dev found. Unmounting now" sudo umount $dev if [ $? -eq 0 ]; then echo "Device $dev unmounted successfully." else echo "You are not root??" fi else echo "Device $dev is already unmounted." fi } function safeMount() { local dev=$1 mount | grep -q $dev if [ $? -eq 1 ]; then echo "Device $dev not found. Mounting now" sudo mount $dev if [ $? -eq 0 ]; then echo "Device $dev mounted successfully." else echo "You are not root??" fi else echo "Device $dev is already mounted." fi } echo -e "What you want to do? \n 1. Mount Secret Partitions \n 2. Unmount Secret Partitions" read -p "Enter your choice :" choice case $choice in 1) echo -e "You want to Mount your secret partitions" echo "-------List of Unmounted secret partitions-------" checkPartitions "unmounted" "/dev/sdaX1" checkPartitions "unmounted" "/dev/sdaX2" checkPartitions "unmounted" "/dev/sdaX3" checkPartitions "unmounted" "/dev/sdaX4" anythingelse="y" #echo -e "\n" while [ $anythingelse == y -o $anythingelse == Y ]; do read -p "Which partition should be mounted?" partNum safeMount "/dev/sda"$partNum read -p "Do you want to mount any other partition? [y/n]" anythingelse done ;; 2) echo -e "You want to Unmount your secret partitions\n" echo "--------List of Mounted secret partitions--------" checkPartitions "mounted" "/dev/sdaX1" checkPartitions "mounted" "/dev/sdaX2" checkPartitions "mounted" "/dev/sdaX3" checkPartitions "mounted" "/dev/sdaX4" anythingelse="y" #echo -e "\n" while [ $anythingelse == y -o $anythingelse == Y ]; do read -p "Which partition should be unmounted?" partNum safeUnmount "/dev/sda"$partNum read -p "Do you want to unmount any other partition? [y/n]" anythingelse done ;; esac 

/dev/sdaX替换为您的4个分区。

保存为secret-mount-unmount.sh然后发出命令

 chmod +x /path/to/file/secret-mount-unmount.sh 

双击该文件,然后单击Run in Terminal并继续。

您需要将NTFS分区添加到/etc/fstab

  1. 通过运行sudo blkid获取设备ID。 (例如/ dev / sda1)
  2. 通过运行sudo mkdir /media/mount-point创建挂载sudo mkdir /media/mount-point 。 (例如/ media / windows)
  3. 编辑fstab

    sudo nano /etc/fstab

添加以下行: /dev/sda1 /media/windows ntfs-3g noauto,user,uid=1000,gid=1000,umask=0027 0 0

单击ctrl+o保存,然后单击ctrl+x退出

您也可以在这里参考: https : //help.ubuntu.com/community/Fstab