首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用sudoers文件和父目录权限找到现有的可执行文件?

如何使用sudoers文件和父目录权限找到现有的可执行文件?
EN

Unix & Linux用户
提问于 2019-11-06 17:25:26
回答 2查看 182关注 0票数 0

我们可以编写一个命令来解析sudoers文件中列出的可执行文件列表,并检查可执行文件及其父目录的世界可写权限吗?

我能够获得可执行文件的列表,有人能帮助我进一步找到可执行文件的权限及其父目录吗?

代码语言:javascript
复制
# for i in `cat /etc/passwd | cut -d: -f1`; do for j in `sudo -lU $i | grep '(root)' | awk '{print $3}'`; do if [ -e $j ]; then echo $j; fi; done; done
代码语言:javascript
复制
/usr/bin/tail
/usr/bin/tail
/usr/bin/tail
/usr/bin/php
/usr/local/nagiosxi/scripts/components/getprofile.sh
/usr/local/nagiosxi/scripts/repair_databases.sh
/usr/local/nagiosxi/scripts/manage_services.sh
/etc/init.d/npcd
/etc/init.d/npcd
/etc/init.d/npcd
/etc/init.d/npcd
/etc/init.d/npcd
/usr/bin/php
/usr/local/nagiosxi/scripts/components/getprofile.sh
/usr/local/nagiosxi/scripts/upgrade_to_latest.sh
/usr/local/nagiosxi/scripts/change_timezone.sh
/usr/local/nagiosxi/scripts/manage_services.sh
/usr/local/nagiosxi/scripts/reset_config_perms.sh
/usr/local/nagiosxi/scripts/manage_ssl_config.sh
/usr/local/nagiosxi/scripts/backup_xi.sh
EN

回答 2

Unix & Linux用户

发布于 2019-11-07 01:00:44

首先,我想指出,您的脚本在我的机器上没有工作,但是我使用它的输出来测试我的脚本,因为您说它在您的机器上工作。

若要列出每个文件管道的权限,输出如下

代码语言:javascript
复制
| xargs ls -l

并列出目录的权限,添加此管道(不是在上一个管道之后,而是添加到循环中)。

代码语言:javascript
复制
| sed 's|\(.*\)/.*|\1|' | xargs ls -ld

一种懒散的方法是将脚本的结果输出到一个临时文件中,然后使用cat读取它(我把它写成一行,因为这就是您在问题中提供的)。

代码语言:javascript
复制
`for i in `cat /etc/passwd | cut -d: -f1`; do for j in `sudo -lU $i | grep '(root)' | awk '{print $3}'`; do if [ -e $j ]; then echo $j; fi; done; done` > /tmp/suexecs && echo `cat /tmp/suexecs | xargs ls -l` && echo `cat /tmp/suexecs | sed 's|\(.*\)/.*|\1|' | xargs ls -ld ` && rm /tmp/suexecs -f

作为shell脚本:

代码语言:javascript
复制
#!/bin/sh
for i in `cat /etc/passwd | cut -d: -f1`; do
    for j in `sudo -lU $i | grep '(root)' | awk '{print $3}'`; do
         if [ -e $j ]; then echo $j; fi; 
    done 
done > /tmp/suexecs
echo `cat /tmp/suexecs | xargs ls -l`
echo `cat /tmp/suexecs | sed 's|\(.*\)/.*|\1|' | xargs ls -ld`
rm /tmp/suexecs -f
票数 0
EN

Unix & Linux用户

发布于 2019-11-08 10:44:33

显示未安装在系统中的应用程序,但仍为用户分配根访问权限。

代码语言:javascript
复制
    for i in `cat /etc/passwd | cut -d: -f1`; do
        for j in `sudo -lU $i | grep '(root)' | awk '{print $3}'`; do
             if [ ! -e $j ]; then echo $j; fi;
        done
done

显示安装在系统中的应用程序,并为用户分配根访问权限。

代码语言:javascript
复制
for i in `cat /etc/passwd | cut -d: -f1`; do
    for j in `sudo -lU $i | grep '(root)' | awk '{print $3}'`; do
         if [  -e $j ]; then echo $j; fi;
    done
done

列出系统中存在的应用程序的权限。

代码语言:javascript
复制
for i in `cat /etc/passwd | cut -d: -f1`; do
    for j in `sudo -lU $i | grep '(root)' | awk '{print $3}'`; do
         if [  -e $j ]; then echo $j; fi;
    done
done > /tmp/suexecs
echo `cat /tmp/suexecs | xargs ls -l`
rm /tmp/suexecs -f

列出系统中存在的应用程序目录的权限。

代码语言:javascript
复制
for i in `cat /etc/passwd | cut -d: -f1`; do
    for j in `sudo -lU $i | grep '(root)' | awk '{print $3}'`; do
         if [  -e $j ]; then echo $j; fi;
    done
done > /tmp/suexecs
echo `cat /tmp/suexecs |awk  'BEGIN{OFS=FS="/"};{$NF="";print $0}'| xargs ls -ld`
rm /tmp/suexecs -f
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/550737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档