gpt4 book ai didi

unix - 寻找一种更有效(和可移植)的方式来在 unix 中获取(数字)文件权限

转载 作者:行者123 更新时间:2023-12-04 18:32:08 24 4
gpt4 key购买 nike

简短背景:我需要使用 ZABBIX 监视 unix 文件(目录)的权限,以查看它们是否/何时更改。 ZABBIX 没有为此内置任何类似 vfs.file.mode[xxxx] 的内容,因此我不得不使用数字类型滚动我自己的 UserParameter。

到目前为止,我所做的是使用 ls -l | cut -c 2-10 得到 rwxr-xr-x 部分,然后使用 sed 将字母转换为它们的“重量”,并且 awksubstr 相加,得到数字 755 或任何值。

目前在 Solaris 上,我没有 GNU coreutils stat 命令,我希望它具有可移植性和高效性,并且只使用始终可用的标准 unix 工具。 (恕我直言,perl 并不总是可用)。

我的第一次尝试(以根目录为例):

ls -ld / | \
cut -c 2-10 | \
sed -e 's%-%0%g' -e 's%r%4%g' -e 's%w%2%g' -e 's%x%1%g' | \
awk '{print (100 * ((substr($0,1,1)) + (substr($0,2,1)) + (substr($0,3,1))) + \
(10 * ((substr($0,4,1) + (substr($0,5,1)) + (substr($0,6,1)) ))) + \
( (substr($0,7,1)) + (substr($0,8,1)) + (substr($0,9,1)) ) );}'

如您所见,我不关心 setuid 位或文件以外的任何内容,但始终欢迎纯粹的回应!

肯定有更优雅的解决方案。也许是我没有想到的标准 unix 工具。

大约一周前我“偶然”发现了这个地方,我真的很喜欢它!在一个地方看到如此多的知识、技能和友善,真是太棒了!这是我的第一个问题,所以我很高兴看到我是否得到任何答复! :-)非常感谢!

最佳答案

如果你可以使用 find 那么这看起来会更好:

查找文件名 -prune -printf '%m\n'

找到了 here

关于unix - 寻找一种更有效(和可移植)的方式来在 unix 中获取(数字)文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3195737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com