/sql ディレクトリのコマンドを使用して ./schema.pg.sh ファイルを実行しますsudo ./schema.pg.sh
。しかし、ターミナルでエラーが発生します:
could not change directory to "/sql": Permission denied
実行しているスクリプト:
echo -n "you are running $0 type yes to continue: "
read -r answer
[ "$answer" != "yes" ] && exit
cat schema.pg.sql | sudo -u postgres psql
このコマンドがエラーの原因であることがわかりました:
sudo -u postgres psql
しかし、原因を突き止めてエラーを修正するには私の知識が足りません。
コマンドはls -l sql/
次のように権限を表示します:
-rw-rw-rw- 1 alex alex 127823 июн 25 17:58 data.sql
-rw-rw-rw- 1 alex alex 426 июн 25 17:58 drop.sql
-rwxrwxrwx 1 alex alex 67 июн 25 17:58 dump.sh
-rwxrwxrwx 1 alex alex 204 июн 25 17:58 reload.demo.sh
-rwxrwxrwx 1 alex alex 155 июн 25 17:58 reload.sh
-rwxrwxrwx 1 alex alex 475 июн 25 17:58 reset.sh
-rwxrwxrwx 1 alex alex 168 июн 25 17:58 schema.demo.sh
-rwxrwxrwx 1 alex alex 140 июн 25 17:58 schema.pg.sh
-rwxrwxrwx 1 alex alex 192 июн 25 17:58 schema.pg.sql
-rw-rw-rw- 1 alex alex 641 июн 25 17:58 triggers.sql
コマンドls -ld /sql
の出力は次のようになります:
drwxrwxrwx 2 alex alex 4096 июн 25 17:58 sql/
sudo chmod +x /sql
とを使用しましたsudo chmod +x schema.pg.sh
が、権限は変更されませんでした。コマンドmount | grep $(df -P /sql | awk 'NR==2{print $1}') | awk '$0=$5'
出力を入力すると、次のようになります。
ext4