導入
スクリプトを「実行できる」状態にするのが chmod(change mode)です。chmod +x ファイル は実務で最頻出のコマンドのひとつ。書いたシェルスクリプトを動かす直前に必ず使います。
説明
chmod +x ファイル で、実行権限(x)を付けます。付ける前と後で ls -l を見比べてみましょう。
ls -l scripts
chmod +x scripts/backup.sh
ls -l scripts
backup.sh の権限が -rw-r--r-- から -rwxr-xr-x に変わり、x が付いたのが分かります。逆に外すときは -x です。
chmod -x scripts/backup.sh
権限は**数字(8進数)**でまとめて指定することもできます。r=4, w=2, x=1 を足した値を、所有者・グループ・その他の3桁で書きます。たとえば 755 は次のように分解できます。
flowchart TD
N["755"] --> U["7 = 所有者<br/>r+w+x = 4+2+1"]
N --> G["5 = グループ<br/>r+x = 4+1"]
N --> O["5 = その他<br/>r+x = 4+1"]
U --> R["rwxr-xr-x"]
G --> R
O --> R
よく使う組み合わせは覚えてしまうと速いです。
chmod 644 readme.txt
chmod 755 scripts/deploy.sh
ls -l scripts
644(rw-r—r—)… 一般的なファイル(所有者は読み書き、他は読みだけ)755(rwxr-xr-x)… スクリプトや実行ファイル(所有者は全部、他は読みと実行)
やってみよう
ls -l scripts → chmod +x scripts/deploy.sh → ls -l scripts の順に実行し、x が付く瞬間を観察しましょう。次に chmod 644 scripts/deploy.sh で数字指定に戻し、権限が rw-r--r-- になることを確かめてください。
演習
scripts/backup.sh に実行権限を付けて、実行できる状態にしてください。
ヒント1を見る
実行権限を足すのは +x です。chmod +x scripts/backup.sh
ヒント2を見る
ls -l scripts で -rwxr-xr-x になっていれば成功です。