0

我在 rsync.net 有一个帐户。
我现在已经使用 sshfs 挂载了这个文件系统。rsync.net 帐户现在显示在 finder 中,我可以使用 finder 进行拖放。

莫哈韦 10.14.6

现在,我想在启动/系统启动时通过 sshfs 挂载 rsync.net 文件系统。如何才能做到这一点 ?如果开机时挂载困难,登录时自动挂载也是可以的。

下面是各种命令的一些输出,以便更好地了解系统。

Tormods-MacBook-Pro:~ tormod$ sshfs --version

SSHFS 版本 2.5 (OSXFUSE SSHFS 2.5.0) OSXFUSE 3.10.3 FUSE 库版本:2.9.7 保险丝:无挂载点 Tormods-MacBook-Pro:~ tormod$

Tormods-MacBook-Pro:~ tormod$ kextstat|grep fuse 185 0 0xffffff7f85a93000 0x19000 0x19000
com.github.osxfuse.filesystems.osxfuse (3.10.3) AF3874A9-CF4E-39BF-A807-F61D1E6FABBF-<8 6 5 3 1> Tormods MacBook-Pro:~tormod$

4

2 回答 2

0

新的“com.startup.plist”文件。现在该文件将在启动时加载并运行。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.startup</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/bash</string>
        <string>/Library/Scripts/Startup/startup.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/tmp/com.startup.stderr</string>
    <key>StandardOutPath</key>
    <string>/tmp/com.startup.stdout</string>
</dict>
</plist>

现在运行LaunchDaemons启动文件。在这个系统上,我还配置了苹果的自动挂载。我的坐骑清单:

bash-5.0# compgen -c | grep ^mount
mount_sshfs
mount_hfs
mount_apfs
mount_udf
mount_cd9660
mount_sshfs
mount_exfat
mount_webdav
mount_msdos
mount_9p
mount_ntfs
mount_nfs
mount_ftp
mount
mount_afp
mount_smbfs
mount_cddafs
mount_fdesc
mount_acfs
mount_devfs
bash-5.0# 

现在,当我禁用 SIP 时,一切正常。与 rsync.net 的 sshfs 连接已启动,并在启动/启动时连接。我用于挂载点的设置:

/mnt/sshfs

这是为了让自动挂载和启动时的挂载能够一起工作。

“/etc/auto_master”的新内容

#
# Automounter master map
#
+auto_master       # Use directory service
/net               -hosts       -nobrowse,hidefromfinder,nosuid
/home              auto_home    -nobrowse,hidefromfinder
/Network/Servers   -fstab
/-                 -static
/mnt/sshfs         auto_sshfs   -nobrowse,nosuid

在 finder 磁盘中,或者远程 sshfs 连接被称为 rsync_net,因为

volname=rsync_net

sshfs 连接的设置。

所以,现在一切都很好,直到我打开 SIP,当它打开时,保险丝将不再加载。

的输出

kextstat|grep fuse

启用 SIP 时无输出。换句话说,当启用 SIP 时,内核中没有加载 fuse 的模块.....我希望有一个修复我可以做,因为我更喜欢在启用 SIP 的情况下运行操作系统。

于 2020-09-29T10:57:42.610 回答
0

我将就此事进行更新。

脚本名为:startup.sh 脚本内容:

#!/usr/bin/env bash
#Load modules for Fuse
/Library/Filesystems/osxfuse.fs/Contents/Resources/load_osxfuse
/usr/sbin/sysctl -w vfs.generic.osxfuse.tunables.allow_other=1
#Connect to rsync_net
/usr/local/bin/sshfs XXXX@prio.ch-s011.rsync.net: /mnt/sshfs -oauto_cache,reconnect,local,volname=rsync_net,allow_other,defer_permissions

无论如何,我可以通过终端运行脚本,但前提是我在终端中给出这个命令:

Tormods-MacBook-Pro:Scripts tormod$ sudo bash startup.sh
Password:
vfs.generic.osxfuse.tunables.allow_other: 1 -> 1
Tormods-MacBook-Pro:Scripts tormod$ 

无法通过输入脚本名称来运行脚本,然后输入。所以,有些事情正在工作,有些事情不工作.......任何帮助表示赞赏!

更新 :

我查看了 Launchd 教程: https ://medium.com/@chetcorcos/a-simple-launchd-tutorial-9fecfcf2dbb3

这是我尝试运行时得到的错误代码:

Tormods-MacBook-Pro:LaunchDaemons tormod$ launchctl load com.startup.plist

Console.app 的错误代码:

Sep  5 21:08:08 Tormods-MacBook-Pro com.apple.xpc.launchd[1] (com.apple.xpc.launchd.user.domain.501.100009.Aqua): com.startup (lint): UserName is not supported for non-System services.
Sep  5 21:08:08 Tormods-MacBook-Pro com.apple.xpc.launchd[1] (com.apple.xpc.launchd.user.domain.501.100009.Aqua): com.startup (lint): GroupName is not supported for non-System services.
Sep  5 21:08:08 Tormods-MacBook-Pro com.apple.xpc.launchd[1] (com.startup[680]): Could not find and/or execute program specified by service: 2: No such file or directory: /usr/bin/env bash /Users/root/Scripts/startup.sh
Sep  5 21:08:08 Tormods-MacBook-Pro com.apple.xpc.launchd[1] (com.startup[680]): Service setup event to handle failure and will not launch until it fires.
Sep  5 21:08:08 Tormods-MacBook-Pro com.apple.xpc.launchd[1] (com.startup[680]): Service exited with abnormal code: 78

我认为问题可能出在目录、文件或命令的 chmod 属性中。

我相信脚本将以root用户身份运行。那么,脚本所在的目录应该有什么所有权/ chmod 呢?

脚本文件应该有什么所有权/chmod?

我看到 osxfuse 有几个属性。我在这里找到不同的属性:

https://github.com/osxfuse/osxfuse/wiki/Mount-options

现在,我运行:allow_other

于 2020-08-28T15:12:01.763 回答