分类 Linux 下的文章

有时候我们想要限制某个页面的访问权限,需要用户名密码才能进入。

如果使用 nginx 作为反向代理服务器,可以使用 auth_basic 来实现页面加密。

环境需求:

Linux env
nginx
apache2-utils (Debian, Ubuntu) or httpd-tools (RHEL/CentOS/Oracle Linux)

安装环境:

nginx 安装参考:https://niekun.net/index.php/archives/30.html

安装 apache2-utils:

apt-get install apache2-utils

创建账户密码:

使用了 htpasswd 命令创建用户。

关于 htpasswd 的详细使用:https://httpd.apache.org/docs/2.4/programs/htpasswd.html

建议将账户信息文件建立在 nginx 目录,我放在 /etc/nginx/users 目录下:

htpasswd -c /etc/nginx/users/.adminpasswd user1

.adminpasswd 为隐藏的存储所有账户信息的文件,user1 为用户名,回车后会提示输入密码,然后确认密码。

建立其他账户:

htpasswd /etc/nginx/users/.adminpasswd user2

不需要 -c 参数,因为文件已经建立了。

验证账户密码 -v

htpasswd -v /etc/nginx/users/.adminpasswd user1

删除账户 -D

htpasswd -D /etc/nginx/users/.adminpasswd user1

使用账户:

打开 nginx 配置文件,在需要账户登录的路径段修改如下:

location /path {
    ...
    auth_basic           "Administrator's Area";
    auth_basic_user_file /etc/nginx/users/.adminpasswd;
    ...
    ...
}

重新加载配置文件:

service nginx configtest
service nginx reload

打开对应页面测试是否提示输入账号密码。



docker 配置为非 root 用户,解决执行命令需要 sudo:

# 1. 创建 docker 用户组
$ sudo groupadd docker

# 2. 添加当前用户到 docker 用户组
$ sudo usermod -aG docker $USER

# 3. 退出登录在重新登录系统,直接执行 docker 命令查看效果

查看 docker 在系统中总共占用多少空间:

docker system df

清理多余重复 image 镜像:

docker image prune -a

清理整个 docker 系统文件,删除未被使用的 image container 等:

docker system prune -a

停止并删除目前正在运行的容器

docker compose down

拉取最新的镜像

docker compose pull

运行镜像

docker compose up -d

一键更新最新镜像

docker compose pull && docker compose up -d

http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html
http://www.ruanyifeng.com/blog/2018/02/docker-wordpress-tutorial.html

https://docs.docker.com/reference/
https://docs.docker.com/engine/reference/commandline/image/
https://docs.docker.com/engine/reference/commandline/container/
https://docs.docker.com/engine/reference/commandline/run/
https://docs.docker.com/engine/reference/run/#restart-policies---restart

https://hub.docker.com/


配合 Linux 管道符,可以根据情况执行多条命令,常用的符号有:'|' '&&' ';' '||' '>' '>>'

|

管道符 "|" 主要用来将上一个命令的输出作为下一个命令的输入。

例如:

ps aux | grep test.sh

将当前所有进程信息作为输出信息,grep 将输出的内容作为输入,列出有 "test.sh" 的行。

可同时使用多条管道:

cat /etc/passwd | grep /bin/bash | wc -l

这条命令使用了两个管道,利用第一个管道将cat命令(显示passwd文件的内容)的输出送给grep命令,grep命令找出含有“/bin /bash”的所有行;第二个管道将grep的输出送给wc命令,wc命令统计出输入中的行数。这个命令的功能在于找出系统中有多少个用户使用bash。

多命令顺序执行符

;     命令1;命令2    多个命令顺序执行,命令之间无任何逻辑关系
&&    命令1&&命令2   逻辑与:当命令1正确执行后,命令2才会正确执行,否则命令2不会执行
||    命令1||命令2   逻辑或:当命令1不正确执行后,命令2才会正确执行,否则命令2不会执行

例如:

pwd;ls;date
ls test.sh && echo found file
ls test.sh || echo no file

重导向

重导向就是使命令改变它所认定的标准输出。

'>' 可将结果输出到文件中,该文件原有内容会被删除,'>>' 则将结果附加到文件中,原文件内容不会被删除。

将 file1.txt 的内容复制到 file2.txt,file2.txt 原内容会被清空。

cat file1.txt > file2.txt

将 file1.txt 的内容附加到 file2.txt,file2.txt 原内容保留。

cat file1.txt >> file2.txt