su www-data 提示 This account is currently not available

想在 php 容器中想切换至 www-data 去执行一些低权限的操作,但执行 su www-data 的时候提示账号不可用:

$ su www-data
This account is currently not available.

这是因为,在 php 容器中 www-data 账号默认是被禁止登录的。查看 /etc/passwd 确认被禁止登录:

$ cat /etc/passwd
...
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
...
分类至 Linux
0条评论

nginx 的 default_server 定义及匹配规则

nginx 的 default_server 指令可以定义默认的 server 去处理一些没有匹配到 server_name 的请求,如果没有显式定义,则会选取第一个定义的 server 作为 default_server。 在了解到如上规则后,我们可以捕获未做绑定的域名访问或直接IP访问,做重定向到 403 页面等处理。 ngin...

分类至 Linux
0条评论

Ubuntu 20.04 配置 QQ 邮箱发件

系统版本:Ubuntu 20.04.2 LTS 64位

1、安装 s-nail 包:

sudo apt install s-nail

2、编辑 /etc/s-nail.rc 配置文件,在末尾添加:

set from="账号@qq.com"
set smtp="smtps://smtp.qq.com:465"
set smtp-auth-user="账号@qq.com"
set smtp-auth-password="授权码"
set smtp-auth=login

3、发件时,要使用 s-nail 指令,例如:

echo "这是邮件body" | s-nail -s "这是邮件标题" xxxxx@qq.com
分类至 Linux
0条评论

linux中命令cp复制拷贝访问权限和修改时间

默认cp命令拷贝只是文件的内容,文件的修改时间是不同的

[root@localhost test]# ll
总用量 4
-rwxr--r-- 1 root root 277 2月  14 16:00 hello.pl
[root@localhost test]# cp hello.pl hello.pl1
[root@localhost test]# ll
总用量 8
-rwxr--r-- 1 root root 277 2月  14 16:00 hello.pl
-rwxr--r-- 1 root root 277 2月  14 16:01 hello.pl1

如果想复制拷贝访问权限和修改时间,可以使用-p参数实现。

[root@localhost test]# cp -p hello.pl hello.pl2
[root@localhost test]# ll
总用量 12
-rwxr--r-- 1 root root 277 2月  14 16:00 hello.pl
-rwxr--r-- 1 root root 277 2月  14 16:01 hello.pl1
-rwxr--r-- 1 root root 277 2月  14 16:00 hello.pl2
分类至 Linux
0条评论

Linux 指定用户的 UID,指定群组的 GID

指定用户的 UID

创建用户时指定 UID,可以用 -u 参数,如指定 UID 为 1000:

useradd www -g www -u 1000

如果用户已经存在,使用 usermod 命令修改 UID,如:

usermod www -u 1000

 指定群组的 GID

 创建群组时指定 GID,可以用 -g 参数,如指定 GID 为 1000:

groupadd www -g 1000

如果群组已经存在,使用 groupmod 命令修改 GID,如:

groupmod www -g 1000
分类至 Linux
0条评论

linux zip 打包时排除指定目录

zip 指令参数说明:

[root@VM_0_10_centos ~]# zip
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
Zip 3.0 (July 5th 2008). Usage:
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
  The default action is to add or replace zipfile entries from list, which
  can include the special name - to compress standard input.
  If zipfile and list are omitted, zip compresses stdin to stdout.
  -f   freshen: only changed files  -u   update: only changed or new files
  -d   delete entries in zipfile    -m   move into zipfile (delete OS files)
  -r   recurse into directories     -j   junk (don't record) directory names
  -0   store only                   -l   convert LF to CR LF (-ll CR LF to LF)
  -1   compress faster              -9   compress better
  -q   quiet operation              -v   verbose operation/print version info
  -c   add one-line comments        -z   add zipfile comment
  -@   read names from stdin        -o   make zipfile as old as latest entry
  -x   exclude the following names  -i   include only the following names
  -F   fix zipfile (-FF try harder) -D   do not add directory entries
  -A   adjust self-extracting exe   -J   junk zipfile prefix (unzipsfx)
  -T   test zipfile integrity       -X   eXclude eXtra file attributes
  -y   store symbolic links as the link instead of the referenced file
  -e   encrypt                      -n   don't compress these suffixes
  -h2  show more help

打包某个目录下的所有文件和子目录时,可以用 -r 递归参数,要排除某个目录或文件可以用 -x 参数。但是要注意,-x 参数如果是排除目录,要用双引号包裹,末尾要加 * 号。

打包时排除某个文件:

zip -r yangdx.zip yangdx/ -x yangdx/test.txt

打包时排除 cache、vendor 目录:

zip -r yangdx.zip yangdx/ -x "yangdx/cache/*" -x "yangdx/vendor/*"

 

分类至 Linux
0条评论

linux 生成随机字符串的方法

随机字符串常用于创建随机账号或密码,Linux 可用以下方法生成随机字符串。

1.生成由大写字母组成的随机字符串:

[root@VM_0_13_centos ~]# head /dev/urandom | tr -dc A-Z | head -c 20
NRXFYZRTUEDXTVPJAYJW

2.生成由小写字母组成的随机字符串:

[root@VM_0_13_centos ~]# head /dev/urandom | tr -dc a-z | head -c 20
rizsfwebsmfowsogsqfi

3.生成由纯数字组成的随机字符串:

[root@VM_0_13_centos ~]# head /dev/urandom | tr -dc 0-9 | head -c 20
06983118429648544871

4.生成由大写字母、小写字母、数字组成的随机字符串:

[root@VM_0_13_centos ~]# head /dev/urandom | tr -dc A-Za-z0-9 | head -c 30
kFac0BEcbWS9eTZWZwn52ps53kGp6q

5.写成 Shell 脚本:

#!/bin/bash

pass=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 30)
echo $pass

 

分类至 Linux
0条评论