FWIW понятия "фоновый процесс"[1], "управление терминалом"[2] и оператор &
из оболочки на несколько лет предшествовали концепции управления заданиями, которая появилась только в 4.1BSD.
После внедрения и стандартизации управления заданиями поведение фоновых процессов в оболочках без управления заданиями можно было проанализировать как своего рода «упрощенное управление заданиями», где игнорирование SIGINT
и SIGQUIT
и перенаправление стандартный ввод из /dev/null
в конвейерах начался с &
как бы имитирует поведение фоновых заданий (, но не совсем там; -)).
It also seems to indicate that both the foreground processes and background processes can attach the same terminal at the same time. Is it true? Because I always think that the terminal can only attach to the foreground proccesses (group).
В оболочке без управления заданиями все процессы (, будь то синхронные («передний план» )или асинхронные («фоновый» ), фактически выполняются в одной и той же группе процессов (задание ), который аналогичен процессу оболочки и может быть фоновым или приоритетным заданием на терминале.
Поскольку все эти процессы будут получать, например. SIGINT
из ядра, когда сама оболочка находится в группе процессов переднего плана и ^C
набирается на терминале, их «фоновый режим» моделируется путем игнорирования сигнала SIGINT
. Волшебный прерывает , когда команды, начинающиеся с &
из сценария оболочки, устанавливают свои собственные обработчики SIGINT
.
Обратите внимание, что сценарии оболочки обычно запускаются без управления заданиями, если только не используется опция set -m
.
[1] см. главу «Оболочка» из книги «Unix для начинающих» , часть дистрибутива Unix v6 (1975 ).
[2] «управление пишущей машинкой» на справочной странице kill (2)того же Unix v6.
Только root может изменить владельца файла. Владелец не может передать право собственности, если только владельцем не является root
или он не использует sudo
для запуска команды.
Группа владельцев файла может быть изменена владельцем файла, если владелец принадлежит к этой группе. Группа-владелец файла может быть изменена с помощью root
на любую группу. Члены группы владельцев, кроме владельца, не могут изменить группу владельцев файла.
Setuid : when an executable file's setuid permission is set, users may execute that program with a level of access that matches the user who owns the file.
Возможность изменить владельца файла с непривилегированным пользователем -может вызвать множество проблем с безопасностью, например:
chmod
)Только root
или процесс с возможностью CAP_CHOWN
может изменить владельца файла (см.man capabilities
).
Но вы можете использовать ACL для установки специальных разрешений для определенных пользователей или групп (см.man setfacl
).
С помощью списков ACL NFSv4 вы даже можете предоставить пользователям или группам, не являющимся -владельцами, разрешение на изменение списков ACL (, которое обычно ограничивается root, владельцем файла и процессами с CAP_FOWNER
), см. man nfs4_acl
.