标签: openbsd

家庭,结束,删除,pageup,页面向下与ksh

我想使用ksh使用home,end,delete,pageup,pagedown.我的术语是xterm-color.这些键适用于tcsh和zsh,但不适用于ksh(打印波浪号〜)

我找到了这个:

bind '^[[3'=prefix-2
bind '^[[3~'=delete-char-forward
bind '^[[1'=prefix-2
bind '^[[1~'=beginning-of-line
bind '^[[4'=prefix-2
bind '^[[4~'=end-of-line
Run Code Online (Sandbox Code Playgroud)

但是当我设置一个bindkey时,最后一个不再起作用.

如何在ksh中使用.kshrc中的这些键?

谢谢.

shell openbsd ksh bind key

8
推荐指数
1
解决办法
1453
查看次数

在我的程序中使用OpenBSD的malloc,realloc和free

我想在我的Debian lenny桌面而不是glibc上使用OpenBSD的malloc,realloc和free实现.

  1. 他们只是简单地替换:他们会在我的Linux桌面上工作吗?

  2. 我需要哪些文件以及哪些OpenBSD软件包包含它们?

c linux malloc openbsd bsd

7
推荐指数
1
解决办法
2113
查看次数

在Perl中如何将unicode参数传递给外部命令?

这个问题的根本原因是我试图为Perl 的新选项/参数处理模块(OptArgs)编写测试.这当然涉及@ARGV根据这个问题的答案解析我正在做的事情.这适用于定义了I18N :: Langinfo :: CODESET的系统[1].

langinfo(CODESET)没有可用的系统上,我希望至少根据观察到的行为尽最大努力.但是到目前为止我的测试表明,有些系统我甚至无法正确地将unicode参数传递给外部脚本.

我已经设法在各种系统上运行类似下面的内容,其中"test_script"是一个仅执行以下操作的Perl脚本print Dumper(@ARGV):

use utf8;
my $utf8   = '¥';
my $result = qx/$^X test_script $utf8/;
Run Code Online (Sandbox Code Playgroud)

我发现在FreeBSD上test_script接收的字节可以解码为Perl的内部格式.但是在OpenBSD和Solaris上,test_script似乎得到的字符串"\x{fffd}\x{fffd}"只包含unicode替换字符(两次?).

我不知道qx运营商背后的机制.我认为它要么exec是炮弹,要么炮轰,但不像文件句柄(我可以将它们用于编码),我不知道如何确保它能够满足我的需求.与此相同system().所以我的问题是我上面没有正确做什么?否则与Perl或OpenBSD和Solaris上的shell或环境有什么不同?

[1]实际上我认为到目前为止根据CPAN测试人员的结果只有Linux.

更新(x2):我目前通过cpantester的设置运行以下方法来测试Schwern的假设:

use strict;
use warnings;
use Data::Dumper;

BEGIN {
    if (@ARGV) {
        require Test::More;
        Test::More::diag( "\npre utf8::all: "
              . Dumper( { utf8 => $ARGV[0], bytes => $ARGV[1] } ) );
    }
}

use utf8;
use …
Run Code Online (Sandbox Code Playgroud)

unicode perl openbsd solaris utf-8

7
推荐指数
1
解决办法
1579
查看次数

IPC与imsg?OpenBSD和Linux的兼容性?

我正在阅读Tmux源代码,看看它是如何工作的.它看到它imsg用于我的IPC,这是我从未听说过的.我一直在努力寻找更多信息,但事实证明imsg这有点难以谷歌,而且我为iMessage获得了很多结果.

我在imsg这里找到了一些文档,所以它似乎是一个OpenBSD库.我开始寻找Linux实现,但我找不到任何东西.看来Tmux的作者编写了自己的兼容层.这让我感到惊讶,因为imsg它看起来真的很有用.Linux是否有类似的C API,我只是不知道?

linux openbsd ipc

7
推荐指数
1
解决办法
914
查看次数

模数运算符与零(re:arc4random_uniform source)

