Приложение соединено двумя способами: колотить, и терминалу.
Соединение с терминалом - то, что стандартные потоки (stdin, stdout и stderr) приложения подключены к терминалу. Типичные приложения GUI не используют stdin или stdout, но они могли бы испустить сообщения об ошибках к stderr.
Соединение с оболочкой - это, если Вы запустили приложение с foo &
, это остается известным оболочке, поскольку задание, как объяснено в Различии между nohup, отрицает и и. При закрытии терминала оболочка получает a SIGHUP
, который это распространяет к его заданиям. Когда Вы вводите exit
в оболочке это отрицает задания заранее (это настраивается в некоторой степени).
Можно разъединить соединение оболочки с disown
встроенный. Вы не можете разъединить клеммное соединение, по крайней мере, не без закулисных методов (использующий отладчик), который мог разрушить программу.
Большинство систем Unix предотвращает пользователей от “отдачи” файлов, то есть, пользователи могут только работать chown
если у них есть полномочия группы и целевой пользователь. Начиная с использования chown
требует, чтобы владение файлом или быть базировались (пользователи никогда не могут адаптировать файлы других пользователей), только базируйтесь, может работать chown
изменить владельца файла на другого пользователя.
Причина этого ограничения состоит в том, что отдача файла другому пользователю может позволить плохим вещам произойти в редких, но все еще важных ситуациях. Например:
chown
сделать тот файл принадлежавшим другому пользователю Bill. Файл затем рассчитал бы под выделенным дисковым пространством Bill даже при том, что только Alice может использовать файл.Можно запустить команду, но она не будет работать, если Вы не будете корнем. Это легко: вообразите пользователя, который может изменить программное обеспечение на пользователя root. Это может добавить, что setuid укусил и, voilà, парень является корнем! Так, использование может добавить бит с chmod, но никакой шанс изменить владельца файлов.
На Linux Вам нужна возможность CAP_CHOWN к показанному. корню предоставляют такой. Обратитесь к: http://vouters.dyndns.org/tima/Linux-OpenVMS-C-Implementing_chown.html для объяснений. Если Вы намереваетесь дать возможность CAP_CHOWN, создайте свой код с libcap-ng или libcap, как продемонстрировано: http://vouters.dyndns.org/tima/Linux-PAM-C-Pluggable_Authentication_Modules_programming_example.html, где у Вас есть к простой замене CAP_AUDIT_WRITE с CAP_CHOWN.
/bin/bash
, setuid это, и затемchown
это тому, кого бы ни они хотят. Теперь у них есть доступ оболочки как у того человека. – Patrick 30.03.2013, 00:30chown
всегда очищает setuid и setgid биты. – Gilles 'SO- stop being evil' 30.03.2013, 01:06drwxr-xr-x ring0 ring0 .
) в котором корень имеет регулярный файл (-rw-r--r-- root root file
), почему я не могу сделатьchown ring0 file
так как так или иначе позволяется сделать, какring0
,cp file x ; rm file ; mv x file
(и некоторые дополнительныеtouch sometime file
...)? – Ring Ø 05.12.2015, 09:37