Солярис - Наследование файлами владение пользователя каталога

Вы используете здесь-документ, разграниченный EONG строка.

При представлении здесь-документов с <<word, подвергается ли здесь-документ расширению, зависит от того, заключается ли любой символ в слове в кавычки. Когда никакой символ не заключается в кавычки, здесь-документ подвергается расширению параметра, замене команды и arithmethic расширению. Когда по крайней мере один символ заключается в кавычки, здесь-документ не подвергается расширению; Граница и Korn (и POSIX) оболочки используют полностью неупомянутое слово в качестве заключительного разделителя, в то время как оболочки C используют слово как есть.

Вы могли переписать свой пример как:

#!/bin/csh
echo "Before newgrp"
/usr/bin/newgrp users <<"EONG"
echo "hello from within newgrp"
set a=npy
echo $a
id
"EONG"
echo "After newgrp"

Иначе, с неупомянутым словом, необходимо выйти $a как \$a препятствовать тому, чтобы он был заменен оболочкой прежде чем быть переданным как stdin к newgrp:

#!/bin/csh
echo "Before newgrp"
/usr/bin/newgrp users <<EONG
echo "hello from within newgrp"
set a=npy
echo \$a
id
EONG
echo "After newgrp"
3
03.06.2014, 17:47
2 ответа

Вы не можете этого сделать. Стандартные разрешения Unix могут ограничиваться только этим, в какой-то момент нужно подумать об использовании ACL .

Вам следует подумать о том, что нужно вашей системе. Если вам это абсолютно необходимо, вам следует начать читать списки ACL.

Вот страница Arch Wiki по этой теме. Большая часть этого, вероятно, будет работать для любого дистрибутива Linux, а также для Solaris, поскольку Linux в основном копировал ACL Solaris.

1
27.01.2020, 21:31

Я не думаю, что Solaris позволяет не коренному пользователю раздавать файлы другому пользователю. Поэтому нельзя делать вновь созданные файлы, принадлежащие другому пользователю: файлы останутся в собственности пользователя, который их создал.

Вы можете организовать для пользователя дополнительные права доступа к файлам с помощью списка контроля доступа . Если вы установите запись ACL для пользователя alice, то разрешения в этой записи будут применяться вместо традиционных разрешений Unix. Вы можете использовать команду chmod или setfacl для установки ACL, и ls -v](http://docs.oracle.com/cd/E26502_01/html/E29030/ls-1.html#scrolltoc) или [getfacl` для просмотра ACL в файле. В дополнение к ACL, который применяется к самому себе, в каталоге есть ACL по умолчанию, который применяется к файлам, только что созданным в этом каталоге. Таким образом, необходимо установить ACL по умолчанию в каталоге верхнего уровня.

chmod A+default:user:alice:rwx test
0
27.01.2020, 21:31

Теги

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