未命名
title: 测试
date: 2019-04-15 19:30:00
updated: 2019-04-15 19:30:00
permalink: test
#include <iostream> |
Ftp服务器搭建
本文记录的是在
Debian 8
服务器上配置FTP服务器的操作以及问题,其他系统不一定适用
工作上的需求,需要搭建一个FTP服务器,本来以为只需要安装完毕,设置下路径就好了。但是一路配置下来,发现又好多坑,简单的事情也不简单:pensive:…
1. 安装
在Debian
上,选用了vsftpd
来作FTP服务
sudo apt-get install vsftpd |
2. 配置
安装完毕后,FTP服务就默认启动了,可以使用sudo service vsftpd status
查看FTP服务状态。vsftpd
的配置文件路径为/etc/vsftpd.conf
2.1 创建用户
vsftpd
可以使用系统用户来登陆,我们先创建一个专门用于FTP登陆的账号
# 创建用户 |
修改/etc/passwd
,设置用户没有登陆shell,避免FTP用户可以SSH登陆
remote1:x:8001:8001::/home/ftpshare:/usr/sbin/nologin |
2.1 FTP配置允许登陆的用户
默认vsftpd
的配置是允许所有的系统用户登陆的,可以设置指定哪些用户登陆。/etc/vsftpd.conf
添加下面配置
userlist_file=/etc/vsftpd.userlist |
创建/etc/vsftpd.userlist
文件,写入允许登陆的用户名
sudo touch /etc/vsftpd.userlist |
重启vsftpd
服务,应用新的配置
sudo service vsftpd restart |
2.2 问题
1. 530 Login incorrect
上面配置完重启后,使用FTP客户端(FileZilla)去登陆FTP服务器后,发现返回这个530 Login incorrect
错误。这个是由于vsftpd
的登陆认证使用了PAM
认证导致的。修改/etc/pam.d/vsftpd
文件
auth required pam_shells.so => auth required pam_nologin.so |
修改完后,重启FTP服务就可以正常登陆了。导致这个问题产生的原因在于:之前我们为了避免用户SSH登陆,将用户的登陆Shell设置成了nologin
,也就是没有登陆Shell,但是在vsftpd
的PAM
设置中,要求用户一定要有登陆Shell才能登陆,因此我们将它改成不需要Shell也能认证登陆就可以了。^1
2. 限制访问上级目录
FTP登陆后,发现可以通过..
目录访问上级目录,这样对于会泄露其他目录文件信息。添加下面配置来限制访问
chroot_local_user=YES |
allow_writeable_chroot
用户控制用户目录是否可以写入的。如果没有添加,在上传文件的时候,会提示错误:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
3. 550 Permission denied
上述修改后,再次上传文件,发现返回550 Permission denied
错误,原来是全局没有开写权限。配置文件开启下面选项
write_enable=YES |
重启服务,终于可以正常使用FTP服务了:joy:~~~
家庭网络自动代理解决方案
Google Cloud
赠送的$300到期了,之前发现连不上AppleStore
还以为是网络问题,隔天才发现是Google Cloud
到期导致的。没有了免费的服务器资源,就得去找一个了。通过对比,发现Vultr
提供的VPS
服务性价比比较高。每个月$3.5,提供1个CPU、512M内存、500GB/月流量。对于个人日常翻墙访问国外服务绰绰有余了。也有一个月$2.5的,但是只有IPv6地址,如果你是在学校这种有IPv6环境的地方,使用这个套餐相对会省一点。这个是我的邀请链接https://www.vultr.com/?ref=7748749,如果这篇文章对你有用,希望您能使用我的邀请链接~
树莓派3-NvidiaShieldTV2017性能对比
更新:之前Nvidia Shield TV
中安装的Python
是armv7
版本,更新为aarch64
版本后,居然快比armv7
版本快3倍!
~ # python3 -OO bench.py |
上述脚本在armv7
版本下结果是15秒。说明aarch64
相比于armv7
架构性能提升是巨大的。
从Vim迁移到NeoVim
Vim
使用了也有四年时间了,作为一款编辑器,确实是很方便,已经习惯于只使用键盘操作。主要的应用场景在与服务端编程,SSH
连接服务器后,直接就可以Vim
编辑源码了。
Vim
主要写Python
代码,使用jedi-vim
插件,但是不支持虚拟环境。
nvim的配置文件
To start the transition, create your |init.vim| (user config) file:
:call mkdir(stdpath(‘config’), ‘p’)
:exe ‘edit ‘.stdpath(‘config’).’/init.vim’Add these contents to the file:
set runtimepath^=~/.vim runtimepath+=~/.vim/after
let &packpath = &runtimepath
source ~/.vimrcRestart Nvim, your existing Vim config will be loaded.
使用Python
nvim中的python不想vim中那样直接编译到了vim种,nvim通过远程调用的方式来使用,可以使用系统中安装好的python
配置
https://neovim.io/doc/user/provider.html#provider-python
先创建一个虚拟环境专门用于暗转pynvim
python3.5 -m venv py35nvim |
配置python开发
source py35nvim/bin/activate |
if has('nvim') |
nvim-from-vim:help nvim-from-vim
~/.config/nvim/init.vim
bash_alias中添加别名alias nvim=vim
主题
使用真彩色
https://lotabout.me/2018/true-color-for-tmux-and-vim/
- 配置tmux
- 验证终端是否支持24真彩色
iterm2 需要可以设置terminal type
字体安装
brew tap caskroom/fonts
brew cask install font-fantasquesansmono-nerd-font-mono
主题使用
Plug ‘drewtempelmeyer/palenight.vim’
Plug ‘itchyny/lightline.vim’
状态栏使用 lighline
vim使用图标
https://github.com/ryanoasis/vim-devicons
需要patch的字体,
参考https://github.com/ryanoasis/nerd-fonts#option-8-patch-your-own-font
patch字体
参考