แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒ›แƒฌแƒ”แƒ แƒ˜ Linux-แƒจแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒ—

แƒ”แƒ แƒ—แƒฎแƒ”แƒš, แƒ˜แƒœแƒขแƒ”แƒ แƒ•แƒ˜แƒฃแƒก แƒ“แƒ แƒแƒก แƒ›แƒ™แƒ˜แƒ—แƒฎแƒ”แƒก, แƒ แƒแƒก แƒ›แƒแƒ˜แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ—, แƒ—แƒฃ แƒแƒฆแƒ›แƒแƒแƒฉแƒ”แƒœแƒ—, แƒ แƒแƒ› แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜ แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ แƒแƒ› แƒ“แƒ˜แƒกแƒ™แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒ˜ แƒแƒ›แƒแƒ”แƒฌแƒฃแƒ แƒ?

แƒ แƒแƒ—แƒฅแƒ›แƒแƒฃแƒœแƒ“แƒ แƒ•แƒฃแƒžแƒแƒกแƒฃแƒฎแƒ”, แƒ แƒแƒ› แƒ•แƒœแƒแƒฎแƒแƒ•แƒ“แƒ˜ แƒแƒ› แƒแƒ“แƒ’แƒ˜แƒšแƒก แƒ“แƒ แƒ—แƒฃ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ, แƒ›แƒแƒ•แƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒ”แƒ‘แƒ“แƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒก.
แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒœแƒขแƒ”แƒ แƒ•แƒ˜แƒฃแƒ”แƒ แƒ›แƒ แƒฐแƒ™แƒ˜แƒ—แƒฎแƒ, แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ, แƒ—แƒฃ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒแƒšแƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒ˜ แƒ“แƒแƒœแƒแƒงแƒแƒคแƒ–แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒกแƒ”แƒ•แƒ” แƒ•แƒ”แƒ  แƒฎแƒ”แƒ“แƒแƒ•แƒ— แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ›แƒ—แƒ”แƒš แƒแƒ“แƒ’แƒ˜แƒšแƒก แƒ“แƒแƒ˜แƒ™แƒแƒ•แƒ”แƒ‘แƒ”แƒœ?

แƒแƒ›แƒแƒ–แƒ” แƒ›แƒ” แƒ•แƒ—แƒฅแƒ•แƒ˜, แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฎแƒ”แƒ“แƒแƒ— แƒฆแƒ˜แƒ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ”แƒ‘แƒก, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, lsof แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ“แƒ แƒ’แƒแƒ˜แƒ’แƒแƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ›แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒ› แƒ“แƒแƒ˜แƒ™แƒแƒ•แƒ แƒ›แƒ—แƒ”แƒšแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ•แƒ แƒชแƒ”, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒแƒ— แƒ’แƒแƒ แƒ”แƒ›แƒแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒ˜แƒ›แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ—แƒฃ แƒแƒ แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜. .

แƒ˜แƒœแƒขแƒ”แƒ แƒ•แƒ˜แƒฃแƒ”แƒ แƒ›แƒ แƒ‘แƒแƒšแƒ แƒกแƒ˜แƒขแƒงแƒ•แƒแƒ–แƒ” แƒจแƒ”แƒ›แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒœแƒ แƒ“แƒ แƒ“แƒแƒฃแƒ›แƒแƒขแƒ แƒ—แƒแƒ•แƒ˜แƒก แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒก: โ€žแƒ“แƒแƒ•แƒฃแƒจแƒ•แƒแƒ—, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜, แƒ”แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒŸแƒฃแƒ แƒœแƒแƒšแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ›แƒแƒก แƒแƒ  แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒโ€œ?

โ€แƒ™แƒแƒ แƒ’แƒ˜,โ€ แƒ•แƒฃแƒžแƒแƒกแƒฃแƒฎแƒ” แƒ›แƒ”, โ€แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ›แƒแƒ แƒ—แƒแƒ— แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒจแƒ˜ แƒ“แƒ แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ— แƒ˜แƒ’แƒ˜.โ€
แƒ˜แƒœแƒขแƒ”แƒ แƒ•แƒ˜แƒฃแƒ”แƒ แƒ›แƒ แƒ’แƒแƒแƒžแƒ แƒแƒขแƒ”แƒกแƒขแƒ: โ€žแƒแƒ แƒ, แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ, แƒฉแƒ•แƒ”แƒœ แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒจแƒ˜ แƒจแƒ”แƒœแƒแƒฎแƒฃแƒšแƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ—แƒแƒ•แƒแƒ“ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ—แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ•แƒ”แƒ  แƒ•แƒแƒ˜แƒซแƒฃแƒšแƒ”แƒ‘แƒ— แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒแƒกโ€œ.

โ€แƒ™แƒแƒ แƒ’แƒ˜,โ€ แƒ•แƒฃแƒ—แƒฎแƒแƒ แƒ˜ แƒ›แƒ”, โ€แƒ—แƒฃ แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ— แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ“แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜, แƒ›แƒแƒจแƒ˜แƒœ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒ•แƒฌแƒ›แƒ˜แƒœแƒ“แƒแƒ— แƒ”แƒก แƒฆแƒ˜แƒ แƒคแƒแƒ˜แƒšแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—, แƒ—แƒฃแƒœแƒ“แƒแƒช แƒ˜แƒก แƒ•แƒ”แƒ  แƒ“แƒแƒ•แƒ˜แƒœแƒแƒฎแƒแƒ— ls แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒแƒจแƒ˜. แƒคแƒแƒ˜แƒšแƒฃแƒ  แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒ–แƒ”โ€œ.

แƒ˜แƒœแƒขแƒ”แƒ แƒ•แƒ˜แƒฃแƒ”แƒ แƒ˜ แƒ™แƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ˜ แƒ˜แƒงแƒ, แƒ›แƒ” แƒ™แƒ˜ แƒแƒ แƒ.

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ•แƒ˜แƒคแƒ˜แƒฅแƒ แƒ”, แƒ แƒแƒขแƒแƒ› แƒแƒ  แƒ˜แƒญแƒ แƒ”แƒ‘แƒ แƒ˜แƒก, แƒ•แƒ˜แƒœแƒช แƒฉแƒ”แƒ›แƒก แƒชแƒแƒ“แƒœแƒแƒก แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก? แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ, แƒ—แƒฃ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ? แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ, แƒ—แƒฃ แƒฉแƒ•แƒ”แƒœ แƒ•แƒ”แƒ  แƒ’แƒแƒ“แƒแƒ•แƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒ— แƒžแƒ แƒแƒชแƒ”แƒกแƒก แƒ“แƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ แƒฉแƒแƒฌแƒ”แƒ แƒก แƒคแƒแƒ˜แƒšแƒฃแƒ  แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒก แƒ“แƒแƒœแƒแƒงแƒแƒคแƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒแƒšแƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒ˜ แƒแƒ  แƒแƒฅแƒ•แƒก? แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ, แƒ—แƒฃ แƒฉแƒ•แƒ”แƒœ แƒ•แƒ”แƒ  แƒ“แƒแƒ•แƒ™แƒแƒ แƒ’แƒแƒ•แƒ— แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฃแƒ™แƒ•แƒ” แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒš แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒ˜แƒ› แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒกแƒแƒช, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒ”แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ แƒฌแƒ”แƒ แƒก แƒแƒœ แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒก แƒ“แƒแƒฌแƒ”แƒ แƒแƒก?

แƒขแƒฃแƒ–แƒ˜แƒ™แƒ˜

