【问题标题】:Read Permission without unlock dialog没有解锁对话框的读取权限
【发布时间】:2011-12-21 23:45:14
【问题描述】:

我想从我的应用程序中打开一些文件,文件是由应用程序本身创建的,并且可以具有读取或写入权限。

我设置读取权限文件:

chmod 400 path

当用户尝试编辑此类文件时,我想要读取权限文件不显示解锁对话框

是否有任何 FS 标志可以帮助我?

我只是注意到,如果我尝试更改文件的所有者,烦人的对话框就会消失,用户可以将文件复制到另一个地方。这正是我正在寻找的,但是,这是阻止文件的正确方法吗?

这里有 2 张有关所涉及对话的图片

【问题讨论】:

    标签: objective-c macos cocoa permissions filesystems


    【解决方案1】:

    如果文件只有读取权限,那么如果所有者(或其他人)试图更改文件,文件系统一定会要求输入密码。通常,不能将文件的所有者更改为其他所有者;这将是一个重大的安全漏洞。

    也许您正在寻找的是固定旗帜?这将迫使用户复制文件以使用它,但读取它应该没有问题。您可以从给定文件的信息窗口的查找器中轻松获得。

    这不是标准的 unix 标志,而是 hfs 的东西。您必须使用 NSFileManager 和方法

    进行设置
    setAttributes:ofItemAtPath:error:
    

    【讨论】:

    • 您的解决方案是正确的并且确实有效。但我想避免任何类型的对话。在您的解决方案中,当我打开文件时会出现一个对话框。
    • 我不确定我是否完全理解您想要的内容,但您可以尝试在应用程序中复制该文件,同时更改其权限并打开它。如果该文件未被用户修改,则将其丢弃,如果是,则保留它或用它替换旧文件。
    • 别介意。您的第一个解决方案是正确的。被阻止文件对话框的问题是依赖于应用程序的,所以这不是什么大问题。感谢您的帮助:已接受答案!
    猜你喜欢
    • 1970-01-01
    • 2014-02-09
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    相关资源
    最近更新 更多