标签: openbsd

OpenBSD 中的进程信息

我是 OpenBSD 的新手。我以前在 Linux 上工作过。我正在寻找可以找到有关当前正在运行的进程的信息的目录。在 Linux 中,我们有 /proc 目录,其中包含整个列表。但是我在 OpenBSD 4.6 中找不到类似的设置。我知道有像 ps、top 和 sysctl 这样的命令,但我想通过 C 代码获取这些信息。

unix openbsd process ps

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

OpenBSD 无法执行 a.out

我编写了这个程序,应该以 exitcode 44 退出:

// prog.S
#include <sys/syscall.h>
        .text
        .globl _start
_start:
        subl $8, %esp
        pushl $44
        pushl $0
        movl $SYS_exit, %eax
        int $0x80
Run Code Online (Sandbox Code Playgroud)

我编译了

$ cc prog.S -nostdlib -o a.out
Run Code Online (Sandbox Code Playgroud)

并运行

$./a.out
Run Code Online (Sandbox Code Playgroud)

在 FreeBSD 13.0-RELEASE i386 (clang 11.0.1) 上这样做效果很好。事实上,可执行文件运行并且程序的退出代码应该是 44。

但是,在 OpenBSD 7.0 GENERIC.MP#5 i386(clang 版本 11.1.0)和 NetBSD 9.2 i386(gcc 7.5.0)上执行相同操作时,内核拒绝执行代码,并将其传递给 shell,其中课程失败:

