Bash 有没有办法列出用户可以执行的所有命令(KSH)?

Bash 有没有办法列出用户可以执行的所有命令(KSH)?,bash,shell,ksh,aix,Bash,Shell,Ksh,Aix,我目前正在编写一个ksh脚本,其中我检查粘性位,以查看未经授权的用户是否可以执行某些命令。我想知道是否有更有效的方法来检查它。感谢您的帮助。find1是您的朋友如果不是,请安装GNU find: find / -type f -executable 你说黏糊糊的;这是01000位。您是否在考虑设置UID 04000和设置GID 02000位?这真的很棘手。路径上目录中的任何可执行文件都可以在不指定任何路径的情况下执行,例如只需键入ls。但是,系统上的任何可执行文件都可以通过指定适当的路径来执行

我目前正在编写一个ksh脚本,其中我检查粘性位,以查看未经授权的用户是否可以执行某些命令。我想知道是否有更有效的方法来检查它。感谢您的帮助。

find1是您的朋友如果不是,请安装GNU find:

find / -type f -executable

你说黏糊糊的;这是01000位。您是否在考虑设置UID 04000和设置GID 02000位?这真的很棘手。路径上目录中的任何可执行文件都可以在不指定任何路径的情况下执行,例如只需键入ls。但是,系统上的任何可执行文件都可以通过指定适当的路径来执行,当然,这取决于访问权限。然后,您会遇到别名和函数的问题:它们算数吗?那么,您确定要在计算机上的所有文件系统中运行可执行文件搜索,因为其中任何一个都可以运行吗?目前,我有一个脚本执行ls-ltra x,结果是-rwxrwx--1个用户xyz….x。我的目标是确保只有root用户可以执行一些命令lssec、chsec等。我正在为脚本提供一些元数据-r-xr-r-并对位进行字符串比较。你认为有没有更有效或更好的方法?如果你还有问题,请告诉我。谢谢你的回复。是的,有一些工具是为这类事情设计的,尽管我不知道它们有多好,就像JonathanLeffler说的那样,这样做非常依赖于你想要测试的内容。我的最终目标是检查对这个文件正确设置了什么样的权限。我要问自己的问题是:root能执行这个吗?某些组可以执行此操作吗?任何用户都可以执行此操作吗?我只是想看看是否有一个普通用户运行这个命令会发生什么?脚本的当前结构使用ls选项,但我考虑的另一个选项是实际执行命令,并从stderr查看我是否获得了拒绝的执行权限。但是,我正在运行主脚本,它以sudo的形式运行大约200个脚本。接下来的问题是如何告诉主脚本只以sudo的形式运行某些脚本。我已经尝试过实现我在Stackoverflow上找到的一个解决方案,它说使用sudo-u命令,但我不知道这是否是一个好主意。每个脚本执行不同的任务,从检查CPU数量到确保文件系统配置正确。我对ksh和AIX相当陌生,所以它们不是最好的脚本。我正在尽可能多地理解。感谢您的帮助,谢谢您的回复。