Skip to content

OpenBSD上doas用法简介

doas是OpenBSD 5.8上开始出现的一个程序,用来代替sudo。相比sudo,它的好处是配置简单明了。坏处嘛我还不知道,估计功能上没有sudo那么全面吧。因为我都是用sudo的一些基本功能(指定那些用户可以切换到root),所以对sudo的优势了解并不全面。另外就是,doas的配置完全不兼容sudo,且目前只有OpenBSD上才有。 doas的配置文件是/etc/doas.conf,配置规则如下 permit|deny [options] identity [as target] [cmd command [args …]] 一个规则以permit(允许)或deny(拒绝)开头,  接下来是一些选项(options,非必须),然后是配置的用户名或用户组(identity部分),再接下来是这个用户(identity部分)可以(或不允许)以哪个用户(target)的身份来执行命令,用as关键词来表示。这也是可选的。如果省略,表示这个用户(identity)可以以任意用户的身份执行后面cmd关键词指定的命令;   cmd关键词用来指定允许(或拒绝)的命令,args关键词用来指定命令的参数; cmd 和args都是可选的。省略的话表示任意命令和参数。 选项(options)部分有一下两个选择: a. nopass , 表示用户无需输入密码 b. keepenv  { [ variables … ] },表示用户的使用环境将会被保持,如果不指定的话,默认是会重置的(除了这些变量: DISPLAY, HOME, LOGNAME, MAIL, PATH, TERM, USER and USERNAME.)。keepenv还可以指定具体那些变量被保持。将需要保持的变量名称放在大括号中,多个时以空格分开。…

Read more

OpenBSD上的服务管理程序rcctl

rcctl 是OpenBSD系统上的后台进程(daemon)管理程序,功能上类似于以前redhat Linux上的chkconfig或新版中的systemctl。 它其实是一个shell脚本程序,最早见于OpenBSD 5.7。需要有root权限才可以使用。 它的原理主要是通过在/etc/rc.conf.local文件中设置相应进程的配置来完成。被管理的进程需要在/etc/rc.d/目录下有相应的控制脚本文件。 主要功能及示例 (下面的内容主要是根据rcctl的man手册翻译而来,我再加上一些范例。愿意的朋友可以自己阅读man手册) 启用或禁用后台进程(包括系统自带进程如httpd以及通过软件包安装的进程如mysqld/nginx等,下同) rcctl enable httpd ## 启用 rcctl disable httpd ## 禁用 启动或停止后台进程 rcctl start httpd rcctl stop httpd 也可以根据需要传入 -d (开启debug)或 -f (强制)参数 列出进程相关的参数 # rcctl get httpd httpd_class=daemon httpd_flags= httpd_timeout=30 httpd_user=root…

Read more

更改键盘映射

我的Thinkpad X20E的回车键坏掉了,但是手头很紧,不想换键盘,而且也不常用,干脆就把回车键映射到其它的键上吧。 考虑了一番,大写键(CapsLock)就是这次的牺牲品了。 当然,目前这台计算机运行的(还)是DragonFlyBSD 4.2。 下面要开始实施计划。当然,你还需要一个外接的键盘。 由于控制台(console)界面下和X(图形界面)下键映射的负责程序不同,需要分别来做。 1. 命令行下 根据网络搜索结果和命令手册,命令行下键的映射由kbdcontrol程序来控制。 首先,导出目前键盘映射表到一个文件(需要在控制台界面下操作,SSH不行(?)): kbdcontrol -d > /root/no_enter.map 然后编辑此文件。我的键盘映射表中,大写键编码为058 (找文件的2-8列中clock对应的编码)。 然后将058那一行的第二列的clock改为cr(Carriage Return)。参看下面我修改过的文件。 第一个带有#的058的行是kbdcontrol命令导出的数据,被我注释掉了。 [acheng@violet ~]$ cat /root/no_enter.map # alt # scan cntrl alt alt cntrl lock # code base shift cntrl shift alt…

Read more

DragonFlyBSD 4.2与radeon HDMI

我的Thinkpad X120E上安装的是DragonFlyBSD 4.2.3,当通过内置的HDMI连接到我的坚果家用投影仪上来播放电影时,声音却依然通过电脑自己的音响来播放。 折腾了半天,才知道DragonflyBSD上默认不启用HDMI的声音播放功能。还需要自己重新编译内核。 需要改动的文件为(假定源文件是放在/usr/src目录下):/usr/src/sys/dev/drm2/radeon/radeon_drv.c 需要的改动: 将 int radeon_audio=0中的0改为1(意为启用radeon的声音输出功能) 然后: cd /usr/src make clean make buildkernel make installkernel 然后在/etc/sysctl.conf文件中加入下面一行: hw.snd.default_unit=0 然后重启即可。 当需要临时使用计算机内置音响时,可以使用下面的命令切换: sysctl hw.snd.default_unit=1 本文参考了: http://www.freebsdwiki.net/index.php/Hardware_Configuration,_Audio/Video

