在 Office 365 上启用 SMTP 认证

Office 365 E5 Developer 版本附送了 Outlook 企业邮箱,绑定域名即可使用。但是默认没有启用 SMTP,因此无法通过邮件客户端收发邮件。

在查阅含糊不清的官方文档之后,发现按照预置的策略,SMTP 是默认关闭的。需要使用 PowerShell 开启。首先导入 Exchange Online 管理模块:

1
Import-Module ExchangeOnlineManagement

然后登录,将 admin@contoso.com 换成你的 Office 365 域管理员账号。

1
Connect-ExchangeOnline -UserPrincipalName admin@contoso.com

Windows 会弹出窗口,进行 OAuth 认证。

在完成加载后,使用 Get-CASMailbox 命令列出用户:

1
2
3
4
5
6
7
8
9
PS C:\> Get-CASMailbox

Name
----
miku
stardust
xinhua
lty
yzl

可以对单个用户启用 SMTP,例如为用户 miku 启用 SMTP:

1
Set-CASMailbox -Identity miku -SmtpClientAuthenticationDisabled $false

如果要对所有用户启用 SMTP,可以执行下面这个命令:

1
Get-CASMailbox | Set-CASMailbox -SmtpClientAuthenticationDisabled $false

值得注意的是,该选项只为当前所有用户启用了 SMTP。如果后来添加了新的用户,则需要重新执行该命令,才能为新的用户启用 SMTP。

禁用 SSH 粘贴命令时背景高亮

有的 Linux 发行版的 SSH 默认配置下,粘贴命令时 Shell 会将粘贴的部分高亮。笔者认为这不好看,同时也会带来一些问题。

关闭该高亮只需在 inputrc 文件内加入以下这一行配置:

1
set enable-bracketed-paste off

如果想要系统级生效,请编辑 /etc/inputrc;如果想要用户级生效,请编辑 ~/.inputrc

欧洲卡车模拟 2 挂车涂装模组模板

欧洲卡车模拟 2 的涂装制作并不难,但是有不少繁琐的工作。各种资源和说明,也比较难找。因此我做了一个可开箱即用的模板,并使用 Python 脚本自动化一些工作。

模板开源在 GitHub 上。但是需要注意部分内容并非是开源的。

请在制作模组时,注意相关版权、商标权、专利权的规定。

除了 assets/SCS 文件夹的内容,是由 SCS Software 所著并授权模组创作者使用外,其他文件均为本人所著。

详细的介绍和使用方法,可用参见 GitHub 中项目的说明。

自动化部署网站所需的权限设置

首先为网站内容目录设置权限:

1
2
3
4
5
6
7
usermod -a -G www-data operator
chown -R www-data:www-data /var/html/htdocs
chmod -R o-x /var/html/htdocs
chmod /var/html/htdocs -type d -exec chmod g+s {} \;
setfacl -d -R -m u::rwx /var/html/htdocs
setfacl -d -R -m g::rwx /var/html/htdocs
setfacl -d -R -m o::--- /var/html/htdocs

operator 加入 www-data 组使其有权限部署网站内容。

设置组的 setgid 标志位,可以确保子文件夹写入或修改后,依然属于 www-data 组。值得注意的是,Linux 会忽略文件夹的 setuid 标志位。

最后用 ACL 修改 umask。使用 ACL 修改的原因是,ACL 对 umask 的修改可以持久化。

同理,为 Nginx 配置目录设置权限:

1
2
3
4
5
6
7
8
useradd  webmaster
usermod -a -G webmaster operator
chown -R webmaster:webmaster /etc/nginx/sites
chmod -R o-x /etc/nginx/sites
chmod /etc/nginx/sites -type d -exec chmod g+s {} \;
setfacl -d -R -m u::rwx /var/html/htdocs
setfacl -d -R -m g::rwx /var/html/htdocs
setfacl -d -R -m o::--- /var/html/htdocs

最后,允许 webmaster 通过 sudo 重启 Nginx:

1
echo "%webmaster ALL= NOPASSWD: /usr/bin/systemctl restart nginx" >> /etc/sudoers