แƒฉแƒ”แƒ›แƒ˜ แƒ™แƒแƒ แƒ˜แƒ”แƒ แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒจแƒ˜ แƒ•แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ“แƒ˜ แƒจแƒ”แƒ›แƒ”แƒฅแƒ›แƒœแƒ แƒžแƒแƒขแƒแƒ แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ“แƒ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒแƒœแƒแƒฎแƒแƒ“. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ•แƒ˜แƒคแƒ˜แƒฅแƒ แƒ”, แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒแƒ›แƒ—แƒฎแƒ•แƒ˜แƒ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ›แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ—แƒแƒœ. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ›แƒ” แƒ›แƒงแƒแƒ•แƒก แƒ˜แƒ•แƒแƒœแƒแƒ•แƒ˜ แƒ˜แƒ•แƒแƒœ แƒ˜แƒ•แƒแƒœแƒแƒ•แƒ˜แƒฉแƒ˜ แƒ“แƒ แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ›แƒ˜แƒซแƒšแƒ˜แƒ แƒ›แƒแƒ—แƒ—แƒแƒœ แƒ“แƒแƒ›แƒ”แƒ’แƒแƒ‘แƒ แƒ”แƒ‘แƒ? แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒจแƒ”แƒ›แƒ˜แƒซแƒšแƒ˜แƒ แƒแƒฆแƒ•แƒœแƒ˜แƒจแƒœแƒ, แƒ แƒแƒ› แƒซแƒแƒฆแƒšแƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒแƒ“ "แƒขแƒฃแƒ–แƒ˜แƒ™แƒ˜" แƒกแƒฌแƒแƒ แƒ”แƒ“ แƒแƒ› แƒ˜แƒ•แƒแƒœแƒ”แƒก แƒ”แƒ™แƒฃแƒ—แƒ•แƒœแƒ˜แƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ, แƒ—แƒฃ แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒก แƒ“แƒ แƒ˜แƒ•แƒแƒœแƒ”แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“ แƒฎแƒ“แƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒแƒšแƒ˜แƒ? แƒ›แƒ”แƒ แƒ” แƒ’แƒแƒ›แƒแƒ•แƒ, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœแƒก แƒแƒšแƒ˜แƒ แƒ˜แƒ•แƒแƒœแƒแƒ•แƒœแƒ แƒ˜แƒ•แƒแƒœแƒแƒ•แƒแƒก แƒซแƒแƒฆแƒšแƒ˜ แƒแƒฆแƒแƒ  แƒ”แƒงแƒแƒšแƒ”แƒ‘แƒ แƒ“แƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒขแƒฃแƒ–แƒ˜แƒ™แƒ˜ แƒ›แƒแƒ˜แƒœแƒช แƒแƒ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒ˜แƒ•แƒแƒœแƒ”แƒก แƒ”แƒ™แƒฃแƒ—แƒ•แƒœแƒ˜แƒ—. แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒก แƒแƒซแƒšแƒ”แƒ•แƒ“แƒ แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ  แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒแƒ แƒก (ID) แƒ“แƒแƒ”แƒฎแƒ›แƒแƒ แƒ แƒแƒ› แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ›แƒแƒ’แƒ•แƒแƒ แƒ”แƒ‘แƒแƒก แƒ“แƒ แƒฉแƒ”แƒ›แƒ˜ Tuzik แƒ›แƒ˜แƒ‘แƒ›แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ แƒแƒ› ID-แƒ—แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช, แƒคแƒแƒฅแƒขแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“, แƒ›แƒฎแƒแƒšแƒแƒ“ แƒกแƒ”แƒ แƒ˜แƒฃแƒšแƒ˜ แƒœแƒแƒ›แƒ”แƒ แƒ˜ แƒ˜แƒงแƒ. แƒแƒ›แƒ แƒ˜แƒ’แƒแƒ“, แƒขแƒฃแƒ–แƒ˜แƒก แƒ›แƒคแƒšแƒแƒ‘แƒ”แƒšแƒก แƒฐแƒฅแƒแƒœแƒ“แƒ แƒžแƒ˜แƒ แƒแƒ“แƒแƒ‘แƒ˜แƒก แƒ›แƒแƒฌแƒ›แƒแƒ‘แƒ˜แƒก แƒœแƒแƒ›แƒ”แƒ แƒ˜ 2 แƒ“แƒ แƒ แƒแƒฆแƒแƒช แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜ แƒ˜แƒ•แƒแƒœแƒ” แƒ˜แƒงแƒ แƒแƒ› แƒžแƒ˜แƒ แƒแƒ“แƒแƒ‘แƒ˜แƒก แƒ›แƒแƒฌแƒ›แƒแƒ‘แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒ˜ แƒแƒšแƒ˜แƒ แƒ’แƒแƒฎแƒ“แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒžแƒ˜แƒ แƒแƒ“แƒแƒ‘แƒ˜แƒก แƒ›แƒแƒฌแƒ›แƒแƒ‘แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ. แƒ™แƒแƒชแƒแƒ‘แƒ แƒ˜แƒแƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒ”แƒชแƒฎแƒแƒ•แƒ”แƒšแƒ”แƒแƒ‘แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒฃแƒšแƒแƒ“ แƒ›แƒแƒ’แƒ•แƒแƒ แƒ“แƒ.

แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒ›แƒฌแƒ”แƒ แƒ˜

แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ“แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒแƒ› แƒคแƒแƒ˜แƒšแƒ—แƒแƒœ, แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒ, แƒ แƒแƒช แƒฉแƒ•แƒ”แƒœแƒ˜ แƒซแƒแƒฆแƒšแƒ˜แƒกแƒ แƒ“แƒ แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ. แƒ“แƒแƒ•แƒฃแƒจแƒ•แƒแƒ—, แƒ’แƒแƒ•แƒฎแƒกแƒ”แƒœแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒแƒ“ ivan.txt แƒ“แƒ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ” แƒ›แƒแƒกแƒจแƒ˜ แƒกแƒ˜แƒขแƒงแƒ•แƒ˜แƒก tuzik แƒฉแƒแƒฌแƒ”แƒ แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒฎแƒแƒšแƒแƒ“ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒแƒกแƒ "t"-แƒ˜แƒก แƒฉแƒแƒฌแƒ”แƒ แƒ แƒ›แƒแƒ•แƒแƒฎแƒ”แƒ แƒฎแƒ” แƒคแƒแƒ˜แƒšแƒจแƒ˜ แƒ“แƒ แƒแƒ› แƒคแƒแƒ˜แƒšแƒก แƒ•แƒ˜แƒœแƒ›แƒ”แƒ› แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ”แƒ แƒฅแƒ•แƒ, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, olya.txt. แƒ›แƒแƒ’แƒ แƒแƒ› แƒคแƒแƒ˜แƒšแƒ˜ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ แƒฉแƒ”แƒ‘แƒ แƒ“แƒ แƒ›แƒ” แƒ›แƒแƒ˜แƒœแƒช แƒ›แƒ˜แƒœแƒ“แƒ แƒ›แƒแƒกแƒจแƒ˜ แƒฉแƒ”แƒ›แƒ˜ แƒขแƒฃแƒ–แƒ˜แƒก แƒฉแƒแƒฌแƒ”แƒ แƒ. แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒชแƒ แƒคแƒแƒ˜แƒšแƒ˜ แƒ˜แƒฎแƒกแƒœแƒ”แƒ‘แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ˜แƒ— แƒ’แƒแƒฎแƒกแƒœแƒ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒœแƒแƒ–แƒ” แƒ•แƒ˜แƒฆแƒ”แƒ‘ แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ  ID-แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ˜แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก แƒคแƒแƒ˜แƒšแƒ–แƒ”, แƒ”แƒก ID แƒแƒ แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒ›แƒฌแƒ”แƒ แƒ˜. แƒ“แƒ แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒแƒ  แƒแƒฅแƒ•แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒ แƒแƒก แƒ“แƒ แƒ•แƒ˜แƒœ แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก แƒแƒ› แƒคแƒแƒ˜แƒšแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฌแƒแƒ˜แƒจแƒแƒšแƒแƒก, แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒแƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜, แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒแƒก แƒ›แƒคแƒšแƒแƒ‘แƒ”แƒšแƒ˜, แƒแƒœ แƒฌแƒแƒ”แƒ แƒ—แƒ•แƒแƒก แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒกแƒ แƒ“แƒ แƒฌแƒ”แƒ แƒ˜แƒก แƒฃแƒคแƒšแƒ”แƒ‘แƒ, แƒ›แƒ” แƒ›แƒแƒ˜แƒœแƒช แƒ›แƒ”แƒฅแƒœแƒ”แƒ‘แƒ แƒฌแƒ•แƒ“แƒแƒ›แƒ แƒ›แƒแƒกแƒ–แƒ”, แƒ แƒแƒ“แƒ’แƒแƒœ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ’แƒแƒฎแƒกแƒœแƒ˜แƒก แƒ“แƒ แƒแƒก แƒ›แƒฅแƒแƒœแƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒแƒœ/แƒ“แƒ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒก แƒฃแƒคแƒšแƒ”แƒ‘แƒ แƒ“แƒ แƒ›แƒแƒ•แƒแƒฎแƒ”แƒ แƒฎแƒ” แƒ›แƒแƒกแƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ, แƒ แƒแƒช แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒแƒกแƒ” แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ•แƒแƒ’แƒ แƒซแƒ”แƒšแƒ.