Read more

DragonflyBSD – 配置有线网卡

在DragonflyBSD 4.2上,网卡的配置是写在/etc/rc.conf文件里面的。 比如要为某个网卡(我这里是re0)配置为使用dhcp获取ip地址,那么在rc.conf文件里写上这么一行即可: ifconfig_re0=”DHCP” 如果你不知道接口的名称,可以使用“ifconfig -a”命令查看: [acheng@violet ~]$ ifconfig -a re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=1b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING> inet6 fe80::ea9a:8fff:fe12:e1fd%re0 prefixlen 64 scopeid 0x1 inet 192.168.3.18 netmask 0xffffff00 broadcast 192.168.3.255 ether e8:9a:8f:12:e1:fd media: Ethernet autoselect (100baseTX <full-duplex>) status: active faith0: flags=8002<BROADCAST,MULTICAST> mtu 1500…

Read more

Fish Shell和其他SHELL的差异

抽空看了一下Fish Shell的文档,发现它和其他shell的差别主要是增强或增加了一些方便用户的特性。主要表现在: 1.增强了TAB键自动补齐功能 会根据路径、文件名自动补齐,SHELL变量,常见命令、函数等 还可以使用complete命令为特定命令自定义补齐 2. 增加了自动建议 输入命令时,fish shell会根据$PATH变量的配置,命令行历史以及自动补齐功能提供自动建议(以灰色显示) 可以使用右箭头或ctrl+F接受自动建议 3. 改变了重定向标准错误的方式,使用^而非通用的 ‘2 > $file’: ^ filename  (或 ^^ filename) 4. 自动加载函数的方式 5. 命令行语法高亮显示 当然还有其他的一些不同,目前还没有感觉到方便或者不便: a. 配置文件的名称和位置: ~/.config/fish/config.fish 或全局配置文件: /usr/share/fish/config.fish /etc/fish/config.fish b. 设置变量的方式: 要设置变量smurf_color 的值为blue, 用: set smurf_color blue c….

Read more

OpenBSD上安装Fish Shell

无意中发现了Fish Shell,对我来说是个全新的东东,也有很多看起来不错的特性。决定试一下。 不过OpenBSD上没有fish shell的软件包,需要自己编译。幸好编译的过程还算简单顺利。 先安装需要的工具: pkg_add -v gmake autoconf 安装autoconf的时候要选择2.60或更高的版本。 然后根据autoconf的版本设置变量AUTOCONF_VERSION: export AUTOCONF_VERSION=2.69 #我安装的是autoconf-2.69p1 接下来下载fish shell的源码包。我选择到github上下载。fishshell.com上应该也有,但是我打不开。 https://github.com/fish-shell/fish-shell/archive/master.zip 然后解压。我用的是7z (7zip): 7z x master.zip 解压后得到一个fish-shell-master文件夹。接下来编译。 cd fish-shell-master autoconf ./configure gmake gmake install # 需要root权 一切顺利的话,运行fish命令即可进入fish shell 至于fish shell的配置、特性等等,后面的博客中我们再聊(我也还没看完文档呢)

Read more

使用scrot命令行工具抓屏

scrot是一个X环境下的命令行抓屏工具。注意是X环境,只开个终端是不行的。在OpenBSD上需要另外安装: ## 首先确保PKG_PATH变量已经设置好 $ echo $PKG_PATH http://ftp.jaist.ac.jp/pub/OpenBSD/snapshots/packages/amd64/ ## 安装scrot pkg_add -v scrot scrot的常见用法是: scrot -c -d 5 screen.png 其中”-c”用于显示倒计时,”-d”用于设定延迟的秒数。最后screen.png是保存截屏要有的文件名。

Read more

OpenBSD5.7上SED不支持\t

偶然发现OpenBSD 5.7上的SED编辑器不支持以’\t’来替代制表符。解决方式就是安装GSED,或者使用“ctrl+v”然后按TAB键的方式来输入制表符。 root@daisy ~ # echo test | sed ‘s/es/\t/’ ttt root@daisy ~ # echo test | gsed ‘s/es/\t/’ t t root@daisy ~ # echo test | sed ‘s/es/ /’ t t  

Read more

最新视频: OpenBSD快速上手指南

这一最新视频面向具有一定Unix/Linux类系统基础,想要学习OpenBSD的朋友,共13个视频,限时特惠只要28RMB。[button link=”http://www.kdump.cn/store/index.php?route=product/product&product_id=62″ size=”large” style=”tick” color=”red” window=”yes”]购买 / 查看[/button]

Read more
Sidebar