自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在 Linux 下追溯進(jìn)程的發(fā)起者

系統(tǒng) Linux
在 Linux 下要確認(rèn)一個進(jìn)程的發(fā)起者身份,比如用戶 tom 登錄系統(tǒng),sudo su - 到 root,然后執(zhí)行了腳本 hey.sh,要想在 hey.sh 中追溯到發(fā)起進(jìn)程的是 tom 這個用戶,并不是很容易做到準(zhǔn)確無誤,花了點時間,找到了一個相對靠譜的方式。

在 Linux 下要確認(rèn)一個進(jìn)程的發(fā)起者身份,比如用戶 tom 登錄系統(tǒng),sudo su - 到 root,然后執(zhí)行了腳本 hey.sh,要想在 hey.sh 中追溯到發(fā)起進(jìn)程的是 tom 這個用戶,并不是很容易做到準(zhǔn)確無誤,花了點時間,找到了一個相對靠譜的方式。

先說說遇到的幾個問題:

  1. 用戶登錄之后,使用 sudo hey.sh 的方式執(zhí)行 hey.sh,倒是可以通過環(huán)境變量 SUDO_USER 獲取到 sudo 之前的用戶,但沒有辦法解決上面提到的 sudo su - 這樣不繼承之前用戶環(huán)境變量的問題。
  2. 可以用 tty 命令獲取當(dāng)前進(jìn)程的 controlling terminal,然后通過 controlling terminal 文件的屬主來確認(rèn)登錄用戶,這可以解決 1 中提到的問題,但是如果當(dāng)前進(jìn)程的父進(jìn)程是 daemon 或者關(guān)掉了標(biāo)準(zhǔn)輸入,就沒有 controlling terminal。
  3. 可以通過讀取 /proc/self/loginuid 獲取當(dāng)前進(jìn)程的登錄用戶 ID,對于沒有 controlling terminal 的進(jìn)程也可以獲取到 ID,但對于 daemon 進(jìn)程來說,獲取的 ID 可能是 4294967295。

在我的場景下,對于第三個問題,并不是特別要緊,找不到對應(yīng)的用戶,fallback 回 effective user 就好, 所以,用來追溯進(jìn)程發(fā)起用戶身份的 bash 腳本是這樣:

  1. #!/bin/bash 
  2. # A relatively reliable way to find process initiator on Linux 
  3. user_entry=`getent passwd $(cat /proc/self/loginuid)` 
  4. if [ $? -eq 0 ]; then 
  5.      login_user=`echo ${user_entry} | cut -d: -f1` 
  6. else 
  7.      login_user=${SUDO_USER:-${LOGNAME}} 
  8.      if [ "${login_user}" = "" ]; then 
  9.           login_user=`id -urn` 
  10.      fi 
  11. fi 
  12. echo ${login_user} 
責(zé)任編輯:黃丹 來源: Xupeng's blog
相關(guān)推薦

2013-11-06 15:35:49

LinuxLinux進(jìn)程

2015-12-31 09:10:48

DebianIan Murdock去世

2021-03-08 09:41:50

?Aurora自動駕駛

2014-08-01 15:38:37

Linux進(jìn)程管理

2020-09-18 11:19:03

惡意軟件Linux網(wǎng)絡(luò)攻擊

2017-04-11 16:00:40

Linuxsyslog進(jìn)程

2009-09-16 08:43:51

linux進(jìn)程線程

2010-01-05 10:00:48

Linux進(jìn)程間通信

2017-05-03 11:10:14

Linux進(jìn)程監(jiān)控cpustat

2019-05-08 11:10:05

Linux進(jìn)程語言

2016-08-23 10:17:42

2009-10-27 08:57:50

linux殺死進(jìn)程

2017-05-27 14:45:04

Linux命令進(jìn)程

2019-07-10 10:40:10

Linux庫注入命令

2024-09-10 09:16:06

2019-08-08 14:40:18

開發(fā)者技能工具

2010-01-22 10:51:54

svn命令linux

2019-05-23 10:11:39

Python編程語言singledispa

2022-09-19 13:21:15

Linux進(jìn)程

2011-01-05 09:40:33

windowslinux
點贊
收藏

51CTO技術(shù)棧公眾號