Linux-แƒจแƒ˜ libc แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ แƒฎแƒกแƒœแƒ˜แƒก 3 แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก (แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก), แƒ“แƒแƒœแƒแƒ›แƒ แƒ˜แƒšแƒ˜ 0,1,2. แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒ‘แƒ›แƒฃแƒšแƒ”แƒ‘แƒ–แƒ” แƒ™แƒแƒชแƒ˜ stdio ะธ แƒ™แƒแƒชแƒ˜ stdout

  • แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒก 0 แƒ”แƒฌแƒแƒ“แƒ”แƒ‘แƒ STDIN แƒ“แƒ แƒแƒกแƒแƒชแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒงแƒ•แƒแƒœแƒแƒกแƒ—แƒแƒœ
  • แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒก 1 แƒ”แƒฌแƒแƒ“แƒ”แƒ‘แƒ STDOUT แƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒขแƒแƒœแƒแƒ“, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒ‘แƒ”แƒญแƒ“แƒ•แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜
  • แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒก 2 แƒ”แƒฌแƒแƒ“แƒ”แƒ‘แƒ STDERR แƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒขแƒแƒœแƒแƒ“.

แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒแƒจแƒ˜ แƒ’แƒแƒฎแƒกแƒœแƒ˜แƒ— แƒ แƒแƒ˜แƒ›แƒ” แƒคแƒแƒ˜แƒšแƒก แƒฌแƒแƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒแƒ“ แƒแƒœ แƒฉแƒแƒกแƒแƒฌแƒ”แƒ แƒแƒ“, แƒ›แƒแƒจแƒ˜แƒœ แƒ“แƒ˜แƒ“แƒ˜ แƒแƒšแƒ‘แƒแƒ—แƒแƒ‘แƒ˜แƒ— แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒฃแƒคแƒแƒกแƒ ID-แƒก แƒ“แƒ แƒ˜แƒก แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒœแƒแƒ›แƒ”แƒ แƒ˜ 3.

แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒก แƒฉแƒแƒ›แƒแƒœแƒแƒ—แƒ•แƒแƒšแƒ˜แƒก แƒœแƒแƒฎแƒ•แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ—แƒฃ แƒ˜แƒชแƒ˜แƒ— แƒ›แƒ˜แƒกแƒ˜ PID.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ’แƒแƒ•แƒฎแƒกแƒœแƒแƒ— bash แƒ™แƒแƒœแƒกแƒแƒšแƒ˜ แƒ“แƒ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก PID-แƒก

[user@localhost ]$ echo $$
15771

แƒ›แƒ”แƒแƒ แƒ” แƒ™แƒแƒœแƒกแƒแƒšแƒจแƒ˜ แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ—

[user@localhost ]$ ls -lah /proc/15771/fd/
total 0
dr-x------ 2 user user  0 Oct  7 15:42 .
dr-xr-xr-x 9 user user  0 Oct  7 15:42 ..
lrwx------ 1 user user 64 Oct  7 15:42 0 -> /dev/pts/21
lrwx------ 1 user user 64 Oct  7 15:42 1 -> /dev/pts/21
lrwx------ 1 user user 64 Oct  7 15:42 2 -> /dev/pts/21
lrwx------ 1 user user 64 Oct  7 15:42 255 -> /dev/pts/21

แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ“ แƒฃแƒ’แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒงแƒแƒ— แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒก แƒœแƒแƒ›แƒ”แƒ แƒ˜ 255 แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒ–แƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก; แƒ˜แƒก แƒ›แƒ˜แƒกแƒ˜ แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ˜แƒฎแƒกแƒœแƒ แƒ—แƒแƒ•แƒแƒ“ bash-แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ“แƒ แƒแƒ แƒ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ .

แƒแƒฎแƒšแƒ แƒกแƒแƒ›แƒ˜แƒ•แƒ” แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜ แƒแƒกแƒแƒชแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒคแƒกแƒ”แƒ•แƒ“แƒ แƒขแƒ”แƒ แƒ›แƒ˜แƒœแƒแƒšแƒฃแƒ  แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒแƒกแƒ—แƒแƒœ /dev/pts, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ˜แƒœแƒช แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ›แƒแƒ—แƒ˜ แƒ›แƒแƒœแƒ˜แƒžแƒฃแƒšแƒ˜แƒ แƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ›แƒ”แƒแƒ แƒ” แƒ™แƒแƒœแƒกแƒแƒšแƒจแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ

[user@localhost ]$ echo "hello world" > /proc/15771/fd/0

แƒ“แƒ แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ™แƒแƒœแƒกแƒแƒšแƒจแƒ˜ แƒ“แƒแƒ•แƒ˜แƒœแƒแƒฎแƒแƒ•แƒ—

[user@localhost ]$ hello world

แƒ’แƒแƒ“แƒแƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ แƒ“แƒ แƒ›แƒ˜แƒšแƒ”แƒ‘แƒ˜

แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒ’แƒแƒ“แƒแƒแƒชแƒ˜แƒšแƒแƒ— แƒ”แƒก 3 แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก bash-แƒจแƒ˜, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ›แƒ˜แƒšแƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒก แƒแƒ  แƒžแƒ แƒแƒชแƒ”แƒกแƒก, แƒ˜แƒฎ.

[user@localhost ]$ cat /dev/zero | sleep 10000

แƒแƒ› แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒ—แƒแƒ•แƒแƒ“ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ–แƒแƒšแƒ˜ -แƒค แƒ“แƒ แƒœแƒแƒฎแƒ”แƒ— แƒ แƒ แƒฎแƒ“แƒ”แƒ‘แƒ แƒจแƒ˜แƒ’แƒœแƒ˜แƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ™แƒšแƒ”แƒ“ แƒ’แƒ”แƒขแƒงแƒ•แƒ˜แƒ—.

แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒจแƒแƒ‘แƒ”แƒšแƒ˜ bash แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ PID 15771-แƒ˜แƒ— แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒก แƒฉแƒ•แƒ”แƒœแƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒแƒก แƒ“แƒ แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ”แƒกแƒ›แƒ˜แƒก, แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ, แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒแƒ แƒ˜ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜: แƒ™แƒแƒขแƒ แƒ“แƒ แƒซแƒ˜แƒšแƒ˜. แƒ‘แƒแƒจแƒ›แƒ แƒ˜แƒชแƒ˜แƒก, แƒ แƒแƒ› แƒ›แƒแƒก แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒแƒ แƒ˜ แƒ‘แƒแƒ•แƒจแƒ•แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒ“แƒ แƒ›แƒแƒ—แƒ˜ แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒ แƒ”แƒ แƒ— แƒ›แƒ˜แƒšแƒจแƒ˜. แƒกแƒแƒ”แƒ แƒ—แƒ แƒฏแƒแƒ›แƒจแƒ˜, แƒ‘แƒแƒจแƒก แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ 2 แƒ‘แƒแƒ•แƒจแƒ•แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ แƒ“แƒ แƒ”แƒ แƒ—แƒ˜ แƒ›แƒ˜แƒšแƒ˜.

Bash แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ  แƒ–แƒแƒ แƒก แƒ‘แƒแƒ•แƒจแƒ•แƒฃแƒ แƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ›แƒ“แƒ” แƒ›แƒ˜แƒšแƒ˜ แƒ“แƒ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒแƒฎแƒแƒš แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ”แƒ‘แƒก แƒ“แƒ แƒแƒ”แƒ‘แƒ˜แƒ— แƒ›แƒ˜แƒšแƒ˜แƒก แƒ‘แƒฃแƒคแƒ”แƒ แƒ–แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒ‘แƒฃแƒคแƒ”แƒ แƒ˜ แƒฏแƒ”แƒ  แƒแƒ  แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒก แƒฉแƒ•แƒ”แƒœแƒก แƒแƒ  แƒจแƒ•แƒ˜แƒšแƒแƒ‘แƒ˜แƒš แƒžแƒ แƒแƒชแƒ”แƒกแƒก.

แƒ›แƒจแƒแƒ‘แƒ”แƒšแƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒฃแƒ™แƒ•แƒ” แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ›แƒ˜แƒšแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฏแƒ”แƒ  แƒแƒ  แƒแƒ แƒ˜แƒก แƒจแƒ•แƒ˜แƒšแƒแƒ‘แƒ˜แƒšแƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒ˜:

PID    command
15771  bash
lrwx------ 1 user user 64 Oct  7 15:42 0 -> /dev/pts/21
lrwx------ 1 user user 64 Oct  7 15:42 1 -> /dev/pts/21
lrwx------ 1 user user 64 Oct  7 15:42 2 -> /dev/pts/21
lrwx------ 1 user user 64 Oct  7 15:42 3 -> pipe:[253543032]
lrwx------ 1 user user 64 Oct  7 15:42 4 -> pipe:[253543032]
lrwx------ 1 user user 64 Oct  7 15:42 255 -> /dev/pts/21

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ˜ แƒ™แƒšแƒแƒœแƒ˜ bash แƒฅแƒ›แƒœแƒ˜แƒก แƒแƒ  แƒจแƒ•แƒ˜แƒšแƒแƒ‘แƒ˜แƒš แƒžแƒ แƒแƒชแƒ”แƒกแƒก แƒ“แƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ›แƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ:

