mount命令及参数详解
版权声明:本⽂为博主原创⽂章,未经博主允许不得转载。 blog.csdn/wl1070325332/article/details/60876519 Linux 挂载windows系统共享⽬录:
mount -t cifs -o username=⽤户名,password=密码,iocharset=utf8,sec=ntlm //windowsIP地址/共享⽂件名 /本地挂载⽬录
Linux挂载虚拟机共享⽬录:
mount -t nfs -o nolock 虚拟机IP:/虚拟机共享⽂件名 /本地挂载⽬录
-----------------------------  mount.cifs 中⽂⼿册 ---------------------------
mount.cifs(8)                                    System Administration                                  mount.cifs(8)
名称
mount.cifs - 挂载通⽤⽹际⽂件系统(Common Internet File System)
语法
mount.cifs {service} {mount-point} [-o options]
描述
这个⼯具是 samba(7) 软件包的⼀部分。
mount.cifs ⽤于挂载 CIFS ⽂件系统。它通常由使⽤"-t cifs"选项的 mount(8) 命令间接调⽤。
这个命令只能在⽀持 CIFS ⽂件系统的Linux内核上使⽤。CIFS 协议是 SMB 协议的替代版本,
它被包括 Windows 在内的⼏乎所有操作系统所以及 NAS(Network Attached Storage)应⽤和Samba服务器所⽀持。
mount.cifs 可以将 service 表⽰的 UNC 名称挂载到本地的 mount-point 挂载点上。
service 使⽤ //server/share 语法,其中的"server"是主机名或者 IP 地址,⽽ "share" 是共享名。
mount.cifs 的选项是⽤逗号分隔的 key=value 列表。
除了下⾯列出的选项外,还可以使⽤其他选项,只要 cifs ⽂件系统内核模块(cifs.ko)⽀持即可。
不能被 cifs ⽂件系统内核模块(cifs.ko)识别的选项将会被记录到内核⽇志中。
mount.cifs 将会启动⼀个名为 cifsd 的进程,并保持运⾏直到该资源被卸载(通常是通过 umount ⼯具)。
mount.cifs -V 会显⽰该程序的版本信息。
modinfo cifs 会显⽰ cifs 模块的版本信息。
选项
user=arg
username=arg
指定连接时使⽤的⽤户名。如果没有在这⾥指定,那么将使⽤环境变量 USER 的值。
此选项还可以接受"user%pass"或"workgroup/user"或"workgroup/user%pass"的格式,
以便在指定⽤户名的同时⼀起指定⼝令和⼯作组。
pass=arg
password=arg
指定连接时使⽤的⼝令。如果没有在这⾥指定,那么将使⽤环境变量 PASSWD 的值。
如果没有在命令⾏参数中给出⼝令,mount.cifs 将会在挂载时提⽰⽤户输⼊⼝令。
需要注意的是,如果⼝令中含有逗号(,),那么将不能在命令⾏参数中指定,因为会发⽣解析错误。
不过在环境变量 PASSWD 和 cred ⽂件(见下⽂)中可以安全的使⽤逗号,或者在提⽰输⼊⼝令时也可以安全的输⼊。
dom=arg
domain=arg
domain=arg
指定user所属的域(⼯作组)。
cred=filename
credentials=filename
指定⼀个包含⽤户名、密码、域(⼯作组)的⽂件,可以包含三者之⼀、之⼆,或全部包含。该⽂件的格式如下:
username=value
password=value
domain=value
这样做⽐直接在诸如 /etc/fstab 这样的共享⽂件中以明⽂⽅式写出密码要安全的多。请确保该cred⽂件的安全。
guest
不提⽰输⼊密码,⽽以来宾⾝份登录。
sec={none|krb5|krb5i|ntlm|ntlmi|ntlmv2|ntlmv2i}
windowsserver2008r2enterprise选择安全模型:
none 尝试以空⽤户连接(不提供⽤户名)
krb5 使⽤ Kerberos version 5 认证
krb5i 使⽤ Kerberos version 5 和包签名(packet signing)认证
ntlm 使⽤ NTLM ⼝令散列认证(默认值)
ntlmi 使⽤ NTLM 签名⼝令散列认证
(如果 /proc/fs/cifs/PacketSigningEnabled 被开启或者服务器端要求必须签名时,这个将成为默认值)
ntlmv2 使⽤ NTLMv2 ⼝令散列认证
ntlmv2i 使⽤ NTLMv2 签名⼝令散列认证
uid=arg
如果被挂载的⽂件系统服务器没有提供⽂件和⽬录的UID信息,那么就使⽤这⾥的设置。
arg 可以是字符串形式的⽤户名或着是数字形式的uid值。默认值是数字'0'。
更多信息参见下⾯的“⽂件和⽬录的属主及权限”⼩节。
forceuid
忽略服务器提供的⽂件和⽬录的UID信息,强制使⽤ uid= 选项设置的值。
更多信息参见下⾯的“⽂件和⽬录的属主及权限”⼩节。
gid=argcrack成瘾
linux修改口令的命令如果被挂载的⽂件系统服务器没有提供⽂件和⽬录的GID信息,那么就使⽤这⾥的设置。
arg 可以是字符串形式的组名或着是数字形式的gid值。默认值是数字'0'。tensorflow自然语言处理
更多信息参见下⾯的“⽂件和⽬录的属主及权限”⼩节。
forcegid
忽略服务器提供的⽂件和⽬录的GID信息,强制使⽤ gid= 选项设置的值。
更多信息参见下⾯的“⽂件和⽬录的属主及权限”⼩节。
file_mode=0nnn
如果服务器端不⽀持 CIFS Unix扩展,那么就使⽤这⾥设置的值替代默认的⽂件权限模式。
这⾥的 nnn 是⼋进制的权限模式,且前导零不能省略。
dir_mode=0nnn
如果服务器端不⽀持 CIFS Unix扩展,那么就使⽤这⾥设置的值替代默认的⽬录权限模式。
这⾥的 nnn 是⼋进制的权限模式,且前导零不能省略。
setuids
如果服务器端⽀持 CIFS Unix扩展,那么客户端将会在新建的⽂件/⽬录/设备上为本地进程设置有效UID/GID(effective uid/gid)。
如果服务器端不⽀持 CIFS Unix扩展,那么客户端对于新建的⽂件/⽬录/设备并不使⽤命令⾏上指定的默认UID/GID,
⽽是将新建⽂件的UID/GID缓存在本地,这就意味着⽂件的UID/GID在重新加载inode或者重新挂载该⽂件系统之后可能会发⽣变化。
nosetuids
不管服务器端是否⽀持 CIFS Unix扩展,客户端都不会在新建的⽂件/⽬录/设备(create, mkdir, mknod)上设置UID/GID。
这将导致服务器端按照默认规则设置⽂件/⽬录/设备的UID/GID(通常是连接⽤户的UID/GID)。
让服务器端(⽽不是客户端)设置UID/GID是默认⾏为。
如果服务器端不⽀持 CIFS Unix扩展,那么新建⽂件/⽬录/设备的UID/GID将显⽰为连接⽤户的UID/GID或命令⾏上指定的UID/GID值。
perm
客户端执⾏权限检查(⽤ vfs_permission 函数根据 mode 和相应的操作检查 uid/gid )。这个选项是默认开启的。
客户端执⾏权限检查(⽤ vfs_permission 函数根据 mode 和相应的操作检查 uid/gid )。这个选项是默认开启的。
登录界面的背景图片注意,这是在服务器端根据连接的⽤户对客户端操作执⾏⼀般的 ACL 检查之外,客户端对⾃⾝操作进⾏的权限检查。
noperm
客户端不对⾃⾝操作进⾏任何权限检查。这可能会导致被挂载的服务器端⽂件系统被本地系统上的其他⽤户访问。
这个选项仅在服务器端⽀持 CIFS Unix扩展,但是客户端和服务器端的UID/GID并不匹配,
并且⽆法通过执⾏挂载操作的⽤户⾝份进⾏访问控制时才需要。
注意,这个选项并不影响在服务器端根据连接的⽤户对客户端操作执⾏⼀般的 ACL 检查。
dynperm
要求服务器端仅在内存中维护 UID/GID 和权限,⽽不将它们记录到实际的⽂件系统上。
这些信息可能会随时丢失(⽐如从缓存中重新加载inode),
所以虽然这个选项可以让某些程序正常⼯作,但是其实际⾏为是不可预测的。
更多信息参见下⾯的“⽂件和⽬录的属主及权限”⼩节。
noacl
即使服务器端⽀持,也禁⽤ POSIX ACL 特性。
CIFS 客户端可以获取和设置 Samba 服务器上的 POSIX ACL ,但是可以通过该选项强制关闭。
[提⽰]设置 POSIX ACL 要求客户端内核的 CIFS 模块同时⽀持 XATTR 和 POSIX 特性
sfu
如果服务器端不⽀持 CIFS Unix扩展,那么就以兼容SFU(Services for Unix)的格式创建设备⽂件和管道(FIFO)⽂件。
也就是通过 SETFILEBITS 属性额外检查⽂件权限的⾼ 10-12 位(和 SFU 的做法⼀样)。
⽽剩余的低 9 位依然可以⽤于描述权限(ACL)。
nounix
强制关闭 CIFS Unix扩展。这相当于⼀次性关闭多个选项,
包括:POSIX ACL, POSIX lock, POSIX path, 服务器端软连接(symlink), 服务器端的 uids/gids/mode 值。
这个选项也可以⽤于对 CIFS Unix扩展⽀持有缺陷的服务器。
更多信息请参见"INODE编号"⼩节。
nouser_xattr
即使服务器端⽀持,也不允许 getfattr/setfattr 获取和设置 xattr 。这是默认值。
ip=arg
指定⽬标服务器的IP地址。
如果 UNC 名称中已经包含了这个信息(包括从DNS中解析得到),就没必要在这⾥设置了,所以这个选项很少使⽤。
port=num
设置将要连接的 CIFS 服务器端⼝。
如果 CIFS 服务器并未在该端⼝监听或者未指定此选项,那么将⾸先尝试默认的 445 端⼝,如果没有应答就再尝试 139 端⼝。
servern=name
netbiosname=name
指定服务器的 netbios name (RFC1001 name)。只在连接 Windows 98/ME 服务器(139端⼝)时才需要这个参数。
iocharset=charset
指定默认以什么字符集显⽰⽂件名,必须与系统的locale设置保持⼀致。
例如在"en_US.UTF-8"的情况下应该使⽤"utf8"。
如果没有指定该选项,将使⽤客户端内核中的 CONFIG_NLS_DEFAULT 值。
如果服务器端⽀持Unicode字符,⽹络路径名将默认使⽤Unicode字符,
如果服务器端不⽀持Unicode字符,那么该选项就没有任何意义。
ro
只读挂载
rw
读写挂载
directio
不对⽂件的 inode 数据做缓存。这样就不会对⽂件作内存映射(mmap)。
在某些具有快速⽹络连接的情况下,客户端可以从此选项中受益,
例如,需要进⾏超长序列读取的应⽤程序就不需要再次读取相同的数据,
从⽽可以⽐对读写都进⾏缓冲的默认⾏为(预读取/后台延迟写⼊)提供更好的性能。
该选项允许向服务器发送⼤于页⾯尺⼨的写操作,
⽽且要求内核的 cifs.ko 模块在编译时开启了 CIFS_EXPERIMENTAL 选项。
⽽且要求内核的 cifs.ko 模块在编译时开启了 CIFS_EXPERIMENTAL 选项。
mapchars
将7个保留字符(\:?|*><)中的6个(不包括反斜杠)重新映射到新的字符(⾼于0xF000)。
这样就允许客户端可以识别 Windows POSIX 模拟层创建的包含这些保留字符的⽂件名。
该选项还可以⽤于将⽂件名中包含保留字符的⽂件系统挂载到同样禁⽌使⽤保留字符的 Samba 服务器。
注意,在使⽤了此选项挂载的⽂件系统上创建的⽂件可能在不使⽤此选项挂载的情况下⽆法访问。
该选项对于不⽀持 Unicode 的服务器没有意义。
nomapchars
不对7个保留字符做任何重新映射。这是默认值。
intr
当前尚未实现
nointr
当前尚未实现(默认值)
hard
当服务器端失去响应后访问其上⽂件的应⽤程序将被挂起。
soft
(默认值)当服务器端失去响应后访问其上⽂件的应⽤程序将收到⼀个错误信号⽽不是被挂起。
nocase
对路径名进⾏⼤⼩写⽆关的匹配(在服务器端⽀持的情况下,⼤⼩写敏感的匹配是默认值)。
nobrl
不向服务器发送对 byte range lock 的请求。
对于某些不遵守 cifs 风格的 byte range lock 规范的应⽤程序来说,这个选项是必须的。
另⼀⽅⾯,⽬前⼤多数 cifs 服务器也尚未实现 advisory byte range lock 。
serverino
使⽤服务器提供的inode编号(连续的、⽂件唯⼀标识符),⽽不使⽤客户端⾃动⽣成的临时inode编号。
虽然服务器的inode编号可以很轻易的分辨硬链接⽂件(它们的inode编号相同)并且保持稳定不变(这对某些程序很有必要),但是当同时挂载多个服务器端⽂件系统时,依然可能由于inode编号重叠⽽导致混乱。
⽽且,也有少数服务器不⽀持提供inode编号。如果服务器不能提供inode编号,这个选项就没有任何实际效果。
noserverino
使⽤客户端⾃动⽣成的临时inode编号,即使服务器提供了inode编号。这是默认值。
更多信息参见"INODE编号"⼩节。
rsize=num
默认⽹络读取尺⼨(通常是 16K)。⽬前还不能使⽤⽐ CIFSMaxBufSize ⼤的值。
CIFSMaxBufSize 的默认值是 16K 并且可以在加载 cifs.ko 时,
将其设置为从 8K 到最⼤允许的 kmalloc 尺⼨之间的任意值。
将 CIFSMaxBufSize 设为⼀个很⼤的值将会导致使⽤更多的内存,并且有可能在某些情况下降低性能。
使⽤⼤于127K(原始cifs协议允许的最⼤值)的值还需要服务器端的额外⽀持(⽐如 Samba 3.0.26 或更⾼版本)。
num 的最⼩值是 2048 ,最⼤值是 130048(127K)与 CIFSMaxBufSize 中的较⼩者。
wsize=num
默认⽹络写⼊尺⼨(默认值是57344)。允许的最⼤值也是57344(14个4K页⾯)。
--verbose
在挂载时输出额外的调试信息。注意,该选项必须在 -o 选项之前使⽤,也就是这样:
mount -t cifs //server/share /mnt --verbose -o user=username
SERVICE 的格式和分割符
通常在 service 中⽤正斜杠(/)作为分隔符。
由于正斜杠(/)不能⽤于Windows平台的⽂件名中,所以可以被看做"全局分割符",并被Linux客户端⽆条件的转换成反斜杠(\)。
另⼀⽅⾯,由于POSIX标准允许在⽂件名中使⽤反斜杠(\),所以不能⾃动将其转换为正斜杠(/)。
mount.cifs 将会在可以转换⽽不产⽣混淆的情况下,⾃动将反斜杠(\)转换成正斜杠(/)。
但是它不会将共享名(sharename)之后的路径中所包含的反斜杠(\)⾃动转换成正斜杠(/)。
INODE编号
如果服务器端⽀持Unix扩展,并且客户端也允许使⽤Unix扩展,那么将使⽤服务器实际提供的inode编号响应 POSIX 调⽤。
如果Unix扩展被nounix禁⽤(或者服务器端本⾝就不⽀持),但同时⼜开启了"serverino"选项的话,那么
将⽆法获取真正的服务器端inode编号。
此时客户端将把 server-assigned "UniqueID" 映射到⼀个inode编号。
UniqueID 的值和服务器端inode编号是两个不同的值。
UniqueID 的值在整个服务器范围内是唯⼀的,其值通常⼤于232(2的32次⽅)。
这个值通常会让不⽀持LFS(Large File Support)的程序触发⼀个 glibc EOVERFLOW 错误。
因此强烈建议你重新编译此程序,并开启LFS⽀持(也就是 -D_FILE_OFFSET_BITS=64),以避免这个错误。
当然,你也可以使⽤"noserverino"选项来客户端确保⽣成的inode编号⼩于232(2的32次⽅)。
但是这样做的缺点是⽆法正确检测到硬链接。
⽂件和⽬录的属主及权限
核⼼ CIFS 协议并不提供⽂件和⽬录的 unix 属主或权限信息。
正因为如此,⽂件和⽬录才会看上去像被 uid= 和 gid= 选项指定的⽤户和组所拥有,
并且其权限才会看上去和 file_mode 以及 dir_mode 指定的权限⼀致。
可以通过 chmod/chown 来修改这些值,但是并不会在服务器端产⽣真正的实际效果。
如果服务器端⽀持Unix扩展,并且客户端也允许使⽤Unix扩展,⽂件和⽬录的 uid, gid, mode 将由服务器端提供。
因为 CIFS 通常由同⼀个⽤户挂载,所以不管是哪个⽤户访问此⽂件系统,所使⽤的 credentials ⽂件都是同⼀个。
这样,新创建的⽂件和⽬录其属主/属组就都根据同⼀个 credentials ⽂件中的连接⽤户来设置。
如果客户端和服务器端使⽤的 uid 和 gid 并不匹配,那么 forceuid 和 forcegid 选项就很有⽤处了。
注意,并没有强制改写 mode 的选项。
当指定了 forceuid 和/或 forcegid 后,⽂件和⽬录的权限就可能不能反映真正的权限了。
如果Unix扩展被nounix禁⽤(或者服务器端本⾝就不⽀持),仍然有可能使⽤"dynperm"选项在服务器上模拟出来。
使⽤该选项后,新创建的⽂件和⽬录将看上去拥有了正确的权限。
不过这些权限并不真正存储在服务器端的⽂件系统上(仅在内存中),因此可能会随时丢失(⽐如内核刷新了inode缓存)。
因此,我们不⿎励使⽤此选项。
还可以使⽤ noperm 选项在客户端完全越过权限检查。
但是服务器端的权限检查是⽆法越过的,服务器端将始终根据 credentials ⽂件中提供的⽤户信息进⾏权限检查,
⽽与客户端实际访问⽂件系统的⽤户⽆关。
环境变量
环境变量 USER ⽤于指定连接服务器的⽤户名。该变量也可以使⽤ username%password 的格式同时给出⼝令。
环境变量 PASSWD ⽤于指定连接服务器的⽤户密码。
环境变量 PASSWD_FILE ⽤于给出读取密码的⽂件的路径。其中的第⼀⾏将被作为密码读取。
注意
该命令可能只允许 root 使⽤,除⾮以 setuid 安装。
在setuid的情况下,默认将开启 noexec 和 nosuid 挂载标记。
当安装为 setuid 程序后,该程序就将遵守 mount 程序对于⽤户挂载限制的约定。
某些 samba 客户端⼯具,例如 smbclient(8) ,会根据客户端的配置⽂件 f 中的参数决定其⾏为。
但是 mount.cifs 与他们不同,它完全⽆视 f 的内容。
配置
修改和读取 CIFS 配置、读取 CIFS 调试信息的⾸要途径就是 Linux 的 /proc ⽂件系统。
/proc/fs/cifs ⽬录中包含了许多配置和调试信息。
启动选项(例如最⼤buffer尺⼨和buffer个数)只能在内核加载 cifs.ko 模块的时候指定,
它们可以通过"modinfo /path/to/cifs.ko"命令看到。
更多信息参见 Documentation/filesystems/cifs/README ⽂件。
手机的文本编辑器在哪缺陷

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。