Browsed by
标签:debian

root用户也用sudo

root用户也用sudo

过往在升级Debian (Testing版本)时,总是以root身份进行操作,例如:

apt update
apt upgrade

最近使用同样的命令升级时,总是提示错误,意思大约是“找不到ldconfig”文件或者无权执行。这是很奇怪的问题,毕竟当前用户是root,而且ldconfig显然就在‘/sbin’目录下,肉眼可见。

检查了root用户的env,发现Path的设置为:

PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

确实没有包含‘/sbin’目录,因此root用户的确无法直接执行ldconfig命令。再次检查‘/etc/profile’文件,在路径设置时进行了以下判断:

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi

当然,可以直接修改该文件,或者修改root用户的.bashrc文件,将’/sbin’目录将入路径当中。
然而根据profile文件的判断条件,也可以不做任何修改,只是执行命令时,加上‘sudo’即可。例如上述更新命令修改为:

sudo apt upgrade
企业VPN设置的注意事项

企业VPN设置的注意事项

公司建立了自己的VPN网络用于内部系统接入和管理,出于成本和部署简化的考虑,采用了相对比较简单的PPTP-VPN方案。服务端采用Debian 8系统,客户端就直接是windows和Linux自带的PPTP拨号软件。由于是私有的网络,因此在配置上可以尽量简化、统一,去掉一些没有必要的协商环节。

Debian服务端配置

服务端只保留一种协议(即MS-CHAP v2),同时强制要求MPPE-128bit加密(Microsoft Point-to-Point Encryption-微软点对点加密术)。在“/etc/ppp/pptpd-options”文件中,设置以下值即可:

refuse-pap
refuse-chap
refuse-mschap

require-mschap-v2
require-mppe-128

Windows客户端配置

以Windows自带的拨号网络配置为例。直接指定为“PPTP”的VPN类型,要求数据必须加密,同时协议部分只保留MS-CHAP v2即可。如下图所示。

Windows VPN拨号设置
Windows VPN 拨号设置

Linux客户端配置

与Windows客户端的配置基本一致,只是需要单独指示出MPPE-128bit加密方式,如下图所示。

Linux VPN 客户端配置
Linux VPN 客户端配置
Debian testing

Debian testing

Debian 9的KDE实在太丑,“微风”变成浓郁的乡村风,一股掩盖不住的土气扑面而来。相比之下,“Debian 8 + KDE”完全是珍品。

我觉得自己要被Debian 9的乡村风给窒息了,难道以后都会是这样? 赶紧装上testing版本,滚动到最新的KDE看看……无语了,真丑!丑出天际!

似乎大量的部件都用QML重写了,又耗资源又慢,这是要作死啊,一脸油腻的样子。

Debian testing KDE
Debian testing KDE

2018-01-08 更新:实在忍不住,下载了Neon(user edition)看看最新的KDE5究竟是什么样的。好吧,就是下面这个样子。看来冤枉了Debian,KDE5现在就是这种奔放的乡村风。

KDE5 in Neon
KDE5 in Neon
鼠标滚轮太快

鼠标滚轮太快

系统是Debian 8(64bits),一直有这个问题。比如打开Firefox浏览网页,一般习惯用鼠标滚轮翻页,问题是速度太快,一下就翻过几页,试了几个鼠标都有类似的问题,基本可以排除硬件原因(实际上切换到同一台计算机的windows系统,就一切正常)。

在Debian系统中也设置了鼠标的一些配置,例如“系统设置”中的“鼠标滚轮卷动单位”等,没有效果。

虽然比较烦人,不过勉强用键盘也能避免这个问题,于是就耽搁下来。

最近浏览文档、写文档等情况比较多,没有鼠标滚轮实在很不方便,于是下决心解决这个问题。上网搜了一些解决方案,都没有效果。搜到一个解决方法:插拔鼠标一下。这实在是无厘头,想想插拔一下也不费事,就试一下吧。

太扯了!居然真的有效!这到底是什么情况?

Apache2配置调整

Apache2配置调整

在资源不充足的节点,如果对性能要求不高,可以试试调优一下Apache2的配置,节约对内存等资源的占用。Debian 8系统Apache2默认采用prefork工作模式,可以试试修改/etc/apache2/mods-enabled/mpm_prefork.conf的配置,例如采用以下配置项:

<IfModule mpm_prefork_module>
 StartServers 5
 MinSpareServers 5
 MaxSpareServers 10
 MaxRequestWorkers 20
 MaxConnectionsPerChild 1000
</IfModule>

当然,如果是在资源很充足的情况下,完全可以放大以上这些配置。Apache默认的配置项一般能满足普通情况下的需求,而在特殊情况,例如资源不充足或者资源非常充足,适当调整上述各项配置,会提高Apache的响应效率和稳定性。

vbox共享目录权限问题

vbox共享目录权限问题

主机是win10,客机是debian7,主机共享文件夹给客机。通常该共享目录会映射到/media目录下。但是使用dolphin无权打开改文件夹。

需要手工将当前用户(mss)加入vboxsf组:

sudo usermod -a -G vboxsf mss

注销当前用户再重新登陆后,即可正常使用共享文件夹。

dovecot配置上一点改动

dovecot配置上一点改动

Debian系统中的Dovecot套件升级了,一直工作正常,没怎么在意升级的影响。今天在syslog中看到一些告警:

dovecot: config: Warning: NOTE: You can get a new clean config file with: doveconf -n > dovecot-new.conf
dovecot: config: Warning: Obsolete setting in /etc/dovecot/conf.d/auth-system.conf.ext:77: add auth_ prefix to all settings inside auth {} and remove the auth {} section completely

从告警信息看,“/etc/dovecot/conf.d/auth-system.conf.ext”有一些变化,重新修改后可以去除这个告警。比如,原文件中内容为:

auth default {
    socket listen {
        client {
            path = /var/spool/postfix/private/auth-dovecot
            mode = 0660
            user = postfix
            group = postfix
        }
    }
}

新配置修改为以下内容:

service auth {
    unix_listener /var/spool/postfix/private/auth-dovecot {
        mode = 0660
        user = postfix
        group = postfix
    }
}
制作deb安装包遇到的两个问题

制作deb安装包遇到的两个问题

Ubuntu软件中心在安装deb软件时,对一些细节的检查比Debian要严格一些。例如,我们的软件安装包在Debian系统安装时不会提示错误,而在Ubuntu系统中则会提示错误。当然,用户可以选择忽略这些告警提示并继续安装过程,但这样始终观感不佳,因此在网上搜了一下(感谢google,鄙视百度和bing)解决方法,希望能帮到有类似问题的朋友。

E: … maintainer-name-missing

这个错误最初让人感觉困惑,因为在control文件中是设置了maintainer字段的:

Maintainer: iloveu@myvoipapp.com

查到了Debian的资料,要求Maintainer字段的内容遵循RFC822规范,只写一个email地址是不对的。标准格式应当是“用户名”+email地址,例如以下格式:

Maintainer: MYVOIPAPP <iloveu@myvoipapp.com>

E: … wrong-file-owner-uid-or-gid

这个错误很容易理解,就是用户的系统中没有安装包文件的用户ID和组ID。例如,制作deb安装包的用户是John,而用户系统中没有“John”用户,则会提示这个错误。解决方法有多种,例如在制作deb安装包时切换到root用户,或者post-script中重置相关文件的用户ID和组ID等。

这些方式都有些繁琐,最简单的方式是制作deb包时使用fakeroot命令。在dpkg-deb命令前添加fakeroot即可:

fakeroot dpkg-deb -b ......
pure-ftp over TLS

pure-ftp over TLS

最近查看log,感觉有些无聊人士尝试干扰或者攻击FTP服务器,因此有必要将FTP服务修改为加密方式。最简单的方法就是采用TLS进行传输(即FTPS),确保传输过程是加密的。

目前系统为Debian7,已部署pureFTPd作为FTP服务器。打开TLS支持方法比较简单,请参考pureFTP over TLS文档。主要步骤如下(假定pureFTPd已经部署):

步骤1:打开pureFTP的TLS支持

执行命令:

echo 1 > /etc/pure-ftpd/conf/TLS

设置TLS为1,运行采用overTLS以及普通不加密方式。如果要求必须使用TLS加密方式,则应设置TLS为2。实际部署中,建议设置为2。

步骤2:创建TLS加密密钥

使用openssl创建即可:

openssl req -x509 -nodes -days 7200 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

会提示各项信息输入,照着填写即可。同时,修改pem文件的属性:

chmod 600 /etc/ssl/private/pure-ftpd.pem

完成上述配置后,重启pureFTPd即可:

service pure-ftpd restart

步骤3:FileZilla采用显式加密

在FileZilla的站点管理配置中,“通用 – 加密”项必须配置为“要求显式的FTP over TLS”,如附图所示即可。

FTP over TLS
配置FileZilla采用FTP over TLS
Debian7升级到Debian8

Debian7升级到Debian8

最近Debian发布了Debian8.1版本,可以比较正式地商用了,因此打算将一套生产环境的debian7升级到debian8。

Debian不像Ubuntu,后者使用上确实方便,基本上一键就可以搞定。不过Debian也不麻烦,事实证明也很简单。

step1:关闭已经运行的一些服务器程序,例如apache,mysql等。

step2:更新当前版本,也就是sudo apt-get update以及sudo apt-get upgrade即可。

step3:修改/etc/apt/sources.list文件,将wheezy替换成jessie,例如下面就是目前生产环境上的配置:

deb http://mirrors.aliyun.com/debian/ jessie main non-free contrib
deb http://mirrors.aliyun.com/debian/ jessie-proposed-updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ jessie main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ jessie-proposed-updates main non-free contrib

deb http://mirrors.aliyun.com/debian-security/ jessie/updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian-security/ jessie/updates main non-free contrib

deb http://http.us.debian.org/debian/ jessie main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free

需要注意的是以下几点:

(1)尽量配置国内的镜像源。debian官方源在国内大部分区域都比较慢,采用国内源能节省大量时间。

(2)推荐使用阿里镜像源。阿里巴巴虽然是个逗比公司,不过阿里镜像还是做得相当不错,速度快、网络稳定,我们一直都用它。

step4:更新系统。依次执行下述命令即可:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

执行过程中,涉及到一些软件更新后配置文件有改变,默认采用原有配置。

对apache的影响

apache2升级后,配置文件有改动,导致出现“403 forbidden”的情况。问题原因是apache2的部分配置参数取消了,需要用新的参数替代。修改/etc/apache2/sites-enabled/000-default(-ssl)文件:

 Order allow,deny
 allow from all

修改为:

require all granted