PID    command
15771  bash
lrwx------ 1 user user 64 Oct  7 15:42 0 -> /dev/pts/21
lrwx------ 1 user user 64 Oct  7 15:42 1 -> /dev/pts/21
lrwx------ 1 user user 64 Oct  7 15:42 2 -> /dev/pts/21
lrwx------ 1 user user 64 Oct  7 15:42 3 -> pipe:[253543032]
lrwx------ 1 user user 64 Oct  7 15:42 4 -> pipe:[253543032]
lrwx------ 1 user user 64 Oct  7 15:42 255 -> /dev/pts/21
PID    command
9004  bash
lrwx------ 1 user user 64 Oct  7 15:57 0 -> /dev/pts/21
lrwx------ 1 user user 64 Oct  7 15:57 1 -> /dev/pts/21
lrwx------ 1 user user 64 Oct  7 15:57 2 -> /dev/pts/21
lrwx------ 1 user user 64 Oct  7 15:57 3 -> pipe:[253543032]
lrwx------ 1 user user 64 Oct  7 15:57 4 -> pipe:[253543032]
lrwx------ 1 user user 64 Oct  7 15:57 255 -> /dev/pts/21
PID    command
9005  bash
lrwx------ 1 user user 64 Oct  7 15:57 0 -> /dev/pts/21
lrwx------ 1 user user 64 Oct  7 15:57 1 -> /dev/pts/21
lrwx------ 1 user user 64 Oct  7 15:57 2 -> /dev/pts/21
lrwx------ 1 user user 64 Oct  7 15:57 3 -> pipe:[253543032]
lrwx------ 1 user user 64 Oct  7 15:57 4 -> pipe:[253543032]
lrwx------ 1 user user 64 Oct  7 15:57 255 -> /dev/pts/21

แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ’แƒ•แƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒ”แƒก, แƒ แƒแƒ› แƒ™แƒšแƒแƒœแƒ˜ แƒแƒฎแƒ“แƒ”แƒœแƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒ™แƒšแƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒแƒก แƒงแƒ•แƒ”แƒšแƒ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒ—, แƒแƒกแƒ” แƒ แƒแƒ›, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ”แƒ แƒ—แƒœแƒแƒ˜แƒ แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒก, แƒแƒกแƒ”แƒ•แƒ” แƒ‘แƒแƒ•แƒจแƒ•แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜. PID 15771-แƒ˜แƒ— แƒ›แƒจแƒแƒ‘แƒ”แƒšแƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒแƒ›แƒแƒชแƒแƒœแƒแƒ แƒ‘แƒแƒ•แƒจแƒ•แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ˜แƒก แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ”แƒšแƒแƒ“แƒ”แƒ‘แƒ แƒ‘แƒแƒ•แƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒžแƒแƒกแƒฃแƒฎแƒก.

แƒ›แƒแƒจแƒแƒกแƒแƒ“แƒแƒ›แƒ”, แƒ›แƒแƒก แƒแƒ  แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ›แƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ˜แƒก แƒฎแƒฃแƒ แƒแƒ•แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ”แƒ‘แƒก แƒœแƒแƒ›แƒ แƒ˜แƒ— 3 แƒ“แƒ 4.

แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ‘แƒแƒ•แƒจแƒ•แƒ˜แƒก แƒ‘แƒแƒจแƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜ PID 9004, แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ˜ dup2, แƒชแƒ•แƒšแƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ˜ STDOUT แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒ›แƒฌแƒ”แƒ แƒ˜ แƒœแƒแƒ›แƒ”แƒ แƒ˜ 1 แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก แƒ›แƒ˜แƒšแƒ–แƒ”, แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ”แƒก แƒแƒ แƒ˜แƒก แƒœแƒแƒ›แƒ”แƒ แƒ˜ 3. แƒแƒ›แƒ แƒ˜แƒ’แƒแƒ“, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜, แƒ แƒแƒกแƒแƒช แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒจแƒ•แƒ˜แƒšแƒ˜ แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก PID 9004-แƒ˜แƒ— STDOUT-แƒ–แƒ” แƒฌแƒ”แƒ แƒก, แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒ“แƒแƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒ แƒ›แƒ˜แƒšแƒ˜แƒก แƒ‘แƒฃแƒคแƒ”แƒ แƒจแƒ˜.

แƒ›แƒ”แƒแƒ แƒ” แƒจแƒ•แƒ˜แƒšแƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜ PID 9005-แƒ˜แƒ—, bash แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก dup2 แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒก STDIN แƒœแƒแƒ›แƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒชแƒ•แƒšแƒ”แƒšแƒแƒ“. แƒแƒฎแƒšแƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜, แƒ แƒแƒกแƒแƒช แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒ”แƒแƒ แƒ” bash PID 0-แƒ˜แƒ— แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ•แƒก, โ€‹โ€‹แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ แƒ›แƒ˜แƒšแƒ˜แƒ“แƒแƒœ.

แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, 3 แƒ“แƒ 4 แƒœแƒแƒ›แƒ แƒ˜แƒแƒœแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒ˜แƒฎแƒฃแƒ แƒ”แƒ‘แƒ แƒ‘แƒแƒ•แƒจแƒ•แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒจแƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒฆแƒแƒ  แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ.

แƒ›แƒ” แƒ’แƒแƒœแƒ–แƒ แƒแƒฎ แƒฃแƒ’แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒงแƒแƒค แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒก 255; แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒจแƒ˜แƒ“แƒ แƒ›แƒ˜แƒ–แƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ‘แƒแƒจแƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒ“แƒแƒ˜แƒฎแƒฃแƒ แƒ”แƒ‘แƒ แƒจแƒ•แƒ˜แƒšแƒแƒ‘แƒ˜แƒšแƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒจแƒ˜.

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, PID 9004-แƒ˜แƒ— แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒจแƒ•แƒ˜แƒšแƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜, bash แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก แƒแƒฆแƒ›แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“แƒ˜ แƒคแƒแƒ˜แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒแƒ–แƒฃแƒกแƒขแƒ”แƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ–แƒ–แƒ”, แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ”แƒก แƒแƒ แƒ˜แƒก /usr/bin/cat.

แƒ›แƒ”แƒแƒ แƒ” แƒจแƒ•แƒ˜แƒšแƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜ PID 9005-แƒ˜แƒ—, bash แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒก แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ”แƒ  แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒš แƒ›แƒ”แƒแƒ แƒ” แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“แƒก, แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ /usr/bin/sleep.

exec แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ˜ แƒแƒ  แƒฎแƒฃแƒ แƒแƒ•แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒฃแƒ แƒ”แƒ‘แƒก, แƒ—แƒฃ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ’แƒแƒฎแƒกแƒœแƒ˜แƒšแƒ˜ แƒแƒ  แƒ˜แƒงแƒ O_CLOEXEC แƒ“แƒ แƒแƒจแƒ˜แƒ— แƒฆแƒ˜แƒ แƒ–แƒแƒ แƒ˜แƒก แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก. แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“แƒ˜ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ“แƒ”แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒแƒ แƒ˜.

แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ— แƒ™แƒแƒœแƒกแƒแƒšแƒจแƒ˜:

[user@localhost ]$ pgrep -P 15771
9004
9005
[user@localhost ]$ ls -lah /proc/15771/fd/
total 0
dr-x------ 2 user user  0 Oct  7 15:42 .
dr-xr-xr-x 9 user user  0 Oct  7 15:42 ..
lrwx------ 1 user user 64 Oct  7 15:42 0 -> /dev/pts/21
lrwx------ 1 user user 64 Oct  7 15:42 1 -> /dev/pts/21
lrwx------ 1 user user 64 Oct  7 15:42 2 -> /dev/pts/21
lrwx------ 1 user user 64 Oct  7 15:42 255 -> /dev/pts/21
[user@localhost ]$ ls -lah /proc/9004/fd
total 0
dr-x------ 2 user user  0 Oct  7 15:57 .
dr-xr-xr-x 9 user user  0 Oct  7 15:57 ..
lrwx------ 1 user user 64 Oct  7 15:57 0 -> /dev/pts/21
l-wx------ 1 user user 64 Oct  7 15:57 1 -> pipe:[253543032]
lrwx------ 1 user user 64 Oct  7 15:57 2 -> /dev/pts/21
lr-x------ 1 user user 64 Oct  7 15:57 3 -> /dev/zero
[user@localhost ]$ ls -lah /proc/9005/fd
total 0
dr-x------ 2 user user  0 Oct  7 15:57 .
dr-xr-xr-x 9 user user  0 Oct  7 15:57 ..
lr-x------ 1 user user 64 Oct  7 15:57 0 -> pipe:[253543032]
lrwx------ 1 user user 64 Oct  7 15:57 1 -> /dev/pts/21
lrwx------ 1 user user 64 Oct  7 15:57 2 -> /dev/pts/21
[user@localhost ]$ ps -up 9004
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
user  9004  0.0  0.0 107972   620 pts/21   S+   15:57   0:00 cat /dev/zero
[user@localhost ]$ ps -up 9005
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
user  9005  0.0  0.0 107952   360 pts/21   S+   15:57   0:00 sleep 10000

แƒ แƒแƒ’แƒแƒ แƒช แƒฎแƒ”แƒ“แƒแƒ•แƒ—, แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒ˜แƒšแƒ˜แƒก แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒแƒ แƒ˜แƒ•แƒ” แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜ แƒ”แƒ แƒ—แƒœแƒแƒ˜แƒ แƒ˜แƒ. แƒแƒ›แƒ แƒ˜แƒ’แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜ แƒแƒ  แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒš แƒžแƒ แƒแƒชแƒ”แƒกแƒก แƒจแƒแƒ แƒ˜แƒก แƒ”แƒ แƒ—แƒกแƒ แƒ“แƒ แƒ˜แƒ›แƒแƒ•แƒ” แƒ›แƒจแƒแƒ‘แƒ”แƒšแƒ—แƒแƒœ.

แƒ›แƒแƒ—แƒ—แƒ•แƒ˜แƒก, แƒ•แƒ˜แƒœแƒช แƒแƒ  แƒ˜แƒชแƒœแƒแƒ‘แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ  แƒ–แƒแƒ แƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช bash แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก, แƒฃแƒแƒฆแƒ แƒ”แƒกแƒแƒ“ แƒ’แƒ˜แƒ แƒฉแƒ”แƒ•แƒ— แƒ’แƒแƒฃแƒจแƒ•แƒแƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ strace-แƒจแƒ˜ แƒ“แƒ แƒœแƒแƒฎแƒแƒ— แƒ แƒ แƒฎแƒ“แƒ”แƒ‘แƒ แƒจแƒ˜แƒ’แƒœแƒ˜แƒ—, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒแƒกแƒ”:

strace -s 1024 -f bash -c "ls | grep hello"

แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒฃแƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ— แƒฉแƒ•แƒ”แƒœแƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒก แƒ“แƒ˜แƒกแƒ™แƒ–แƒ” แƒ“แƒแƒ‘แƒแƒšแƒ˜ แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒ— แƒ“แƒ แƒ•แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒแƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒžแƒแƒขแƒแƒ แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒฌแƒ”แƒ แƒก แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 1 แƒ›แƒ”แƒ’แƒแƒ‘แƒแƒ˜แƒขแƒก แƒฌแƒแƒ›แƒจแƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ–แƒ”. แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜แƒช, แƒ—แƒฃ แƒ แƒแƒ˜แƒ›แƒ” แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜แƒ— แƒ•แƒ”แƒ  แƒ›แƒแƒ•แƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ— แƒ“แƒ˜แƒกแƒ™แƒ–แƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒฌแƒ”แƒ แƒ, แƒแƒ›แƒแƒก แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒฃแƒ’แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒ•แƒงแƒแƒคแƒ— แƒ“แƒ แƒ•แƒ”แƒชแƒ“แƒ”แƒ‘แƒ˜แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒฉแƒแƒฌแƒ”แƒ แƒแƒก แƒฌแƒแƒ›แƒจแƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ›แƒ” แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘ แƒžแƒ˜แƒ—แƒแƒœแƒก, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒกแƒฎแƒ•แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒœแƒ.

[user@localhost ]$ cat openforwrite.py 
import datetime
import time

mystr="a"*1024*1024+"n"
with open("123.txt", "w") as f:
    while True:
        try:
            f.write(str(datetime.datetime.now()))
            f.write(mystr)
            f.flush()
            time.sleep(1)
        except:
            pass

แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒแƒ— แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒ“แƒ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ”แƒ‘แƒก

[user@localhost ]$ python openforwrite.py &
[1] 3762
[user@localhost ]$ ps axuf | grep [o]penforwrite
user  3762  0.0  0.0 128600  5744 pts/22   S+   16:28   0:00  |   _ python openforwrite.py
[user@localhost ]$ ls -la /proc/3762/fd
total 0
dr-x------ 2 user user  0 Oct  7 16:29 .
dr-xr-xr-x 9 user user  0 Oct  7 16:29 ..
lrwx------ 1 user user 64 Oct  7 16:29 0 -> /dev/pts/22
lrwx------ 1 user user 64 Oct  7 16:29 1 -> /dev/pts/22
lrwx------ 1 user user 64 Oct  7 16:29 2 -> /dev/pts/22
l-wx------ 1 user user 64 Oct  7 16:29 3 -> /home/user/123.txt

แƒ แƒแƒ’แƒแƒ แƒช แƒฎแƒ”แƒ“แƒแƒ•แƒ—, แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒฉแƒ•แƒ”แƒœแƒ˜ 3 แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒ›แƒฌแƒ”แƒ แƒ˜ แƒ“แƒ แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ•แƒฎแƒกแƒ”แƒœแƒ˜แƒ—. แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒแƒ›แƒแƒฌแƒ›แƒแƒ— แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ–แƒแƒ›แƒ:

[user@localhost ]$ ls -lah 123.txt 
-rw-rw-r-- 1 user user 117M Oct  7 16:30 123.txt

แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ˜แƒฌแƒ”แƒ แƒ”แƒ‘แƒ, แƒฉแƒ•แƒ”แƒœ แƒ•แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ— แƒจแƒ”แƒ•แƒชแƒ•แƒแƒšแƒแƒ— แƒœแƒ”แƒ‘แƒแƒ แƒ—แƒ•แƒ”แƒ‘แƒ˜ แƒคแƒแƒ˜แƒšแƒ–แƒ”:

[user@localhost ]$ sudo chown root: 123.txt
[user@localhost ]$ ls -lah 123.txt 
-rw-rw-r-- 1 root root 168M Oct  7 16:31 123.txt
[user@localhost ]$ ls -lah 123.txt 
-rw-rw-r-- 1 root root 172M Oct  7 16:31 123.txt

แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ—, แƒ แƒแƒ› แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ˜แƒฌแƒ”แƒ แƒ”แƒ‘แƒ, แƒ—แƒฃแƒ›แƒชแƒ แƒฉแƒ•แƒ”แƒœแƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒก แƒแƒ  แƒแƒฅแƒ•แƒก แƒคแƒแƒ˜แƒšแƒจแƒ˜ แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒฃแƒคแƒšแƒ”แƒ‘แƒ. แƒ•แƒชแƒแƒ“แƒแƒ— แƒ›แƒ˜แƒกแƒ˜ แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ:

[user@localhost ]$ sudo rm 123.txt 
[user@localhost ]$ ls 123.txt
ls: cannot access 123.txt: No such file or directory

แƒกแƒแƒ“ แƒฌแƒ”แƒ แƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜? แƒ“แƒ แƒฌแƒ”แƒ แƒ˜แƒ แƒกแƒแƒ”แƒ แƒ—แƒแƒ“? แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ—:

[user@localhost ]$ ls -la /proc/3762/fd
total 0
dr-x------ 2 user user  0 Oct  7 16:29 .
dr-xr-xr-x 9 user user  0 Oct  7 16:29 ..
lrwx------ 1 user user 64 Oct  7 16:29 0 -> /dev/pts/22
lrwx------ 1 user user 64 Oct  7 16:29 1 -> /dev/pts/22
lrwx------ 1 user user 64 Oct  7 16:29 2 -> /dev/pts/22
l-wx------ 1 user user 64 Oct  7 16:29 3 -> /home/user/123.txt (deleted)

แƒ“แƒ˜แƒแƒฎ, แƒฉแƒ•แƒ”แƒœแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ“แƒ”แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒแƒ แƒ˜ แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒแƒ› แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒก แƒ›แƒแƒžแƒงแƒ แƒแƒ‘แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒ•แƒ”แƒœแƒก แƒซแƒ•แƒ”แƒš แƒคแƒแƒ˜แƒšแƒก, แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ›แƒ˜แƒกแƒ˜ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ, แƒ’แƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒ”แƒ‘แƒ แƒ“แƒ แƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒ.

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ–แƒแƒ›แƒแƒก:

[user@localhost ]$ lsof | grep 123.txt
python    31083             user    3w      REG                8,5   19923457   2621522 /home/user/123.txt

แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ–แƒแƒ›แƒแƒ 19923457. แƒ›แƒแƒ“แƒ˜แƒ— แƒ•แƒชแƒแƒ“แƒแƒ— แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ’แƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒ”แƒ‘แƒ:

[user@localhost ]$ truncate -s 0 /proc/31083/fd/3
[user@localhost ]$ lsof | grep 123.txt
python    31083             user    3w      REG                8,5  136318390   2621522 /home/user/123.txt

แƒ แƒแƒ’แƒแƒ แƒช แƒฎแƒ”แƒ“แƒแƒ•แƒ—, แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ–แƒแƒ›แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒ–แƒ แƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒ’แƒ˜แƒกแƒขแƒ แƒแƒšแƒ˜ แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ. แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ˜แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒก แƒ’แƒแƒฎแƒกแƒœแƒ. แƒ—แƒฃ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ’แƒแƒฎแƒกแƒœแƒ˜แƒกแƒแƒก แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— O_APPEND แƒ“แƒ แƒแƒจแƒแƒก, แƒ›แƒแƒจแƒ˜แƒœ แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒกแƒแƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ–แƒแƒ›แƒแƒก แƒ“แƒ แƒฌแƒ”แƒ แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ‘แƒแƒšแƒแƒ›แƒ“แƒ” แƒ“แƒ แƒแƒ›แƒแƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก แƒแƒขแƒแƒ›แƒฃแƒ แƒแƒ“. แƒ”แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒแƒซแƒšแƒ”แƒ•แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ—แƒ”แƒ›แƒแƒก แƒแƒœ แƒžแƒ แƒแƒชแƒ”แƒกแƒก แƒฉแƒแƒฌแƒ”แƒ แƒแƒœ แƒ”แƒ แƒ—แƒกแƒ แƒ“แƒ แƒ˜แƒ›แƒแƒ•แƒ” แƒคแƒแƒ˜แƒšแƒจแƒ˜. แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœแƒก แƒ™แƒแƒ“แƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒแƒ› แƒ“แƒ แƒแƒจแƒแƒก. แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ“แƒแƒ•แƒ˜แƒœแƒแƒฎแƒแƒ— แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ–แƒแƒ›แƒ lsof-แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ trunk-แƒจแƒ˜ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ—แƒฃ แƒ’แƒแƒ•แƒฎแƒกแƒœแƒ˜แƒ— แƒคแƒแƒ˜แƒšแƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒช แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก แƒฉแƒ•แƒ”แƒœแƒก แƒ™แƒแƒ“แƒจแƒ˜.

with open("123.txt", "w") as f:

แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒแƒ—

with open("123.txt", "a") as f:

แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ "w" แƒ“แƒ แƒแƒจแƒ˜แƒ—

