AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 54092
In Process
Eric Johnson
Eric Johnson
Asked: 2009-08-14 21:59:11 +0800 CST2009-08-14 21:59:11 +0800 CST 2009-08-14 21:59:11 +0800 CST

Setuid 在 Solaris 上不起作用

  • 772

我有一个标记为 setuid 的 Perl 脚本,但是当我运行它时,它说我没有这样做的权限。我正在运行 Solaris 10。这适用于另一个系统,但我不知道有什么不同。我究竟做错了什么?

$ ls -l
total 16
-r-sr-x---   1 root     root        7354 Apr 19  2008 myscript
$ ./myscript
./myscript: Permission denied.
solaris
  • 5 5 个回答
  • 2472 Views

5 个回答

  • Voted
  1. mdpc
    2009-08-14T22:28:38+08:002009-08-14T22:28:38+08:00

    我不得不问....该程序由具有root组的root拥有。运行程序的用户显然不是 root (没有 # 作为命令提示符),而是组“root”中的用户?

    快速修复似乎适用于这种特定情况:

     chmod o+rx myscript
    
    • 5
  2. Eric Johnson
    2009-08-14T22:04:14+08:002009-08-14T22:04:14+08:00

    嗯,对这个问题的回答表明,在更现代的系统上,我只能在程序上设置uid,而不是在 shell 脚本上。可能另一个系统实际上是二进制文件,

    • 2
  3. David Pashley
    2009-08-14T22:52:20+08:002009-08-14T22:52:20+08:00

    虽然我怀疑 mdpc 的答案是正确的,并且您需要更改“其他”的权限,但您可以使用一种方便的技术使脚本以其他用户身份运行。您需要做的是创建一个非常简单的 C 程序,它采用 argv[0],附加类似“.real”的内容,然后执行该字符串。然后将脚本从 foo.pl 移动到 foo.pl.real 并将编译的二进制文件移动到 foo.pl 并设置该二进制文件。现在,当您运行 foo.pl 时,您将以您想要的用户身份运行 foo.pl.real。

    与任何 setuid 程序一样,您要确保不会导致安全问题。您应该清理 argv[0] 以确保它是您认为应该运行的程序,或者有人可能会符号链接到二进制文件并获得他们不应该获得的权限。

    • 0
  4. cas
    2009-08-15T03:12:59+08:002009-08-15T03:12:59+08:00

    mdpc 的回答很可能是正确的,但请注意 perl 在运行 setuid 时运行方式不同。

    除其他外,它会自动打开 perl 的 taint 模式以强制您在使用输入和 args 之前对其进行清理。它对 PATH 和其他可能被滥用来破坏系统的环境变量也非常挑剔。

    有关详细信息,请参阅 perlsec(1)(注意:在某些系统上,包括 debian,perl 文档可作为手册页获得。在其他系统上,几乎可以肯定包括 Solaris 10,您必须运行“perldoc perlsec”而不是“人 perlsec")。

    • 0
  5. Randall
    2009-08-20T07:31:18+08:002009-08-20T07:31:18+08:00

    运行groups命令以列出您所属的组。您必须是您尝试运行的系统上的根组的成员myscript。

    检查脚本所在文件系统的挂载选项。有一个nosuid选项可用于允许或禁止 setuid 或 setgid 执行。

    mount|grep rchuck
    /home/rchuck on homedir.mydomain.com:/export/home4/03/rchuck remote/read/write/nosetuid/nodevices/intr/retrans=10/retry=3/xattr/dev=59ca539 on Wed 2009 年 7 月 22 日 07:41:23

    • 0

相关问题

  • 从现有目录创建 zfs 的正确方法?

  • 在 Solaris lp 或 lpr 上打印

  • 如何将 ZFS ACL 从一个文件克隆到另一个文件?

  • Solaris DNS

  • 在 solaris 10 上为 mysql 设置 max_allowed_pa​​cket

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve