Разница между владельцем и группой

Настоящая проблема заключается в том, как вы разработали синтаксис командной строки <mypgm>. Вместо того, чтобы пытаться поддерживать два способа интерпретации его аргументов, вместо этого предоставьте два способа его вызова.

Команды Shebang предназначены для сценариев, которые выполняют содержимое вашего сценария; это может быть bash, perlили что-то еще, но ожидается, что он вызывается с именем файла сценария для выполнения. Как bashэто делает? Это не угадывается. Если он встречает какой-либо аргумент, который не похож на параметр (или аргумент параметра ), он рассматривает его как сценарий, который необходимо выполнить; аргументы после этого передаются сценарию. Например:

/bin/bash -x -e somename foo bar

Здесь bash будет искать файл somenameи пытаться запустить его как скрипт с аргументами fooи bar. Вы должны сделать то же самое, потому что вы возможно захотите когда-нибудь написать <mypgm> <myscript>в командной строке.

Если вы хотите, чтобы сценарий -меньше использования <mypgm>использовался по умолчанию, вы можете потребовать передачи сценария с <mypgm> -f <myscript>. Вот как это делает sed. Затем вы использовали бы его в строке shebang, подобной этой:

#!<mypgm> -f

Если вы хотите, чтобы сценарий использовался по умолчанию, как в случае с bashи perl, создайте параметр, который говорит: «На этот раз сценария нет». Вы можете использовать --для этого, чтобы <mypgm> -- one two threeне пытался запуститьone(или что-то еще )как скрипт.В этом случае строка shebang будет просто читать:

#!<mypgm>
0
24.03.2021, 11:02
2 ответа

Ну, в одном случае для каталога установлен липкий бит(флаг ограничения удаления t), как в случае /tmp.

Здесь только владелец файла может удалить его (или владелец каталога)-независимо от прав группы.


Теперь о вашем случае:

Собственник может бегать chmod u+wсколько угодно, так что этот подход провалится.


Простое и возможное решение :Почему бы не сделать так, чтобы user1и user2имели один и тот же UID, и передать право собственности указанному UID? Будет ли это конфликтовать с другими ограничениями вашей системы?

0
28.04.2021, 22:56

Can we consider the owner as a group that only has exactly 1 member? Does the owner have any special abilities apart from the given permissions?

Не совсем так. Владелец является владельцем файла и может изменять его метаданные. Например, команды chown, chgrp, chmodработают только для владельца файла/каталога (или для root).

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

С помощью этой информации вы должны увидеть, что ограничение прав доступа владельца каталога не имеет особого смысла, потому что как владелец он может назначить любое разрешение по своему выбору. Поэтому в вашем примере вы не можете иметь user3в качестве владельца.

Что касается меня, я бы, вероятно, владел каталогом как root. Я бы user1и user2в группе, как вы предлагаете. И user3я бы вообще исключил, чтобы они считались "другими".

Если бы у вас были другие учетные записи в системе, которые не должны иметь доступа к этим каталогам, например user3, я бы создал еще одну группу, содержащую всех разрешенных пользователей, и использовал бы каталог с разрешениями этой группы для размещения целевого каталога.:

holding_dir: owner:root=rwx, group:big_group(users 1,2,3):rx, other:-
  |
  +-- target1: owner:root=rwx, group:small_group(users 2,3):rwx, other:rx
  +-- target2: owner:root=rwx, group:small_group(users 2,3):rwx, other:wx
3
28.04.2021, 22:56

Теги

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