練習問題:権限と所有権(Lv2〜3/6問)

chmod / chown / umask の基本をおさえ、ディレクトリ配下へ安全に一括適用する練習です。
想定時間:各3〜6分

1) ファイルの権限を数値(8進)で確認する

問題app.log の権限を 数値表記(例:644) で表示してください。
ヒントls -l では文字列表記、数値は別のコマンド。

解答例

stat -c %a app.log

2) スクリプトを「自分だけ実行可」にする

問題deploy.sh所有者のみ実行可能(読み書き実行)に設定してください。
ヒント:数値指定なら 700、記号指定なら u=rwx,go=

解答例

chmod 700 deploy.sh

3) ディレクトリ配下の ディレクトリは755/ファイルは644 にそろえる

問題webroot/ 配下で、ディレクトリは755・ファイルは644 に一括で整えてください(シンボリックリンクは除外)。
ヒントfind-type d-type f を分けて適用。

解答例

find webroot -type d -exec chmod 755 {} + && find webroot -type f -exec chmod 644 {} +

4) 所有権をユーザー:グループに再帰的変更する

問題/var/www/example/ の所有者を www-data、グループを www-data再帰的 に変更してください(処理内容を表示)。
ヒント-R(再帰)と -v(冗長表示)。

解答例

sudo chown -Rv www-data:www-data /var/www/example/

5) 一時的に umask を 027 にしてファイルを作る

問題:シェルで umask027 に設定し、その状態で tmp.txt を作成してください。
ヒントumask は「新規作成時の引き算マスク」。027 ならファイルは 640 相当(実行ビットは通常付かない)。

解答例

umask 027 && touch tmp.txt

6) プロジェクトディレクトリで setgid を設定し、グループ継承させる

問題project/ ディレクトリに setgid(g+s) を設定し、以後その配下で作られるファイル・ディレクトリのグループが devs に継承されるようにしてください。
ヒント:まずルートのグループを devs に、次に g+s

解答例

chgrp -R devs project && chmod g+s project

安全に運用するコツ

  • 破壊的操作の前に 対象を一覧表示find ... -print
  • 本番パスに対する -R は慎重に。まずはテストディレクトリで検証
  • 数値と記号の両表現を行き来できるように練習する(例:755 = u=rwx,go=rx

学びを“実務”へつなぐ最短ルート

独学で積み上げた「わかった」を、仕事で使える「できる」へ。
学習ハブの内容を踏まえて、実務に直結する学習設計・添削・質問環境を整えたい人は、下記のページで具体的な進め方を確認してください。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする