zoukankan      html  css  js  c++  java
  • NFS和mount常用参数详解

    NFS权限参数配置

    ro                      只读访问 
    rw                      读写访问 
    sync                    所有数据在请求时写入共享 
    async                   NFS在写入数据前可以相应请求 
    secure                  NFS通过1024以下的安全TCP/IP端口发送 
    insecure                NFS通过1024以上的端口发送 
    wdelay                  如果多个用户要写入NFS目录,则归组写入(默认) 
    no_wdelay               如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。 
    hide                    在NFS共享目录中不共享其子目录 
    no_hide                 共享NFS目录的子目录 
    subtree_check           如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认) 
    no_subtree_check        和上面相对,不检查父目录权限 
    all_squash              共享文件的UID和GID映射匿名用户anonymous,适合公用目录。 
    no_all_squash           保留共享文件的UID和GID(默认) 
    root_squash             root用户的所有请求映射成如anonymous用户一样的权限(默认) 
    no_root_squas           root用户具有根目录的完全管理访问权限 
    anonuid=xxx             指定NFS服务器/etc/passwd文件中匿名用户的UID 
    anongid=xxx             指定NFS服务器/etc/passwd文件中匿名用户的GID 
    

    mount挂载参数

    -t ntfs
    告诉挂载命令将要挂载的文件系统类型。这个选项并不是必须的,因为mount会自动识别大多数的文件系统。
    -r
    以只读形式挂载卷。挂载操作默认以可读写形式挂载卷。除非指明,否则驱动将会以只读形式自动挂载文件系统。
    -o ro
    和-r相同。
    -o umask={VALUE}
    因为安全的原因,默认给予已挂载的NTFS卷的权限为rwx------。参数umask控制这些文件和路径的权限。详细的资料和例子请参见4.9节。

    mount /dev/hda1 /mnt/windows -t ntfs -r -o umask=0222
    

    -o uid={USERID}
    已挂载的NTFS卷上所有文件默认都是root所有的。如果提供uid参数就可以设置文件的所有者。这些参数可以是/etc/passwd中的任何用户名,或者任何表示用户id的数字

    mount /dev/hda1 /mnt/windows -t ntfs -r -o uid=flatcap
    mount /dev/hda1 /mnt/windows -t ntfs -r -o uid=500
    

    -o gid={GROUPID}
    已挂载的NTFS卷上所有的文件默认都是root组所有的。如果提供gid参数就可以设置文件的组。这些参数可以是/etc/group中的组名,或者任何表示组id的数字。

    mount /dev/hda1 /mnt/windows -t ntfs -r -o gid=winusers
    mount /dev/hda1 /mnt/windows -t ntfs -r -o gid=520
    

    原始驱动程序的挂载选项。

    一些选项以true或false作为参数。
    你可以用yes或1替换true。
    也可以用no或0替换false

    -o iocharset={NAME}
    NTFS以Unicode形式保存所有的文件名和路径名,这样就可以表示任何语言中的任何字符。而Linux的NTFS驱动则默认将这些名称转换为ASCII形式,这对某些人来说是合适的,但是对于那些包括 ? 或 é 等字符的语言则不合适了。

    NLS(本地语言支持)决定字符是如何被显示的。你可以选择像Unicode一样可以表示所有字符的utf8,或者你自己的代码页,比如iso8859-1(西欧)、iso8859-2(中欧)、gb2312(简体中文)、iso8859-8(希伯来文)。下面是一些挂载选项的例子:

    mount /dev/hda1 /mnt/windows -t ntfs -r -o iocharset=utf8
    mount /dev/hda1 /mnt/windows -t ntfs -r -o iocharset=iso8859-2
    mount /dev/hda1 /mnt/windows -t ntfs -r -o iocharset=gb2312
    

    utf8=true
    如果你的内核不支持utf8,那么你可以通过这个选项启用NTFS驱动程序对utf8的支持。你应该在任何需要的地方使用选项-o iocharset=utf8

    mount /dev/hda1 /mnt/windows -t ntfs -r -o utf8=tru
    

    -o posix={BOOL}
    Windows保存了文件名的大小写格式,但在读取时并不进行区分。因此你可以建立一个名为MyFileName的文件,然后用mYfILEname的名称打开它。

    Linux默认对于大小写是敏感的,MyFile、Myfile和myfile是不同的文件。如果你希望Linux对NTFS卷具有和Windows相同的表现,那么就应将posix选项设置为true,将选项设置为false将使驱动程序具有与Linux类似的表现(默认设置)。

    mount /dev/hda1 /mnt/windows -t ntfs -r -o posix=true

    -o show_sys_files={BOOL}
    如果这个选项被设置为true,那么文件系统的元数据将会处于可见状态。如若不可见,可通过提供它们的名称,比如ls -l $MFT,使它们被显示地列出。

    NB 因为glibc的局限,$MFT可能因为其inode值为0而不会被显示在列表之中。

    mount /dev/hda1 /mnt/windows -t ntfs -r -o show_sys_files=true
    

    返回页面顶部

    新驱动程序的挂载选项。

    要找出你在使用的驱动类型,请参见4.4节。这一节只讨论适用于新驱动程序的选项,所有的常用选项都在4.6节中进行说明。

    一些选项以true或false作为参数。
    你可以用yes或1替换true。
    也可以用no或0替换false。

    -o nls={NAME}
    NTFS以Unicode形式保存所有的文件名和路径名,这样就可以表示任何语言中的任何字符。而Linux的NTFS驱动则默认将这些名称转换为ASCII形式,这对某些人来说是合适的,但是对于那些包括 ? 或 é 等字符的语言则不合适了。

    NLS(本地语言支持)决定字符是如何被显示的。你可以选择像Unicode一样可以表示所有字符的utf8,或者你自己的代码页,比如iso8859-1(西欧)、iso8859-2(中欧)、gb2312(简体中文)、iso8859-8(希伯来文)。下面是一些挂载选项的例子:

    mount /dev/hda1 /mnt/windows -t ntfs -r -o nls=utf8
    mount /dev/hda1 /mnt/windows -t ntfs -r -o nls=iso8859-2
    mount /dev/hda1 /mnt/windows -t ntfs -r -o nls=gb2312
    

    -o fmask={VALUE}
    -o dmask={VALUE}
    参数umask同时改变文件和路径两者的权限,fmask以同样的方式作用于文件而dmask作用于路径,这些选项也可以被组合使用。下面是一些例子:

    mount /dev/hda1 /mnt/windows -t ntfs -r -o fmask=0222
    mount /dev/hda1 /mnt/windows -t ntfs -r -o dmask=0222
    mount /dev/hda1 /mnt/windows -t ntfs -r -o fmask=0077,dmask=0222
    

    -o case_sensitive={BOOL}
    Windows保存了文件名的大小写格式,但在读取时并不进行区分。因此你可以建立一个名为MyFileName的文件,然后用mYfILEname的名称打开它。

    Linux默认对于大小写字母是敏感的,MyFile、Myfile和myfile是不同的文件。如果你希望Linux对于NTFS卷具有和Windows相同的表现,那么就应将case_sensitive选项设置为false。将选项设置为true将使驱动具有和Linux类似的表现(默认设置)。

    mount /dev/hda1 /mnt/windows -t ntfs -r -o case_sensitive=true
    mount /dev/hda1 /mnt/windows -t ntfs -r -o case_sensitive=false
    

    -o sloppy={BOOL}
    默认情况下,驱动程序在任何选项发生错误时将拒绝进行挂载,添加参数sloppy后驱动程序将完全忽略这些错误参数。

    mount /dev/hda1 /mnt/windows -t ntfs -r -o sloppy=true
    mount /dev/hda1 /mnt/windows -t ntfs -r -o sloppy=false
    

    -o errors={VALUE}
    这个参数控制驱动程序处理问题的方式。默认为尝试进行处理并继续执行,任何的corruption都会被标记并留待以后处理。另一种选择是让驱动程序尝试处理并进行恢复,目前驱动程序可以做的唯一恢复是用备份替换当前的启动扇区。

    mount /dev/hda1 /mnt/windows -t ntfs -r -o errors=continue
    mount /dev/hda1 /mnt/windows -t ntfs -r -o errors=recover
    

    怎样改变已经挂载的NTFS卷的权限?

    共有三个可以控制文件和路径的权限和所有权的选项,分别是:umask、uid和gid。它们在常用挂载选项一节中都有提及。

    下面是每个选项以及它们对文件所起作用的一些例子。我们每次都会使用相同的挂载命令,并且只显示相关的选项。

    mount /dev/hda1 /mnt/windows -t ntfs -r
    

    umask是对权限的过滤器,因此它的工作方式和chmod恰好相反。全部权限等价与777(rwxrwxrwx),umask值0222(-w--w--w-)则代表权限555(r-xr-xr-x)。

    考虑到安全的原因,默认的umask被设置为0077。

    mount ... -o umask=0277
    
    -r-x------ 1 root    root    28096 Aug 24 1996 chkdsk.exe
    
    mount ... -o umask=0222
    
    -r-xr-xr-x 1 root    root    28096 Aug 24 1996 chkdsk.exe
    

    到此为止,这些文件的所有者和所有组仍为root,下面我们将会尝试使用uid和gid选项。

    mount ... -o uid=flatcap
    
    -r-x------ 1 flatcap root    28096 Aug 24 1996 chkdsk.exe
    
    mount ... -o gid=winuser
    
    -r-x------ 1 root    winuser 28096 Aug 24 1996 chkdsk.exe
    
    mount ... -o uid=flatcap,gid=winuser
    
    -r-x------ 1 flatcap winuser 28096 Aug 24 1996 chkdsk.exe
    

    最后我们将组合一些选项以得到精确的权限控制。下面的例子中,我们将赋予用户flatcap完全的控制权限,赋予组winuser中的用户读权限,而其他所有用户则没有任何访问权限。

    mount ... -o umask=0027,uid=flatcap,gid=winuser
    
    -rwxr-x--- 1 flatcap winuser 28096 Aug 24 1996 chkdsk.exe
    

    返回页面顶部

    怎样自动挂载一个NTFS卷?

    一旦你熟悉了挂载命令,就可以通过向/etc/fstab (filesystem table)中添加指令行来告诉Linux如何自动挂载卷了。

    下面是一些挂载命令的例子和等价的fstab中指令行。
    NB 不必担心行尾 0 0 表示的意思。

    mount /dev/hda1 /mnt/windows -t ntfs -r
    
    /dev/hda1 /mnt/windows ntfs ro                                    0 0
    

    这里我们将 -r 转换为等价的 -o ro。

    mount /dev/hda1 /mnt/windows -t ntfs -r -o umask=0222
    
    /dev/hda1 /mnt/windows ntfs ro,umask=0222                         0 0
    
    mount /dev/hda1 /mnt/windows -t ntfs -r -o umask=0222,uid=flatcap,gid=winuser
    
    /dev/hda1 /mnt/windows ntfs ro,umask=0222,uid=flatcap,gid=winuser 0 0
    

    转载自:https://flatcap.org/linux-ntfs/info/ntfs-zh.html

  • 相关阅读:
    后台线程处理数据,如何实时更新UI(datagridview)多线程同步问题
    DataGridView设置行高
    C#打开外部文件,如txt文件
    20120621第一天_复习与测试\04continue
    关于C#正则表达式MatchCollection类的总结
    关于sqlite中的一个错误 “database is locked"
    UI中 加个timer 写个while true的方法 不断获取run的对象
    最近帮公司开发一个邮件营销软件 用到XPTable 但找了很多方法 摸索了很久都不知道如何更新进度条 不过在国外的一个网站 终于找到答案了
    C# 简单的往txt中写日志,调试时很有用 【转】
    输入要匹配的内容和正则表达式规则 返来单个匹配的内容 正则表达式方法 常用
  • 原文地址:https://www.cnblogs.com/wspblog/p/5673924.html
Copyright © 2011-2022 走看看