如何限制对标准(非管理员)用户的NTFS分区的访问?
我使用的是Ubuntu 12.04。 我有4个NTFS分区。 我创造了2个用户:一个用于我自己(管理员),一个用于家庭用户(标准/非管理员)。
我成功地限制了从这个标准用户访问我的主文件夹。 现在我想限制它访问我的所有NTFS分区。 我怎样才能做到这一点?
我检查了从另一个用户访问NTFS分区的限制,但是虽然接受了答案但它似乎没有帮助那个OP,如后面的评论中所示。
-
使用打开fstab文件
gksudo gedit /etc/fstab
-
你应该在/ etc / fstab文件中添加如下行,
/dev/sda7 /media/EXTRA ntfs-3g noauto,uid=XXX,unmask=7 0 0
这里
XXX
是我的用户ID。 你可以找到你的id
命令和/dev/sda7
是我想限制访问的分区。 -
在
/media/
创建名为EXTRA
的文件夹,如下所示,sudo mkdir /media/EXTRA
-
现在,无论何时登录,您都需要将其安装为,
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
- 通过运行
sudo blkid
获取设备ID。 (例如/ dev / sda1) - 通过运行
sudo mkdir /media/mount-point
创建挂载sudo mkdir /media/mount-point
。 (例如/ media / windows) -
编辑
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