2014-09-10 31 views
0

我正在关注this教程。我得的dnsmasq工作正常,但得到尝试使用这个脚本来生成自签名证书时权限错误:生成自签名SSL证书,权限错误(OSX)

#!/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 

上午我离开?有任何想法吗?提前致谢。

回答

1

你必须使脚本可执行:

$ chmod +x ssl_cert_gen.sh 

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