在 MacOS 上,创建桌面快捷方式并防止其被删除

在 MacOS 上,创建桌面快捷方式并防止其被删除

如何创建网络共享的桌面快捷方式,并防止它被删除(可能被非 root 用户删除?)

答案1

有几种方法可以做到这一点;要么通过锁定别名文件,要么使用访问控制列表:

  • 选项1,锁定文件(注意:只有所有者才允许解锁):

    # Create alias however you want to, then...
    sudo chown root /Users/ensnare/Desktop/AliasFile
    sudo chflags uchg /Users/ensnare/Desktop/AliasFile
    
  • 选项2,访问控制列表:

    # Create alias however you want to, then...
    sudo chown root /Users/ensnare/Desktop/AliasFile
    sudo chmod 644 /Users/ensnare/Desktop/AliasFile
    sudo chmod +a "group:everyone deny delete" /Users/ensnare/Desktop/AliasFile
    

请注意@lungj 的声明,删除由父目录的权限操作系统控制大多确实,但是这两个选项都会覆盖该选项并阻止移动、重命名或删除文件。

答案2

不确定这是否是适合您情况的答案(也不确定 macOS 是否有特殊机制来实现您想要的功能),但删除文件的权限实际上来自目录本身。因此,如果您想防止文件被删除,则需要删除相关用户对该目录的写访问权限。这意味着您可以将整个目录设为只读,~/Desktop并允许用户在桌面上的子目录中创建文件,或者您可以在桌面上创建一个只读的目录并将快捷方式放在那里,希望没有人会删除它。

# Shortcuts directly on desktop. Now, users have to delete the Desktop directory to remove the shortcuts.
mkdir ~/Desktop/read-write # Create directory where users can add/remove data.
### Add your links to the Desktop.
sudo chown root ~/Desktop # Don't own everything inside, just the directory itself.
chmod -r ~/Desktop # Prevent users from adding/removing files on the desktop.

# Shortcuts in a directory on the desktop. Users have to delete this directory to remove your shortcuts, but can add/remove stuff on the desktop freely.
mkdir ~/Desktop/link_directory # Create directory for your links.
### Add your links to the directory.
sudo chown root ~/Desktop/link_directory
chmod -r ~/Desktop/link_directory # Prevent users from adding/removing files in the link directory.

您可能还想取消链接的写入权限,以防止用户的恶意操作。第一种方法可能更安全一些,如果将根主目录也设为只读,因为普通用户无法替换桌面上的链接。

相关内容