在conoha上使用archlinux搭建Hentai@Home

在conoha上使用archlinux搭建Hentai@Home

Hentai@Home的使用前申请工作参照其他教程

需要安装openjdk-7-jre运行环境

使用wget从官方下载后需要使用unzip解压文件

为了安全起见,建议使用非root用户运行其

重点贴出服务配置文件

[Unit]
Description=HAtH Service
Requires=network.target
After=network.target

[Service]
Type=simple
User=jeremie
Restart=always
WorkingDirectory=/usr/bin/HAtH/
ExecStart=/usr/bin/java -jar /usr/bin/HAtH/HentaiAtHome.jar

[Install]
WantedBy=multi-user.target

这个配置的关键在于

User要设置为指定用户
要设置工作目录否则java执行器找不到sqlite类(忍不住再黑一次java,java各种坑)
启动路径需要以绝对路径指定执行文件
最后,第一次启动应该手动启动以输入ID和key,之后再以服务方式启动,而第一次以服务启动可能会访问不了db数据库,所以应该删除data/hath.db文件

出现启动不了时使用指令journalctl -xe查看详细信息
检查状态时使用systemctl status 服务名 查看简单信息
修改服务配置文件后需要systemctl daemon-reload重载并重启服务才能有效

传文件预计使用WinSCP的SFTP功能直接通过SSH传输文件

参照:http://tieba.baidu.com/p/2201182532

树莓派archlinux移动硬盘搭建网络存储

树莓派archlinux移动硬盘搭建网络存储

树莓派2B
旧希捷500G移动硬盘
archlinux(2015-10-25)
sambantfs-3g

参考资料:
https://wiki.archlinux.org/index.php/Samba_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29
https://wiki.archlinux.org/index.php/NTFS-3G_(简体中文)
https://wiki.archlinux.org/index.php/NTFS-3G

ntfs-3g库实现了ntfs分区的读写

samba实现windows版的smb局域网共享

关键:
需要写权限的目录必须要设置目录权限1770身份权限root:sambashare

groupadd sambashare
chown root:sambashare <共享目录>
chmod 1770 <共享目录>

如此才能够让sambashare用户组中的用户获得对此目录的读取执行写入权限

添加用户的方法:

先添加一个系统用户
再设置其的samba密码即可

useradd <user>
pdbedit -a -u <user>

每次修改samba配置文件之后不要忘记用命令testparm检查配置文件正确性

设置自动挂载分区只要在/etc/fstab中添加条目即可

例如:

/dev/设备 /mnt/载点 ntfs-3g gid=users,dmask=022,fmask=133 0 0

 

另:
树莓派USB口供电不足,所以挂载移动硬盘需要独立供电或者使用三口USB线从外部取电或者使用自带供电的USBHub
并且,树莓派的网卡口和USB口都是从一个USB口扩展出来的,所以性能不会有多快,测试读写大概稳定在10MB/s

SSR快速搭建手册

SSR快速搭建手册

系统:centos、archlinux
平台:搬瓦工、conoha
User:root

搬瓦工 centos C-P 流程(copy-past+回车即可)

yum install epel-release
yum install python-setuptools && easy_install pip
yum install m2crypto git libsodium nano 
pip install cymysql

git clone -b manyuser https://github.com/shadowsocksr/shadowsocksr

nano /etc/shadowsocks.json


{
    "server":"0.0.0.0",
    "server_ipv6": "[::]",
    "local_address":"127.0.0.1",
    "local_port":1080,
    "port_password":{
         "1234":"password1",
         "5678":"password2"
    },
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false
}



nano /etc/init.d/shadowsocks




#!/bin/sh
#chkconfig: 2345 85 15
#description: some desc here
#processname: the_process_name 
case "$1" in
        start)
                nohup python /root/shadowsocks/shadowsocks/server.py -c /etc/shadowsocks.json;;
        stop)
                ;;
        restart)
                ;;
        *)  
                echo "Usage: #0 {start|stop|restart}";;
esac




chmod +x /etc/init.d/shadowsocks



chkconfig --add shadowsocks

chkconfig shadowsocks on

conoha archlinux C-P 流程

pacman -S python-setuptools python-pip python2-m2crypto git libsodium


pip install cymysql


git clone -b manyuser https://github.com/shadowsocksr/shadowsocksr


nano /etc/shadowsocks.json


{
 "server":"0.0.0.0",
 "server_ipv6": "[::]",
 "local_address":"127.0.0.1",
 "local_port":1080,
 "port_password":{
 "1234":"password1",
 "5678":"password2"
 },
 "timeout":300,
 "method":"aes-256-cfb",
 "fast_open": false
}


mv shadowsocksr/ /usr/bin/shadowsocks/



nano /etc/systemd/system/shadowsocksR.service



[Unit]
Description=ShadowsocksR Server Service
Requires=network.target
After=network.target

[Service]
Type=simple
User=nobody
Restart=always
ExecStart=/usr/bin/python2 /usr/bin/shadowsocks/shadowsocks/server.py -c /etc/shadowsocks.json