openbsd$ ./a.out
./a.out[1]: syntax error: `(' unexpected
Run Code Online (Sandbox Code Playgroud)

奇怪的是,该文件说它是一个 ELF 二进制文件,因此通常应该由内核执行

openbsd$ file a.out

a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, not stripped …
Run Code Online (Sandbox Code Playgroud)

assembly openbsd bsd freebsd netbsd

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

如何在OpenBSD下运行VisualWorks?

有没有人让OpenWorks在OpenBSD下运行?它不是一个官方支持的平台,但其中一个Cincom人告诉我它应该能够在linux兼容模式下运行.你是怎么设置它的?

我已经有Squeak运行没有问题,所以我不是在寻找替代方案.我特别需要为项目运行VisualWorks的Web Velocity.

谢谢,

openbsd smalltalk visualworks squeak

4
推荐指数
1
解决办法
472
查看次数

版本控制在多大程度上有助于系统管理?

我目前正在修改一个OpenBSD系统,以便建立自己的防火墙和其他一些东西.

因为这是相当实验性的(我是一个OpenBSD n00b,我已经把我的系统破坏了3到4次),我想知道其他人制作部分或全部文件系统的经验(我特别想到的是/ etc)某些VCS或其他的工作副本.

  • 这是一个好主意吗?

  • 我特别感兴趣的是VCS用户为此做了什么.我正在考虑颠覆,集市和git; 这不是一个共享的存储库,所以我对基本的vcs功能比对distributed-or-not参数更感兴趣.

  • 我也想知道人们发现的想象或实际陷阱.我可以想象保存文件所有权和权限需要仔细考虑!

  • 当然,任何不涉及VCS的替代方法

unix linux sysadmin version-control openbsd

4
推荐指数
1
解决办法
1741
查看次数

分叉并返回两次

我正在开发一个需要在 unix 中实现 fork() 的项目。我读过 freeBSD 和 openBSD 源代码,但确实很难理解。有人可以解释一下返回两次的概念吗?我知道一个返回是子进程的 pid,它返回到父进程,另一个返回为零,它返回到子进程。但我无法理解如何实现返回两次的概念......我怎样才能返回两次?预先感谢大家。

c unix openbsd fork freebsd

4
推荐指数
1
解决办法
3251
查看次数

sed:用下划线替换引号内的空格

我的输入(例如,来自ifconfig run0 scanOpenBSD)有一些用空格分隔的字段,但某些字段本身包含空格(幸运的是,包含空格的此类字段总是用引号引起来)。

我需要区分引号内的空格和分隔符空格。这个想法是用下划线替换引号内的空格。

样本数据:

%cat /tmp/ifconfig_scan | fgrep nwid | cut -f3
nwid Websense chan 6 bssid 00:22:7f:xx:xx:xx 59dB 54M short_preamble,short_slottime
nwid ZyXEL chan 8 bssid cc:5d:4e:xx:xx:xx 5dB 54M privacy,short_slottime
nwid "myTouch 4G Hotspot" chan 11 bssid d8:b3:77:xx:xx:xx 49dB 54M privacy,short_slottime
Run Code Online (Sandbox Code Playgroud)

这最终没有按照我想要的方式处理,因为我还没有用下划线替换引号内的空格:

%cat /tmp/ifconfig_scan | fgrep nwid | cut -f3 |\
    cut -s -d ' ' -f 2,4,6,7,8 | sort -n -k4
"myTouch Hotspot" 11 bssid d8:b3:77:xx:xx:xx
ZyXEL 8 cc:5d:4e:xx:xx:xx 5dB 54M
Websense 6 00:22:7f:xx:xx:xx 59dB 54M
Run Code Online (Sandbox Code Playgroud)

awk openbsd sed tcsh

4
推荐指数
1
解决办法
4930
查看次数

在 chroot-environment OpenBSD 中配置设备

我已经挠头一段时间了,找不到让它工作的方法......

我想在我的 OpenBSD 服务器上运行一些 cgi 脚本(用 Python 编写)。由于 OpenBSD 上的网络服务器在监狱中运行,我重新创建了整个文件夹结构(/bin /dev /usr /usr/local/lib 等),但是当我'时仍然收到“500 服务器内部错误”我试图导入一些需要访问 /dev/urandom 设备的 Python 模块。

我已经使用 mknod 创建了设备特殊文件。

ls -la /dev/*random
ls -la /dev/{null,zero}
Run Code Online (Sandbox Code Playgroud)

我得到以下输出

crw-r--r--  1 root  wheel   45,   3 Sep 13 11:09 /dev/arandom
crw-r--r--  1 root  wheel   45,   0 Jul 15 19:02 /dev/random
crw-r--r--  1 root  wheel   45,   1 Jul 15 19:02 /dev/srandom
crw-r--r--  1 root  wheel   45,   2 Jul 15 19:02 /dev/urandom
Run Code Online (Sandbox Code Playgroud)

crw-rw-rw-  1 root  wheel    2,   2 Sep 16 01:30 /dev/null …
Run Code Online (Sandbox Code Playgroud)

python openbsd cgi chroot jail

4
推荐指数
1
解决办法
1405
查看次数

Grep在OpenBSD中对Linux的表现不同.无法让命令工作

所以这个命令基本上是安全地连接到一个Web域来获取我的外部IP地址,这在Linux Debian系统上完美运行,但它在我的OpenBSD系统上无法正常工作.Curl命令工作正常,但是Grep命令有些问题,因为它只是没有抓住卷曲管道到它的IP.

是 - 是不是可以使用OpenBSD?我无法用手册页告诉我..

USERAGENT="Mozilla/4.0"
WEB_LOCATION="https://duckduckgo.com/?q=whats+my+ip"

curl -s --retry 3 --max-time 5 -tlsv1.2 --user-agent $USERAGENT $WEB_LOCATION | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>'
Run Code Online (Sandbox Code Playgroud)

*******RESOLVED(Kinda)********

我通过某种原因计算出这种特殊模式:

grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>'
Run Code Online (Sandbox Code Playgroud)

没有在OpenBSD上工作,但这个长版本确实如此......

grep -Eo '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}'
Run Code Online (Sandbox Code Playgroud)

为什么会出现这种情况非常令人困惑,因为第一个搜索模式在我使用的所有Debian Linux版本上都能正常工作!

regex linux grep openbsd

4
推荐指数
1
解决办法
397
查看次数

OpenBSD 上有哪些类似 Jail/Chroot/Sandbox 的机制?

我最近开始使用 OpenBSD。我想创建简单的即发即弃容器/VM 或其他东西(它应该用作沙箱)。

用户可以上传他的源代码(C++/Java/Perl),它会在服务器(OpenBSD)上编译,如果编译成功,它应该执行这个文件,然后将结果返回到网页。

我如何在 OpenBSD 中提供这个?

另外,我应该使用 chroot,因为 'jail' 将在 6.0 中删除吗?或者还有其他可能在 OpenBSD 中创建“沙箱”吗?

security openbsd bsd chroot sandbox

4
推荐指数
1
解决办法
8022
查看次数

标签 统计

openbsd ×9

unix ×3

bsd ×2

chroot ×2

freebsd ×2

linux ×2

assembly ×1

awk ×1

c ×1

cgi ×1

fork ×1

grep ×1

jail ×1

netbsd ×1

process ×1

ps ×1

python ×1

regex ×1

sandbox ×1

security ×1

sed ×1

smalltalk ×1

squeak ×1

sysadmin ×1

tcsh ×1

version-control ×1

visualworks ×1