【问题标题】:What is the best, most secure way to write to a named pipe in Linux?在 Linux 中写入命名管道的最佳、最安全的方法是什么?
【发布时间】:2013-04-17 06:07:40
【问题描述】:

在 Linux 中写入命名管道的最佳、安全方法是什么?或者,如何使命名管道安全?

这是我使用 PHP 在 linux 上写入管道的方法:

$con = fopen("/tmp/myFIFO", "w");
fwrite($con, "UP\n");
fclose($con);

我希望让它更安全。

这就是我在 C 中创建管道的方式:

int pc;
char mode[] = "0777";
int i = strtol(mode, 0, 8);
pc = mkfifo(FIFO, 0);

if(pc < 0) {
    printf("Failed in creating a pipe\n");
    printf("Exiting...\n");
    exit(1);
}
else {
    printf("Success in Creating Pipe\n");
    chmod("/tmp/myFIFO", i);
}

【问题讨论】:

  • 你想做什么是什么意思 secure?你有什么顾虑?
  • 好吧,我只是认为创建 FIFO 是有风险的。使用命名管道时可能会出现安全问题,所以我只想让它安全。如果我错了,请纠正我。谢谢。
  • 为什么创建 FIFO 比创建普通文件风险更大?或者使用pipe(2) 系统调用创建一个匿名管道?

标签: php c linux ipc named-pipes


【解决方案1】:

您可以使用umask 来控制您创建的文件的权限。您在 php 中也有 chmod。

但是,您也可以使用 posix_mkfifo,这完全符合您的目的:

bool posix_mkfifo(字符串$pathname,int $mode)

【讨论】:

    猜你喜欢
    • 2016-04-17
    • 2012-06-17
    • 2018-08-21
    • 2015-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多