[Install]
WantedBy=multi-user.target



systemctl start shadowsocksR.service

systemctl status shadowsocksR.service

systemctl enable shadowsocksR.service


 archlinux修改服务配置文件后需要重载并重启服务才能有效

systemctl daemon-reload

P:
archlinux默认的python是python3,SSR的开发是针对python2的,所以在作者收到bug反馈并修复之前会有各种奇怪bug,所以需要指定archlinux使用python2

journalctl -xe 可以查看系统服务日志

centos手动创建服务

centos手动创建服务

参见:
http://www.cnblogs.com/sheldonxu/archive/2012/04/13/2445399.html
http://www.centoscn.com/CentOS/config/2014/0804/3424.html

1. 在/etc/init.d下创建Service启动脚本

脚本头部的固定写法:

#!/bin/sh
#chkconfig: 2345 85 15
#description: some desc here
#processname: the_process_name

其中2345是runlevel,即2-5,85是系统启动顺序,15是系统关闭顺序
当然,它要有运行权限: chmod +x /etc/init.d/some_service

脚本内容的一般写法

case "$1" in
    start)
        echo "Starting myservice...";;
    stop)
        echo "Shutting down myservice...";;
    restart)
        echo "Shutting down myservice..."
        echo "Starting myservice...";;
    *) 
        echo "Usage: #0 {start|stop|restart}";;
esac

2. 注册到系统

chkconfig --add some_service

3. 设置随系统启动

激活:

chkconfig some_service on

取消:

chkconfig some_service off

 

linux使指定程序在任意用户执行时均拥有root权限

linux使指定程序在任意用户执行时均拥有root权限

在编程使用raspberry的GPIO口时

要想操作GPIO、I2C必须要拥有root权限

但是在多应用程序通信联合运行时就出现一个大问题

非root应用程序不能启动一个访问gpio口的应用程序

想到的解决方法一个就是以root启动调用者

但是这样就失去了安全性

第二个就是使得被调用程序始终以root权限执行

操作方法如下

1、将可执行文件的所有者设置为root
2、设置所有人可读可执行此文件(这两步直接在root下gcc编译即可实现)3、使用“chmod u+s xxx”将xxx文件设置为s权限

这样这个程序在使用ls -all查看时便是如此权限“-rwsr-xr-x”

然后就可以让任意用户使用普通的调用方法却能让程序运行在root权限下

 

参考:http://jazka.blog.51cto.com/809003/240549

Archlinux更新时导入Key出错解决方案

Archlinux更新时导入Key出错解决方案

pacman -Syu 系统更新时,在下载完新的包之后出现如下错误

(20/20) checking keys in keyring                   [----------------------] 100%
downloading required keys...
error: key "A6234074498E9CEE" could not be looked up remotely
error: required key missing from keyring
error: failed to commit transaction (unexpected error)
Errors occurred, no packages were upgraded.

显示为无法导入Key
wiki中的说明如下 链接

 Outdated archlinux-keyring package.
 Incorrect date.
 Your ISP blocked the port used to import PGP keys.
 Your pacman cache contains copy of unsigned packages from previous attempts.

其实首先尝试手动更新key

pacman-key --populate archlinux

异常基本可以解决

否则就是服务器无法访问或者keyring包版本太老需要更新

树莓派Archlinux安装X11桌面环境

树莓派Archlinux安装X11桌面环境

部分参照:http://www.tommyappco.com/additions.php?req=28

BUT:我用的是Pi2 arm7版本
使用上面连接中的gdm桌面时表示慢到无法使用
而且NetworkManager和netctl好像不兼容,不能同时生效

下面是安装桌面环境的代码

pacman -Syu
pacman -S xf86-video-fbdev xorg-xinit dbus
pacman -S xorg-server xorg-utils xorg-server-utils mesa
pacman -S xorg-twm xterm xorg-xclock
pacman -S xfce4

之后可以使用startxfce4启动桌面看一看
使用logout退出桌面并查看错误输出

之后如需启动桌面环境直接执行如下指令即可

startxfce4

archlinux安装VNC服务器

archlinux安装VNC服务器

完全参照:https://wiki.archlinux.org/index.php/Virtual_Network_Computing_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29

安装tigervnc
这是一个TightVNC的linux实现

以你需要的用户身份执行vncserver第一次启动、设置密码并测试服务器
默认的是第一个桌面:1
实际端口是5900+1

如下指令可以关闭某个桌面

vncserver -kill :1

可以编辑~/.vnc/xstartup文件来设置vnc使用的桌面环境
此文件功能类似于.xinitrc
可参照xinitrc来编辑

hit:
简单的编辑方法是
注掉所有exec开头的行
并且注掉末尾最后一个exec行前面的连续几行(这几行末尾有&,是和exec同时执行的内容)
可添加如下指令在文件末尾启动桌面环境

exec startxfce4

windows下使用TightVNC连接即可

设置开关机行为

示例文件在/usr/lib/systemd/system/vncserver.service

