Как создать ярлык на рабочем столе для общего сетевого ресурса и предотвратить его удаление (возможно, пользователем без полномочий root?)

2 ответа2

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 о том, что удаление контролируется разрешениями родительского каталога, в основном верно, но оба эти параметра переопределяют это и предотвращают перемещение, переименование или удаление файла.

0

Не уверен, что это приемлемый ответ для вашей ситуации (и не уверен, есть ли у 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.

Возможно, вы также захотите отменить разрешения на запись для ссылок, чтобы предотвратить злонамеренные действия со стороны пользователей. Первый подход, вероятно, немного более безопасен, когда объединяется с созданием корневого домашнего каталога только для чтения, поскольку обычные пользователи не могут заменить ссылки на рабочем столе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .