使用 .htpasswd 对文件目录进行用户验证

先确定需要密码保护的目录(该目录中的所有子目录和文件也将受密码保护),然后参考下面的文本制作 .htaccess 文件。

.htaccess 文件示例1 :

AuthName "Member's Area Name"
AuthUserFile /path/to/password/file/.htpasswd
AuthType Basic
Require valid-user

.htaccess 文件示例2 :

AuthType Basic
AuthName "Password Required"
AuthUserFile "/www/passwords/password.file"
AuthGroupFile "/www/passwords/group.file"
Require group admins

.htgroup 文件(AuthGroupFile)用户组是可选的。

网址调用

.htpasswd 中设置的密码和用户名, 可以使用URL直接调用:

http://xyz.net?AAA 【仅一个参数的字符串被解释为密码

http://xyz.net?AAA:BBB 【用分号分隔的两个字符串被解释为用户名和密码

相关页面

OpenLiteSpeed 下配置 .htpasswd

在线生成 .htpasswd

https://htpasswd.org/ (生成用户名和密码组合(每行一个))

https://wtools.io/generate-htpasswd-online (不能选择加密方式)

https://tool.oschina.net/htpasswd (中文 – – 在线 htpasswd 生成器)

如何从 Debian 10 (Buster) 升级到 Debian 11 (Bullseye)

先查看确认Debian的版本

cat /etc/os-release
cat /etc/debian_version
lsb_release -a

更新包存储库:

将 /etc/apt/sources.list 文件中的 buster 关键字替换为 bullseye

sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list

或者直接去这个地址生成一个sources.list文件,保存下来替换:

https://mirrors.ustc.edu.cn/repogen/

之后先更新下系统的软件包列表:

sudo apt update

再下一步,执行最小系统更新 upgrade --without-new-pkgs

执行完整的系统升级将删除系统中保留的大量软件包。因此,分两阶段的方法将 Debian 10 升级到 Debian 11。先进行最小升级,之后再进行完全升级。

在最小更新将只升级当前软件包,而不安装新软件包或删除现有软件包。执行以下命令:

sudo apt upgrade --without-new-pkgs

在此过程中,如果屏幕出现选择提示,要求重新启动系统服务或保留或删除配置选项。 一般都单击“是”,按回车键继续。

此步升级完成后,我们执行完整的系统升级(full-upgrade)将系统升级到 Debian 11。会安装 Debian 11 附带的最新软件包并解决依赖问题。

sudo apt full-upgrade

会再出现几次提示。比如Openssh提示做什么操作。选择了保留当前安装的选项,确定ok下一步。

等待完全升级完成,就可以重新启动系统了。

重启后,再查看系统发行版本信息。已经升级至Debian 11(bulleye)

cat /etc/os-release
cat /etc/debian_version
lsb_release -a

另外,wsl 下默认安装的debian执行“lsb_release -a”查看发行版本,会提示:“lsb_release: command not found”

需要执行安装 lsb_release

apt-get install -y lsb-release

解决windows下访问WSL文件拒绝访问

通过文件管理器直接访问 \\wsl$ 编辑linux子系统文件时提示文件拒绝访问。

原因是因为你启动linux的非管理员账号

解决方法
如果是这样的话,需要修改默认登录用户为root即可,修改方式如下:

C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps\debian.exe config --default-user root

修改完成后重启wsl,如下:

关闭wsl:wsl --shutdown
之后,在重新启动wsl

VPS下检测虚拟化方式的工具

imvirt

http://micky.ibh.net/~liske/imvirt.html

virt-what

https://people.redhat.com/~rjones/virt-what/

另外,wsl下执行“lsb_release -a”查看发行版本,会提示:“lsb_release: command not found”

执行命令安装 lsb_release

apt-get install -y lsb-release

OpenWrt 固件相关

https://openwrt.org/zh/start

OpenWrt官方固件下载:

下载适用于您设备的OpenWrt固件

输入设备的名称或型号, 然后选择推荐的内部版本或其他名称.
https://firmware-selector.openwrt.org/
https://asu.aparcar.org/

其他版本固件下载:

immortalwrt :

https://github.com/ibook86/newifi3-d2-openwrt

常用Luci 软件包:

luci-app-appfilter
luci-app-attendedsysupgrade
luci-app-autoreboot
luci-app-banip
luci-app-commands
luci-app-ddns
luci-app-diskman
luci-app-eqos
luci-app-filetransfer
luci-app-firewall
luci-app-frpc
luci-app-guest-wifi
luci-app-iptvhelper
luci-app-nft-qos
luci-app-opkg
luci-app-smartdns
luci-app-socat
luci-app-statistics
luci-app-timecontrol
luci-app-ttyd
luci-app-turboacc
luci-app-uhttpd
luci-app-vnstat2
luci-app-webadmin

常用CLI 包:

acu
curl
wget
whois
openssh-sftp-server

… … 

解决wsl两个子系统同时登录ssh,以及ping,sftp权限的问题

重装了windows的linux子系统,从wsl到wsl2,安装了一个kali,一个debian(其实这两个装一个就行了)

试试能不能ssh,发现没ssh服务,先安装

sudo apt install openssh-server
sudo systemctl start ssh

之后ssh上去之后,想改ssh端口,发现sftp编辑sshd_config文件提示“Permission denied”。给sshd_config加上权限,还不行,发现原来是sftp-server没权限。。。加上权限,可以编辑文件了。

sudo chmod u+s /usr/lib/openssh/sftp-server

设置ssh自启动

sudo systemctl enable ssh

查看子系统IP地址,ping自己一下也是没权限。加上权限

sudo chmod u+s /usr/bin/ping

然后同时开了kali,debian两个子系统的CMD窗口。查看ip,竟然两个子系统ip地址是一样的?没搞明白,怎么选择登录另一个子系统?是不是不能同时登录两个子系统呢?

先测试一下,打开两个子系统(顺序是先kali,再Debian),ssh登录22端口,连到的是第一个打开的子系统kali。再修改子系统kali的ssh端口到2022,再连22端口,连接失败,sudo service ssh restart 重启子系统Debian的ssh服务,再连22端口,Debian就连上了。这样两台子系统就可以同时ssh登录。

———————————————————————-

#如果Debian 中service 命令不存在,先安装 sysvinit-utils 包.

sudo apt-get install sysvinit-utils

如果已经安装,先在~/.bashrc 中添加 $PATH

PATH=$PATH:/usr/sbin

重启bash,service命令就可用了。

 service --status-all

Openwrt 一次自动更新全部软件包

1.使用 opkg 命令更新

opkg update
opkg upgrade luci 
opkg list-upgradable | grep luci- | cut -f 1 -d ' ' | xargs opkg upgrade

在ssh下,先“opkg update”,获取更新。之后再更新“ luci-” 开头的包。如果 要全部无条件更新,就去掉过滤“ grep luci- |”

2 使用 opkg-upgrade.sh 更新(推荐)

https://github.com/tavinus/opkg-upgrade

使用sh脚本更新,需要 curl 或 wget,使用Https链接的话,还需要SSL支持。

注意:curl / wget 可能会因为缺少 SSL 证书而失败。
您可以使用以下命令选择忽略证书检查:

curl -k
wget --no-check-certificate

或者,您将需要修复您的安装。
请注意,SSL支持会占用相当多的存储空间。/etc/ssl/certs/ca-certificates.crt

#这应该足以使SSL工作:

opkg install ca-certificates openssl-util

#如果您仍有问题,这可能是一种解决方法:

mkdir -p -m0755 /etc/ssl/certs && curl -k -o /etc/ssl/certs/ca-certificates.crt -L http://curl.haxx.se/ca/cacert.pem
  • 安装到当前目录,使用./opkg-upgrade.sh 执行:
# 根据使用 wget curl ,是否SSL,选择对应命令执行。

# using wget with SSL
wget 'https://raw.githubusercontent.com/tavinus/opkg-upgrade/master/opkg-upgrade.sh' -O "opkg-upgrade.sh" && chmod 755 "opkg-upgrade.sh"

# using wget WITHOUT SSL
wget --no-check-certificate 'https://raw.githubusercontent.com/tavinus/opkg-upgrade/master/opkg-upgrade.sh' -O "opkg-upgrade.sh" && chmod 755 "opkg-upgrade.sh"

# using curl with SSL
curl -L 'https://raw.githubusercontent.com/tavinus/opkg-upgrade/master/opkg-upgrade.sh' -o "opkg-upgrade.sh" && chmod 755 "opkg-upgrade.sh"

# using curl WITHOUT SSL
curl -k -L 'https://raw.githubusercontent.com/tavinus/opkg-upgrade/master/opkg-upgrade.sh' -o "opkg-upgrade.sh" && chmod 755 "opkg-upgrade.sh"
# 执行更新
./opkg-upgrade.sh
  • (推荐)安装到系统(无需.sh扩展):/usr/sbin/opkg-upgrade
# 根据使用 wget curl ,是否SSL,选择对应命令执行。

# using wget with SSL
wget 'https://raw.githubusercontent.com/tavinus/opkg-upgrade/master/opkg-upgrade.sh' -O "/usr/sbin/opkg-upgrade" && chmod 755 "/usr/sbin/opkg-upgrade"

# using wget WITHOUT SSL
wget --no-check-certificate 'https://raw.githubusercontent.com/tavinus/opkg-upgrade/master/opkg-upgrade.sh' -O "/usr/sbin/opkg-upgrade" && chmod 755 "/usr/sbin/opkg-upgrade"

# using curl with SSL
curl -L 'https://raw.githubusercontent.com/tavinus/opkg-upgrade/master/opkg-upgrade.sh' -o "/usr/sbin/opkg-upgrade" && chmod 755 "/usr/sbin/opkg-upgrade"

# using curl WITHOUT SSL
curl -k -L 'https://raw.githubusercontent.com/tavinus/opkg-upgrade/master/opkg-upgrade.sh' -o "/usr/sbin/opkg-upgrade" && chmod 755 "/usr/sbin/opkg-upgrade"
# 执行更新
opkg-upgrade

将更新命令加入自定义菜单

可以先安装 luci-app-commands

opkg install luci-app-commands

安装后,就可在luci的系统菜单中

使用自定义命令进行更新,一键就直接执行,更方便!如下图

这样就可以在 luci 界面,使用opkg-upgrade一键更新所有软件包了!

解决VS2019/VsCode 错误提示 No SDKs were found.

装了 .net core 5.0的SDK,在VS2019建了个项目,打开发现解决方案中是空的。换VScode也是提示: No SDKs were found.

CMD下 “dotnet –info”,.NET SDKs 下没有条目,只有.NET runtimes。

发现问题在于环境变量的path设置:

原先的是:”C:\Program Files (x86)\dotnet” ,但目录下没有SDK文件夹

应该添加路径:“C:\Program Files\dotnet” ,此目录下有SDK

添加过问题依然。

原来应用程序会去环境变量path条目的目录中,按顺序,查找“dotnet.exe”,在”C:\Program Files (x86)\dotnet”找到一个,就停止寻找下面的路径条目,

所以“C:\Program Files\dotnet”,要放在 “C:\Program Files (x86)\dotnet”之前。

在环境变量列表,选择“C:\Program Files\dotnet”,上移此条目至 “C:\Program Files (x86)\dotnet”之前,就可以找到SDK了。

设置后,在CMD下 “dotnet –info”,已经看到 .NET SDKs 条目了。

但之前创建的项目,直接打开解决方案还是不能加载,要去打开.csproj文件才能加载。或者重新新建项目。

解决 snap 更新依赖关系错误

yum update , snap 更新出错。就解决如下,注意修改版本号

正在解决依赖关系
–> 正在检查事务
—> 软件包 snap-confine.x86_64.0.2.45.3.1-1.el7 将被 升级
—> 软件包 snap-confine.x86_64.0.2.47.1-1.el7 将被 更新
—> 软件包 snapd.x86_64.0.2.45.3.1-1.el7 将被 升级
—> 软件包 snapd.x86_64.0.2.47.1-1.el7 将被 更新
—> 软件包 snapd-selinux.noarch.0.2.45.3.1-1.el7 将被 升级
—> 软件包 snapd-selinux.noarch.0.2.47.1-1.el7 将被 更新
–> 正在处理依赖关系 selinux-policy-base >= 3.13.1-268.el7,它被软件包 snapd-selinux-2.47.1-1.el7.noarch 需要
–> 解决依赖关系完成
错误:软件包:snapd-selinux-2.47.1-1.el7.noarch (epel)
需要:selinux-policy-base >= 3.13.1-268.el7
已安装: selinux-policy-targeted-3.13.1-266.el7_8.1.noarch (@updates)
selinux-policy-base = 3.13.1-266.el7_8.1
可用: selinux-policy-minimum-3.13.1-266.el7.noarch (base)
selinux-policy-base = 3.13.1-266.el7
可用: selinux-policy-minimum-3.13.1-266.el7_8.1.noarch (updates)
selinux-policy-base = 3.13.1-266.el7_8.1
可用: selinux-policy-mls-3.13.1-266.el7.noarch (base)
selinux-policy-base = 3.13.1-266.el7
可用: selinux-policy-mls-3.13.1-266.el7_8.1.noarch (updates)
selinux-policy-base = 3.13.1-266.el7_8.1
可用: selinux-policy-targeted-3.13.1-266.el7.noarch (base)
selinux-policy-base = 3.13.1-266.el7
您可以尝试添加 –skip-broken 选项来解决该问题
您可以尝试执行:rpm -Va –nofiles –nodigest


首先:

package-cleanup --cleandupes
yumdownloader snapd-selinux-2.47.1-1.el7.noarch

之后:

rpm --force --nodeps -ivh snapd-selinux-2.47.1-1.el7.noarch.rpm

准备中… ################################# [100%]
正在升级/安装…
1:snapd-selinux-2.47.1-1.el7 ################################# [100%]

再次 yum update 成功!

openEuler-20.03-LTS 配置repo更新源

openEuler-20.03-LTS 更新出错
修改配置repo更新源
openEuler 与 华为云中的 EulerOS 不是同一个发行版本??

今天下载了华为的openEuler。装在电脑虚拟机里。

yum update 发现没有配置repo,于是想把Repo源换成华为的,按照 华为云操作 https://mirrors.huaweicloud.com/

在/etc/yum.repos.d目录下,创建文件EulerOS.repo,设置为

[base]
name=EulerOS-2.0SP5 base
baseurl=http://mirrors.huaweicloud.com/euler/2.5/os/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.huaweicloud.com/euler/2.5/os/RPM-GPG-KEY-EulerOS

然后update。显示出错:

[root@Euler ~]# yum update
Last metadata expiration check: 0:18:26 ago on 2020年04月14日 星期二 22时18分26秒
Error:
 Problem 1: cannot install both perl-Compress-Raw-Zlib-1:2.061-4.x86_64 and perl
  - package perl-IO-Compress-2.081-6.oe1.noarch requires perl(Compress::Raw::Zli
  - cannot install the best update candidate for package perl-Compress-Raw-Zlib-
  - problem with installed package perl-IO-Compress-2.081-6.oe1.noarch
 Problem 2: package perl-Time-HiRes-4:1.9725-3.x86_64 requires perl(:MODULE_COMP
  - cannot install both perl-4:5.16.3-285.h2.x86_64 and perl-4:5.28.0-434.oe1.x8
  - cannot install both perl-4:5.16.3-285.h4.x86_64 and perl-4:5.28.0-434.oe1.x8
  - cannot install both perl-4:5.16.3-285.h3.x86_64 and perl-4:5.28.0-434.oe1.x8
  - cannot install the best update candidate for package perl-Time-HiRes-1.9760-
  - problem with installed package perl-4:5.28.0-434.oe1.x86_64
 Problem 3: package python-2.7.5-58.h13.x86_64 obsoletes python2 provided by pyt
  - package python2-debug-2.7.16-15.oe1.x86_64 requires python2 = 2.7.16-15.oe1,
  - cannot install the best update candidate for package python2-2.7.16-15.oe1.x
  - problem with installed package python2-debug-2.7.16-15.oe1.x86_64
 Problem 4: package qemu-img-10:1.5.3-156.5.h2.x86_64 requires libiscsi.so.2()(6
  - cannot install both libiscsi-1.9.0-6.x86_64 and libiscsi-1.18.0-6.oe1.x86_64
  - cannot install the best update candidate for package qemu-img-2:4.0.1-11.oe1
  - problem with installed package libiscsi-1.18.0-6.oe1.x86_64
 Problem 5: package python2-debug-2.7.16-15.oe1.x86_64 requires python2-devel =
  - package python2-2.7.16-15.oe1.x86_64 requires libpython2.7_d.so.1.0()(64bit)
  - package python-devel-2.7.5-58.h13.x86_64 obsoletes python2-devel provided by
  - package python2-tkinter-2.7.16-15.oe1.x86_64 requires python2 = 2.7.16-15.oe
  - cannot install the best update candidate for package python2-devel-2.7.16-15
  - problem with installed package python2-tkinter-2.7.16-15.oe1.x86_64
(try to add '--allowerasing' to command line to replace conflicting packages or

如上面所示,update 总是出错。

然后换成 EulerOS-2.0SP3 base ,SP2,SP1 都是依然出错。

最后在 文档的 “系统安装”中找到一个 repo源 的链接:https://openeuler.org/zh/docs/20.03_LTS/docs/Releasenotes/%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85.html

正确的repo源地址是:http://repo.openeuler.org/openEuler-20.03-LTS/OS/x86_64/

/etc/yum.repos.d/EulerOS.repo 配置为:

[base]
name=openEuler-20.03-LTS base
baseurl=https://repo.openeuler.org/openEuler-20.03-LTS/OS/x86_64/
enabled=1
gpgcheck=1
gpgkey=https://repo.openeuler.org/openEuler-20.03-LTS/OS/x86_64/RPM-GPG-KEY-openEuler

之后再次update成功!

yum clean all
yum makecache
yum update

openEuler-20.03-LTS base                                                                                                                                                            36 kB/s | 2.7 MB     01:18
Last metadata expiration check: 0:00:56 ago on 2020年04月14日 星期二 23时17分46秒.
Dependencies resolved.
Nothing to do.
Complete!

原因在于: openEuler 与 华为云中的 EulerOS 是两个不同的发行版本!!!