cp /usr/lib/systemd/system/vncserver.service /etc/systemd/system/vncserver@:1.service

然后编辑/etc/systemd/system/vncserver@:1.service
可以看到其中有使用说明

# The vncserver service unit file
#
# 1. Copy this file to /etc/systemd/system/vncserver@:x.service
# Note that x is the port number on which the vncserver will run. The default is 1 which
# corresponds to port 5901. For a 2nd instance, use x=2 which corresponds to port 5902.
# 2. Edit User=
# (“User=foo”)
# 3. Edit and vncserver parameters appropriately
# (“/usr/bin/vncserver %i -arg1 -arg2 -argn”)
# 4. Run `systemctl –system daemon-reload`
# 5. Run `systemctl enable vncserver@:<display>.service`
#
# DO NOT RUN THIS SERVICE if your local area network is untrusted!
#
# See the wiki page for more on security
# https://wiki.archlinux.org/index.php/Vncserver

其实我们只需要在User=后面添加我们的用户名即可
如果有需要的话可以修改ExecStart这一项添加启动参数的方式改变行为
之后重载systemctl

systemctl –system daemon-reload

再启动服务

systemctl enable vncserver@:<display>.service

即可使用

在使用时可以发现VNC不会自动根据客户机改变桌面分辨率
所以我们可以在启动参数中设置一个分辨率

比如wiki上的示例

Vncserver 通过开关(命令行参数)来提供灵活性。下面的例子启动具有特定分辨率、允许多用户同时观看/控制且设置 dpi 为 96 的 VNC 服务。
$ vncserver -geometry 1440×900 -alwaysshared -dpi 96 :1

如需要完整的选项表,向 vncserver 传递 -help 开关。

vncserver -help

archlinux arm 树莓派设置网络连接与无线网络连接

archlinux arm 树莓派设置网络连接与无线网络连接

到手两个树莓派
其中一个装了arch
但是因为家里网络环境只有无线网络
arch默认的无线却没有wpa加密的支持包
于是便有了此文

下面是整理的内容

相关工具命令:

查看网络设备
ip link

查看网络地址
ifconfig

查看系统服务状态
systemctl

使用netctl工具的手动网络配置方法
来自:https://raspberrypi.stackexchange.com/questions/7987/wifi-configuration-on-arch-linux-arm

在/etc/netctl/examples/目录下有netctl网络连接工具配置文件的范例

从范例创建一个新的网络连接配置(以普通的wpa加密的无线网络连接为例)

从wireless-wpa范例文件创建一个权限为640的配置文件 这样的权限配置可以防止配置文件中的密码泄露
install -m640 /etc/netctl/examples/wireless-wpa /etc/netctl/wireless-home

编辑这个文件
将其中的MyNetwork和WirelessKey替换为SSID和密码
保存文件

启动配置文件
netctl start wireless-home

启动后可以ping一下进行检测

没问题之后设置该配置文件开机自启动
netctl enable wireless-home

其实netctl操作的是systemctl服务中的netctl服务
启动配置文件时真正做的事情是以配置文件启动服务
netctl start xxx
相当于
systemctl start netctl@xxx

所以当出现问题时会显示要求使用如下命令查看故障原因
systemctl status netctl@xxx

然后.如果在上面启动配置文件时遇到错误
查看服务的status时发现如下信息就可以做对应的解决方案

如果说wpa-s…什么什么的一个东西没有安装
是因为你使用的是wpa加密的无线网络
但是没有安装那个支持wpa的库 需要安装后再试

如果说这个配置文件“already up”
说明对应的设备端口已经在使用中
使用如下命令停用该设备再启用配置文件即可
ip link set 设备名(比如eth0) down

参见:https://wiki.archlinux.org/index.php/Netctl#Troubleshooting
https://wiki.archlinux.org/index.php/Network_configuration

另:如果使用有线网络的DHCP自动分配
插上网线再启动dhcpcd服务即可

另外:在配置静态IP是会遇到如下格式的IP
192.168.1.21/24
这是CIDR表示法,把ip地址和子网掩码合并到一起,可以一个ip表示一个ip簇
参见https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation
常用的255.255.255.0等价于24

archlinux 安装bftpd服务器

archlinux 安装bftpd服务器

惯例的参考:http://bftpd.sourceforge.net/doc/en/bftpd-tutorial.html

pacman -S bftpd

安装后bftpd.conf配置文件在/etc目录下

几乎不用修改即可使用

独立模式启动服务器

/usr/sbin/bftpd -d

直接以IP默认端口连接  以非root账户登录

终止则直接杀死进程即可

killall bftpd

需要以后台服务方式运行则最方便的方法是使用xinetd超级服务器

pacman -S xinetd

安装

启动并设置自启动

systemctl start xinetd
systemctl enable xinetd

在/etc/xinetd.conf文件中添加以下内容让xintetd托管bftpd

service ftp
{
 disable = no
 socket_type = stream
 wait = no
 user = root
 server = /usr/sbin/bftpd
 log_on_success += HOST PID
 log_on_failure += HOST
 nice = 10
}

完成