Будут ли биты разрешения, установленные для каталога на внешнем жестком диске, соблюдаться в Windows?

Любая программа (интерактивная, как vi, или неинтерактивная, как sed) имеет эффективный идентификатор пользователя (EUID), который система использует для определения того, к каким файлам она может получить доступ, и какие операции она может выполнять (читать, писать и/или выполнять). (Существует также набор групповых идентификаторов, которые используются для тех же целей, если EUID отличается от владельца файла. А если ни EUID, ни GID не совпадают, то доступ контролируется битами разрешения "Other".)

Если ваша программа запускается от имени root (EUID 0), то она может получить доступ ко всему, к чему вообще можно получить доступ, хотя некоторые вещи могут быть доступны только для чтения. (Конечно, root может изменить разрешение на такие вещи, поэтому read-only рекомендуется только для root.)

Одним из распространенных способов разрешить доступ некоторым пользователям или программам, не разрешая доступ всем, является изменение владельца файла на специального пользователя, созданного для этой цели. Например, люди часто создают пользователя веб-администратора или администратора БД, который может редактировать соответствующие файлы конфигурации.

В вашем случае вы можете создать специального пользователя, изменить владельца файлов в /etc, которые должны быть доступны, а затем запустить вашу программу от имени этого пользователя, используя su.

Другой подход - переместить редактируемые файлы в другое место и поместить символические ссылки на это место в /etc.

Как бы вы это ни сделали, вы должны быть уверены, что пользователям / UID / GID, которые могут получить доступ к файлам, доверена любая функциональность. Например, вы не захотите, чтобы пользователи без права root могли редактировать файл паролей, потому что они могут легко получить привилегии root.

1
28.05.2018, 01:43
1 ответ

If I set some permission bits on a directory in the file system, for example to be executable and readable and writable only by root, will the permission bits be respected when I plug the external hard drive to a Windows system?

No, los permisos de archivos UNIX no funcionan en Windows.

I would like to find a way to restrict access to a directory on my external hard drive from any OS.

En general, cada sistema operativo tiene su forma diferente de establecer permisos, por lo que eso no es posible. Deberá establecer los permisos apropiados en los archivos según el sistema operativo que esté montado actualmente en el sistema de archivos.

Citando de esta respuesta:

NTFS has Windows ACEs. Unix uses "mode bits" on each file.

On NTFS, each file can have an owner, and zero or more Windows access control entries (ACEs). An ACE consists of a principal (users and groups are principals), a set of operations (Read, Write, Execute, etc.) and whether those operations are allowed or denied. Files can have many ACEs. Other objects in Windows other than files can have ACEs as well, such as registry entries, printer objects, and other things. All ACEs are taken into account when a file operation occurs. Deny takes precedence over allow. Windows ACEs support inheritance where you can set an ACE for a directory and have it automatically propagate to lower level directories.

Files in Unix have an owning user (owner) and an owning group (owner-group). There are three fixed "principals" which are owner, members of the owning group, and everyone else (a.k.a world). For each principal there are three "bits" which cover read, write, and execute abilities. (these have different meanings for directories than files, see this). These bits determine who can perform what operations. This is called the file's mode and is built into the file (there are no separate ACEs).

2
28.04.2021, 23:46

Теги

Похожие вопросы