[user@localhost ]$ strace -e trace=open python openforwrite.py 2>&1| grep 123.txt
open("123.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3

แƒ“แƒ "แƒ" แƒ“แƒ แƒแƒจแƒ˜แƒ—

[user@localhost ]$ strace -e trace=open python openforwrite.py 2>&1| grep 123.txt
open("123.txt", O_WRONLY|O_CREAT|O_APPEND, 0666) = 3

แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒ“แƒแƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ

แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒกแƒขแƒ”แƒ‘แƒ˜, แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒกแƒ แƒ“แƒ แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ”แƒ‘แƒก (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, GDB) แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒจแƒ˜ แƒจแƒ”แƒกแƒ•แƒšแƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ“แƒแƒœแƒ”แƒก. Linux แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒแƒก แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒ“แƒแƒฌแƒ”แƒ แƒแƒ— แƒ“แƒ แƒจแƒ”แƒชแƒ•แƒแƒšแƒแƒ— แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒจแƒ”แƒชแƒ•แƒแƒšแƒแƒ— แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜, แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— แƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒก แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜ แƒ“แƒ แƒ.แƒจ. แƒ“แƒ แƒ.แƒจ.

แƒ“แƒแƒ•แƒฃแƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ— แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒฉแƒแƒกแƒแƒฌแƒ”แƒ แƒแƒ“ แƒ“แƒ˜แƒกแƒ™แƒ–แƒ” แƒแƒ แƒแƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒจแƒ”แƒ•แƒ”แƒชแƒแƒ“แƒแƒ— แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒกแƒ˜แƒ›แƒฃแƒšแƒแƒชแƒ˜แƒ.

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒคแƒแƒ˜แƒšแƒ˜ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ“แƒแƒœแƒแƒงแƒแƒคแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒชแƒแƒšแƒ™แƒ” แƒ“แƒ˜แƒกแƒ™แƒแƒ“ แƒ“แƒแƒ•แƒแƒ›แƒแƒœแƒขแƒแƒŸแƒ”แƒ‘แƒ—:

[user@localhost ~]$ dd if=/dev/zero of=~/tempfile_for_article.dd bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.00525929 s, 2.0 GB/s
[user@localhost ~]$

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ:

[user@localhost ~]$ mkfs.ext4 ~/tempfile_for_article.dd
mke2fs 1.42.9 (28-Dec-2013)
/home/user/tempfile_for_article.dd is not a block special device.
Proceed anyway? (y,n) y
...
Writing superblocks and filesystem accounting information: done
[user@localhost ~]$

แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ— แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ:

[user@localhost ~]$ sudo mount ~/tempfile_for_article.dd /mnt/
[sudo] password for user: 
[user@localhost ~]$ df -h | grep mnt
/dev/loop0      8.7M  172K  7.9M   3% /mnt

แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒก แƒฉแƒ•แƒ”แƒœแƒก แƒ›แƒคแƒšแƒแƒ‘แƒ”แƒšแƒ—แƒแƒœ:

[user@localhost ~]$ sudo mkdir /mnt/logs
[user@localhost ~]$ sudo chown user: /mnt/logs

แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒฎแƒกแƒœแƒแƒ— แƒคแƒแƒ˜แƒšแƒ˜ แƒฉแƒแƒกแƒแƒฌแƒ”แƒ แƒแƒ“ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฉแƒ•แƒ”แƒœแƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒแƒจแƒ˜:

with open("/mnt/logs/123.txt", "w") as f:

แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ

[user@localhost ]$ python openforwrite.py 

แƒ•แƒ”แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฌแƒแƒ›แƒก

[user@localhost ~]$ df -h | grep mnt
/dev/loop0      8.7M  8.0M     0 100% /mnt

แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒจแƒ˜ แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ. แƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒแƒšแƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒ˜ 0, 100% แƒ“แƒแƒ™แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜.

แƒ’แƒ•แƒแƒฎแƒกแƒแƒ•แƒก, แƒ แƒแƒ› แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒ•แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ— แƒฉแƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒ แƒ“แƒแƒ™แƒแƒ แƒ’แƒ•แƒแƒช แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ. แƒ“แƒ แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ•แƒแƒคแƒ˜แƒฅแƒกแƒ˜แƒ แƒแƒ— แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”.

แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ–แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒฎแƒ•แƒ แƒ“แƒแƒœแƒแƒงแƒแƒคแƒจแƒ˜, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, /home-แƒจแƒ˜.

แƒ›แƒแƒ“แƒ˜แƒ— แƒ•แƒชแƒแƒ“แƒแƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก โ€žแƒ’แƒแƒ“แƒแƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ แƒคแƒ แƒ”แƒœแƒแƒ–แƒ”โ€œ.

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก PID-แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ›แƒแƒช แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒ›แƒ—แƒ”แƒšแƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒ˜ แƒจแƒ”แƒญแƒแƒ›แƒ:

[user@localhost ~]$ ps axuf | grep [o]penfor
user 10078 27.2  0.0 128600  5744 pts/22   R+   11:06   0:02  |   _ python openforwrite.py

แƒ“แƒแƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ˜แƒ— แƒžแƒ แƒแƒชแƒ”แƒกแƒก gdb-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—

[user@localhost ~]$ gdb -p 10078
...
(gdb) 

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒฆแƒ˜แƒ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ”แƒ‘แƒก:

(gdb) shell ls -lah /proc/10078/fd/
total 0
dr-x------ 2 user user  0 Oct  8 11:06 .
dr-xr-xr-x 9 user user  0 Oct  8 11:06 ..
lrwx------ 1 user user 64 Oct  8 11:09 0 -> /dev/pts/22
lrwx------ 1 user user 64 Oct  8 11:09 1 -> /dev/pts/22
lrwx------ 1 user user 64 Oct  8 11:06 2 -> /dev/pts/22
l-wx------ 1 user user 64 Oct  8 11:09 3 -> /mnt/logs/123.txt

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ—แƒ•แƒแƒšแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ— แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒก แƒœแƒแƒ›แƒ”แƒ แƒ˜ 3-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒ•แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒก

(gdb) shell cat /proc/10078/fdinfo/3
pos:    8189952
flags:  0100001
mnt_id: 482

แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ—แƒฃ แƒ แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ  แƒ–แƒแƒ แƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก Python (แƒ˜แƒฎ. แƒ–แƒ”แƒ›แƒแƒ—, แƒกแƒแƒ“แƒแƒช แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒ˜แƒ— แƒ“แƒ แƒ•แƒ˜แƒžแƒแƒ•แƒ”แƒ— แƒฆแƒ˜แƒ แƒ–แƒแƒ แƒ˜), แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ’แƒแƒกแƒแƒฎแƒกแƒœแƒ”แƒšแƒแƒ“ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒฉแƒ•แƒ”แƒœ แƒ—แƒ•แƒ˜แƒ—แƒแƒœแƒแƒช แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒก แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ O_WRONLY|O_CREAT| O_TRUNC แƒ‘แƒ˜แƒขแƒ˜ แƒ˜แƒชแƒ•แƒšแƒ”แƒ‘แƒ แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒ—แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒ—. แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ˜แƒ— แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒฌแƒงแƒแƒ แƒแƒ”แƒ‘แƒ˜, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“ แƒแƒฅ แƒ“แƒ แƒœแƒแƒฎแƒ”แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒ“แƒ แƒแƒจแƒ”แƒ‘แƒ˜ แƒ แƒแƒ–แƒ”แƒ แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ›แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜

#define O_WRONLY 00000001
#define O_CREAT 00000100
#define O_TRUNC 00001000

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒ— แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒก แƒ”แƒ แƒ—แƒจแƒ˜, แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— 00001101

แƒฉแƒ•แƒ”แƒœ แƒ•แƒ›แƒแƒ แƒ—แƒแƒ•แƒ— แƒฉแƒ•แƒ”แƒœแƒก แƒ–แƒแƒ แƒก gdb-แƒ“แƒแƒœ

(gdb) call open("/home/user/123.txt", 00001101,0666)
$1 = 4

แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ— แƒแƒฎแƒแƒšแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒ›แƒฌแƒ”แƒ แƒ˜ แƒœแƒแƒ›แƒ”แƒ แƒ˜ 4 แƒ“แƒ แƒแƒฎแƒแƒšแƒ˜ แƒฆแƒ˜แƒ แƒคแƒแƒ˜แƒšแƒ˜ แƒกแƒฎแƒ•แƒ แƒ“แƒแƒœแƒแƒงแƒแƒคแƒ–แƒ”, แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ—:

(gdb) shell ls -lah /proc/10078/fd/
total 0
dr-x------ 2 user user  0 Oct  8 11:06 .
dr-xr-xr-x 9 user user  0 Oct  8 11:06 ..
lrwx------ 1 user user 64 Oct  8 11:09 0 -> /dev/pts/22
lrwx------ 1 user user 64 Oct  8 11:09 1 -> /dev/pts/22
lrwx------ 1 user user 64 Oct  8 11:06 2 -> /dev/pts/22
l-wx------ 1 user user 64 Oct  8 11:09 3 -> /mnt/logs/123.txt
l-wx------ 1 user user 64 Oct  8 11:15 4 -> /home/user/123.txt

แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฎแƒกแƒแƒ•แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒ›แƒ˜แƒšแƒ˜แƒ— - แƒ แƒแƒ’แƒแƒ  แƒชแƒ•แƒšแƒ˜แƒก bash แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ”แƒ‘แƒก แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— dup2 แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ˜.

แƒฉแƒ•แƒ”แƒœ แƒ•แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ— แƒจแƒ”แƒ•แƒชแƒ•แƒแƒšแƒแƒ— แƒ”แƒ แƒ—แƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒ›แƒฌแƒ”แƒ แƒ˜ แƒ›แƒ”แƒแƒ แƒ”แƒ—แƒ˜

(gdb) call dup2(4,3)
$2 = 3

แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒ—:

(gdb) shell ls -lah /proc/10078/fd/
total 0
dr-x------ 2 user user  0 Oct  8 11:06 .
dr-xr-xr-x 9 user user  0 Oct  8 11:06 ..
lrwx------ 1 user user 64 Oct  8 11:09 0 -> /dev/pts/22
lrwx------ 1 user user 64 Oct  8 11:09 1 -> /dev/pts/22
lrwx------ 1 user user 64 Oct  8 11:06 2 -> /dev/pts/22
l-wx------ 1 user user 64 Oct  8 11:09 3 -> /home/user/123.txt
l-wx------ 1 user user 64 Oct  8 11:15 4 -> /home/user/123.txt

แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒฃแƒ แƒแƒ•แƒ— แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒก 4, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ”แƒก แƒแƒ  แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ:

(gdb) call close (4)
$1 = 0

แƒ“แƒ แƒ’แƒแƒ›แƒแƒ“แƒ˜แƒ— gdb

(gdb) quit
A debugging session is active.

    Inferior 1 [process 10078] will be detached.

Quit anyway? (y or n) y
Detaching from program: /usr/bin/python2.7, process 10078

แƒแƒฎแƒแƒšแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ:

[user@localhost ~]$ ls -lah /home/user/123.txt
-rw-rw-r-- 1 user user 5.1M Oct  8 11:18 /home/user/123.txt
[user@localhost ~]$ ls -lah /home/user/123.txt
-rw-rw-r-- 1 user user 7.1M Oct  8 11:18 /home/user/123.txt

แƒ แƒแƒ’แƒแƒ แƒช แƒฎแƒ”แƒ“แƒแƒ•แƒ—, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ˜แƒฌแƒ”แƒ แƒ”แƒ‘แƒ แƒแƒฎแƒแƒš แƒคแƒแƒ˜แƒšแƒจแƒ˜, แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒแƒ›แƒแƒฌแƒ›แƒแƒ— แƒซแƒ•แƒ”แƒšแƒ˜:

[user@localhost ~]$ ls -lah /mnt/logs/123.txt 
-rw-rw-r-- 1 user user 7.9M Oct  8 11:08 /mnt/logs/123.txt

แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒแƒ  แƒ˜แƒ™แƒแƒ แƒ’แƒ”แƒ‘แƒ, แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก, แƒŸแƒฃแƒ แƒœแƒแƒšแƒ”แƒ‘แƒ˜ แƒ˜แƒฌแƒ”แƒ แƒ”แƒ‘แƒ แƒแƒฎแƒแƒš แƒแƒ“แƒ’แƒ˜แƒšแƒแƒก.

แƒชแƒแƒขแƒ แƒ’แƒแƒ•แƒแƒ แƒ—แƒฃแƒšแƒแƒ— แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ

แƒฌแƒแƒ แƒ›แƒแƒ•แƒ˜แƒ“แƒ’แƒ˜แƒœแƒแƒ—, แƒ แƒแƒ› แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒชแƒ”แƒ แƒ— แƒ“แƒแƒœแƒแƒงแƒแƒคแƒจแƒ˜ แƒแƒ  แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒ˜ แƒ“แƒ แƒ•แƒ”แƒ  แƒ•แƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ˜แƒกแƒ™แƒก.

แƒ แƒแƒช แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ— แƒแƒ แƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ แƒกแƒแƒ“แƒ›แƒ”, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ›แƒ˜แƒšแƒ˜แƒกแƒ™แƒ”แƒœ, แƒ“แƒ แƒ—แƒแƒ•แƒ˜แƒก แƒ›แƒฎแƒ แƒ˜แƒ• แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ แƒ›แƒ˜แƒšแƒ˜แƒ“แƒแƒœ แƒฅแƒกแƒ”แƒšแƒจแƒ˜ แƒ แƒแƒ˜แƒ›แƒ” แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“ netcat.
แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒ“แƒแƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ˜แƒšแƒ˜ mkfifo แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒคแƒกแƒ”แƒ•แƒ“แƒ แƒคแƒแƒ˜แƒšแƒก แƒคแƒแƒ˜แƒšแƒฃแƒ  แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜ แƒ›แƒแƒจแƒ˜แƒœแƒแƒช แƒ™แƒ˜, แƒ—แƒฃ แƒ›แƒแƒกแƒ–แƒ” แƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒแƒšแƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก.

แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ— แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ“แƒ แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ—:

[user@localhost ]$ python openforwrite.py 
[user@localhost ~]$ ps axuf | grep [o]pen
user  5946 72.9  0.0 128600  5744 pts/22   R+   11:27   0:20  |   _ python openforwrite.py
[user@localhost ~]$ ls -lah /proc/5946/fd
total 0
dr-x------ 2 user user  0 Oct  8 11:27 .
dr-xr-xr-x 9 user user  0 Oct  8 11:27 ..
lrwx------ 1 user user 64 Oct  8 11:28 0 -> /dev/pts/22
lrwx------ 1 user user 64 Oct  8 11:28 1 -> /dev/pts/22
lrwx------ 1 user user 64 Oct  8 11:27 2 -> /dev/pts/22
l-wx------ 1 user user 64 Oct  8 11:28 3 -> /mnt/logs/123.txt
[user@localhost ~]$ df -h | grep mnt
/dev/loop0      8.7M  8.0M     0 100% /mnt

แƒ“แƒ˜แƒกแƒ™แƒ–แƒ” แƒแƒ“แƒ’แƒ˜แƒšแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒ“แƒแƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒฃแƒš แƒ›แƒ˜แƒšแƒก แƒ˜แƒฅ:

[user@localhost ~]$ mkfifo /mnt/logs/megapipe
[user@localhost ~]$ ls -lah /mnt/logs/megapipe 
prw-rw-r-- 1 user user 0 Oct  8 11:28 /mnt/logs/megapipe

แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ แƒแƒ’แƒแƒ แƒ›แƒ” แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒขแƒแƒœแƒแƒ— แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ“แƒ˜แƒก แƒแƒ› แƒ›แƒ˜แƒšแƒจแƒ˜, แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ— แƒกแƒฎแƒ•แƒ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”; แƒ˜แƒ’แƒ˜แƒ•แƒ” netcat แƒจแƒ”แƒกแƒแƒคแƒ”แƒ แƒ˜แƒกแƒ˜แƒ แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก.

แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” remote-server.example.com แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ•แƒ“แƒ˜แƒ•แƒแƒ แƒ—

[user@localhost ~]$ nc -l 7777 > 123.txt 

แƒฉแƒ•แƒ”แƒœแƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒฃแƒ  แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒจแƒ•แƒ”แƒ‘แƒ— แƒชแƒแƒšแƒ™แƒ” แƒขแƒ”แƒ แƒ›แƒ˜แƒœแƒแƒšแƒจแƒ˜

[user@localhost ~]$ nc remote-server.example.com 7777 < /mnt/logs/megapipe 

แƒแƒฎแƒšแƒ แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ—แƒแƒ•แƒ แƒ“แƒ”แƒ‘แƒ แƒ›แƒ˜แƒšแƒจแƒ˜, แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒก stdin-แƒ–แƒ” netcat-แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒก 7777 แƒžแƒแƒ แƒขแƒ˜แƒก แƒฅแƒกแƒ”แƒšแƒจแƒ˜ แƒ’แƒแƒฃแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒก.

แƒฉแƒ•แƒ”แƒœ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒแƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒฌแƒ”แƒ แƒ แƒแƒ› แƒ“แƒแƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒฃแƒš แƒ›แƒ˜แƒšแƒจแƒ˜.

แƒฉแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜:

[user@localhost ~]$ ps axuf | grep [o]pen
user  5946 99.8  0.0 128600  5744 pts/22   R+   11:27 169:27  |   _ python openforwrite.py
[user@localhost ~]$ ls -lah /proc/5946/fd
total 0
dr-x------ 2 user user  0 Oct  8 11:27 .
dr-xr-xr-x 9 user user  0 Oct  8 11:27 ..
lrwx------ 1 user user 64 Oct  8 11:28 0 -> /dev/pts/22
lrwx------ 1 user user 64 Oct  8 11:28 1 -> /dev/pts/22
lrwx------ 1 user user 64 Oct  8 11:27 2 -> /dev/pts/22
l-wx------ 1 user user 64 Oct  8 11:28 3 -> /mnt/logs/123.txt

แƒงแƒ•แƒ”แƒšแƒ แƒ“แƒ แƒแƒจแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ O_WRONLY, แƒ แƒแƒ“แƒ’แƒแƒœ แƒคแƒแƒ˜แƒšแƒ˜ แƒฃแƒ™แƒ•แƒ” แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ“แƒ แƒแƒ  แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒ”แƒ‘แƒ

[user@localhost ~]$ gdb -p 5946
...
(gdb) call open("/mnt/logs/megapipe", 00000001,0666)
$1 = 4
(gdb) shell ls -lah /proc/5946/fd
total 0
dr-x------ 2 user user  0 Oct  8 11:27 .
dr-xr-xr-x 9 user user  0 Oct  8 11:27 ..
lrwx------ 1 user user 64 Oct  8 11:28 0 -> /dev/pts/22
lrwx------ 1 user user 64 Oct  8 11:28 1 -> /dev/pts/22
lrwx------ 1 user user 64 Oct  8 11:27 2 -> /dev/pts/22
l-wx------ 1 user user 64 Oct  8 11:28 3 -> /mnt/logs/123.txt
l-wx------ 1 user user 64 Oct  8 14:20 4 -> /mnt/logs/megapipe
(gdb) call dup2(4,3)
$2 = 3
(gdb) shell ls -lah /proc/5946/fd
total 0
dr-x------ 2 user user  0 Oct  8 11:27 .
dr-xr-xr-x 9 user user  0 Oct  8 11:27 ..
lrwx------ 1 user user 64 Oct  8 11:28 0 -> /dev/pts/22
lrwx------ 1 user user 64 Oct  8 11:28 1 -> /dev/pts/22
lrwx------ 1 user user 64 Oct  8 11:27 2 -> /dev/pts/22
l-wx------ 1 user user 64 Oct  8 11:28 3 -> /mnt/logs/megapipe
l-wx------ 1 user user 64 Oct  8 14:20 4 -> /mnt/logs/megapipe
(gdb) call close(4)
$3 = 0
(gdb) shell ls -lah /proc/5946/fd
total 0
dr-x------ 2 user user  0 Oct  8 11:27 .
dr-xr-xr-x 9 user user  0 Oct  8 11:27 ..
lrwx------ 1 user user 64 Oct  8 11:28 0 -> /dev/pts/22
lrwx------ 1 user user 64 Oct  8 11:28 1 -> /dev/pts/22
lrwx------ 1 user user 64 Oct  8 11:27 2 -> /dev/pts/22
l-wx------ 1 user user 64 Oct  8 11:28 3 -> /mnt/logs/megapipe
(gdb) quit
A debugging session is active.

    Inferior 1 [process 5946] will be detached.

Quit anyway? (y or n) y
Detaching from program: /usr/bin/python2.7, process 5946

แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ remote-server.example.com

[user@localhost ~]$ ls -lah 123.txt 
-rw-rw-r-- 1 user user 38M Oct  8 14:21 123.txt

แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ›แƒแƒ“แƒ˜แƒก, แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ— แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒฃแƒ  แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒก

[user@localhost ~]$ ls -lah /mnt/logs/
total 7.9M
drwxr-xr-x 2 user user 1.0K Oct  8 11:28 .
drwxr-xr-x 4 root     root     1.0K Oct  8 10:55 ..
-rw-rw-r-- 1 user user 7.9M Oct  8 14:17 123.txt
prw-rw-r-- 1 user user    0 Oct  8 14:22 megapipe

แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒœแƒแƒฎแƒฃแƒšแƒ˜แƒ, แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ›แƒแƒ’แƒ•แƒแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ.

แƒ•แƒ˜แƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ”แƒ‘ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ— แƒ“แƒ แƒ›แƒ˜แƒ•แƒ”แƒกแƒแƒšแƒ›แƒ”แƒ‘แƒ˜ แƒฉแƒ”แƒ›แƒก แƒ™แƒแƒšแƒ”แƒ’แƒ”แƒ‘แƒก แƒ“แƒ”แƒŸแƒ˜แƒ แƒแƒ“แƒแƒœ.
แƒ›แƒแƒฃแƒกแƒ›แƒ˜แƒœแƒ”แƒ— Radio-T แƒžแƒแƒ“แƒ™แƒแƒกแƒขแƒ”แƒ‘แƒก.

แƒงแƒ•แƒ”แƒšแƒแƒกแƒแƒ—แƒ•แƒ˜แƒก แƒ™แƒแƒ แƒ’แƒ˜.

แƒ แƒแƒ’แƒแƒ แƒช แƒกแƒแƒจแƒ˜แƒœแƒแƒ แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ, แƒ’แƒ˜แƒ แƒฉแƒ”แƒ•แƒ— แƒ“แƒแƒคแƒ˜แƒฅแƒ แƒ“แƒ”แƒ— แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒ™แƒแƒขแƒ แƒ“แƒ แƒซแƒ˜แƒšแƒ˜, แƒ—แƒฃ แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ:

[user@localhost ~]$ cat /dev/zero 2>/dev/null| sleep 10000

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