发现自己正在寻找arc4random_uniform源(http://bxr.su/o/lib/libc/crypt/arc4random_uniform.c)

我的问题涉及以下一行(评论是他们的原始评论):

/* 2**32 % x == (2**32 - x) % x */
min = -upper_bound % upper_bound;
Run Code Online (Sandbox Code Playgroud)

现在,我不是数学天才,但肯定-N%N总是等于零.那么为什么不写

min=0
Run Code Online (Sandbox Code Playgroud)

c math openbsd cryptography type-bounds

7
推荐指数
1
解决办法
104
查看次数

IPv6:为什么IPv4映射会造成安全风险?

OpenBSD的手动状态:

出于安全原因,OpenBSD不会将IPv4流量路由到AF_INET6套接字,并且不支持IPv4映射地址,其中IPv4流量被视为来自IPv6地址,如:: ffff:10.1.1.1.如果需要接受IPv4和IPv6流量,请在两个插槽上进行侦听.

但是,没有关于这些"安全原因"的解释.这些是什么?我想不出任何与该映射相关的安全问题.

sockets security openbsd ipv4 ipv6

7
推荐指数
1
解决办法
394
查看次数

Unix C - 便携式WEXITSTATUS

我正在尝试获取子进程的退出代码.在Linux和FreeBSD上,我可以这样:

[0] [ishpeck@kiyoshi /tmp]$ uname
FreeBSD
[0] [ishpeck@kiyoshi /tmp]$ cat tinker.c 
#include <stdio.h>
#include <sys/wait.h>

int main(void)
{
    FILE *proc = popen("ls", "r");
    printf("Exit code: %d\n", WEXITSTATUS(pclose(proc)));
    return 0;
}
[0] [ishpeck@kiyoshi /tmp]$ gcc tinker.c -o tinker
[0] [ishpeck@kiyoshi /tmp]$ ./tinker
Exit code: 0
[0] [ishpeck@kiyoshi /tmp]$ grep WEXITSTATUS /usr/include/sys/wait.h 
#define WEXITSTATUS(x)  (_W_INT(x) >> 8)
Run Code Online (Sandbox Code Playgroud)

但是,在OpenBSD上,我收到编译器的投诉......

[0] [ishpeck@ishberk-00 /tmp]$ uname   
OpenBSD
[0] [ishpeck@ishberk-00 /tmp]$ cat tinker.c                                    
#include <stdio.h>
#include <sys/wait.h>

int main(void)
{
    FILE *proc = popen("ls", "r");
    printf("Exit code: …
Run Code Online (Sandbox Code Playgroud)

c unix openbsd portability freebsd

6
推荐指数
1
解决办法
4039
查看次数

Postgresql 和 OpenBSD 第一次连接

我不明白 Postgres 如何与 openBSD 一起工作。我在 debian 上没有遇到这些问题(我不必执行 initdb)。

我做了如下

pkg_add postgresql-server php-pgsql
su - _postgresql
initdb -D /var/postgresql/data -U postgres - E UTF8 -A md5 -W
Run Code Online (Sandbox Code Playgroud)

但在那之后,我没有得到我期望的结果

我可以启动数据库

 pg_ctl -D /var/postgresql/data/ -l logfile start
Run Code Online (Sandbox Code Playgroud)

或与

 rcctl enable postgresql 
 rcctl start postgresql 
Run Code Online (Sandbox Code Playgroud)

但我不明白如何连接到它

因为如果我这样做:

# su - _postgresql        
$ psql
Password: 
psql: FATAL:  password authentication failed for user "_postgresql"
Run Code Online (Sandbox Code Playgroud)

为什么是 _postgresql 用户而不是 postgres?我应该使用哪个密码?

这是pg_hba.conf,我改了结尾,

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only
local   all …
Run Code Online (Sandbox Code Playgroud)

postgresql openbsd

6
推荐指数
1
解决办法
1153
查看次数

用D编程OpenBSD

我最近一直在阅读D编程语言,并且有兴趣将它用于可在OpenBSD上运行的小应用程序.

据我所知,编译器没有OpenBSD端口,但我可以在posix.mak文件中看到对OpenBSD的引用.我目前还没有方便的OpenBSD开发环境,所以在我准备之前,我想知道是否有人尝试在OpenBSD上使用D进行开发.

怎么回事?安装起来容易吗?是否有任何"陷阱"需要注意?提前致谢.

openbsd d

5
推荐指数
1
解决办法
1274
查看次数

php-fpm无法运行exec,system,shell_exec,只有CLI

php-fpm,nginxexec在使用时.phpfiles() shell_exec() system()从命令行工作正常.

效果很好的例子:

#php myphp.php
Run Code Online (Sandbox Code Playgroud)

myphp.php 包含:

<?php
exec('ping -c 3 google.com', $output);
print_r($output);
?>
Run Code Online (Sandbox Code Playgroud)

但是,如果我戴上我的浏览器http://localhost/myphp.php,它就不再起作用了.

有任何想法吗?我编辑

我制作了一个包含以下内容的文件:

#cat info.php

<?php
if(function_exists('exec')) {
    echo "exec is enabled";
}
    phpinfo();
?>
Run Code Online (Sandbox Code Playgroud)

在我的浏览器中,打印

exec已启用,y php信息..

我制作了一个包含以下内容的文件:

#cat info.php

<?php 
// Check for safe mode
if( ini_get('safe_mode') ){
    // Do it the safe mode way
echo "Do it the safe mode way";
}else{
    // Do it the regular way
echo "Do it the regular way"; …
Run Code Online (Sandbox Code Playgroud)

php openbsd nginx exec

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

openbsd ×10

c ×3

linux ×2

bind ×1

bsd ×1

cryptography ×1

d ×1

exec ×1

freebsd ×1

ipc ×1

ipv4 ×1

ipv6 ×1

key ×1

ksh ×1

malloc ×1

math ×1

nginx ×1

perl ×1

php ×1

portability ×1

postgresql ×1

security ×1

shell ×1

sockets ×1

solaris ×1

type-bounds ×1

unicode ×1

unix ×1

utf-8 ×1