0

我正在关注教程。我的 DNSMasq 工作正常,但在尝试使用此脚本生成自签名证书时出现权限错误:

#!/usr/bin/env sh
cat > openssl.conf <<-EOF
  [req]
  distinguished_name = site_distinguished_name
  x509_extensions = v3_site
  prompt = no
  [site_distinguished_name]
  CN = *.${PWD##*/}.dev
  [v3_site]
  keyUsage = keyEncipherment, dataEncipherment
  extendedKeyUsage = serverAuth
  subjectAltName = @domains
  [domains]
  DNS.1 = *.${PWD##*/}.dev
  DNS.2 = ${PWD##*/}.dev
EOF
openssl req -new -newkey rsa:2048 -sha256 \
  -days 3650 -nodes -x509 -keyout site.key \
  -out site.crt -config openssl.conf

这是我在终端中得到的

project_directory $ ./ssl_cert_gen.sh
-bash: ./ssl_cert_gen.sh: Permission denied

project_directory $ sudo ./ssl_cert_gen.sh
Password:
sudo: ./ssl_cert_gen.sh: command not found

我走远了吗?有任何想法吗?提前致谢。

4

1 回答 1

1

您必须使脚本可执行:

$ chmod +x ssl_cert_gen.sh

Unix 中的所有可执行文件都必须设置相应的可执行 ( x) 位,否则内核将不会执行它们。脚本也是可执行文件,但它们利用“shebang”机制 ( #!) 来指定解释器的名称。

于 2014-09-10T13:44:24.220 回答