egm*_*ont 26
从 Linux 内核 4.7 ( commit ) 开始, umask 在/proc/<pid>/status.
$ grep '^Umask:' "/proc/$$/status"
Umask: 0022
Run Code Online (Sandbox Code Playgroud)
zua*_*azo 17
注意:此答案适用于 Linux 内核 4.6 及更早版本。有关内核的较新版本,请参阅@egmont 的答案。
umask 未在 procfs 中公开。曾尝试添加它,但没有取得多大成功。
有一种方法可以使用 umask gdb,正如之前在这里解释的那样:
$ gdb --pid=4321
(gdb) call/o umask(0)
$1 = 077
(gdb) call umask($1)
$3 = 0
Run Code Online (Sandbox Code Playgroud)
请记住,gdb 会停止进程及其线程,因此 umask 的临时更改可以忽略不计。
如果这对你的情况有好处,你可以使用这个oneliner:
$ gdb --batch -ex 'call/o umask(0)' -ex 'call umask($1)' --pid=4321 2> /dev/null | awk '$1 == "$1" {print $3}'
077
Run Code Online (Sandbox Code Playgroud)
另一种选择是,如果您可以控制正在运行的进程,则将 umask 写入文件、输出或类似内容并从那里获取它。
| 归档时间: |
|
| 查看次数: |
17056 次 |
| 最近记录: |