コツコツエンジニアノート
INDEX
Category -> |
*
|
#S
|
#H
|
#J
|
#T
|
#U
|
#E
|
p1 :
コマンドメモ
p2 :
SSL証明書の作成と更新
p3 :
SSLのkeystoreを自動更新
p4 :
SSL証明書自動更新の失敗時の対応
p5 :
Linuxでファイルやフォルダのリンク
p6 :
Ubuntuでシェルスクリプト
p7 :
Linuxのアクセス権限
p8 :
cronでスクリプトの定期実行
p9 :
Tomcatのポート番号を変更
p10 :
Ubuntu環境、Apacheのセキュリティ設定
p11 :
Ubuntu環境、ApacheとTomcatの連携
p12 :
Ubuntu環境、http接続をhttps接続に
p13 :
サーバエラーページの変更
p14 :
Apacheリダイレクトでページ重複の解決
p15 :
URLパラメータに対するApacheリダイレクト
p16 :
Ubuntu環境、Javaのインストールとバージョン切替
p17 :
Ubuntu環境、TomcatのJavaのバージョンの上げ方
p18 :
Web開発の基礎、HTMLの概要
p19 :
CSSでグラデーション、ストライプ、クロス模様
p20 :
CSSで斜線が途切れないようにする方法
p21 :
HTML/CSSで指ポインタカーソルを表示
p22 :
HTMLの特殊文字について
p23 :
Xでサイトのサムネイルを表示
p24 :
サイトにXへの誘導ボタンを設置
p25 :
Windows環境、Tomcatコンソールの文字化け解決
p26 :
Windows11環境、VSCodeでJava開発環境を整える
p27 :
VSCodeでサーブレット/JSP
p28 :
サーブレットでログ出し
p29 :
VSCodeでキーショートカット変更
p30 :
VSCodeのテーマ変更
p31 :
サーブレット/JSPで405エラー
p32 :
SQLite3のJDBCのアップデート時のバグ対応
p33 :
データベースの基礎学習
p34 :
Tomcatサーブレットとデータベースの連携
p35 :
コマンドプロンプトのカラーテーマ変更
p36 :
TeraTermの便利設定
p37 :
TeraTermでカラーテーマ変更
p38 :
CIDOO V65 V3のレビュー
p39 :
シェーダー基礎、Imageにシェーダーを反映させる方法
p40 :
シェーダー基礎、最もシンプルなuGUI用Shaderの作成
p41 :
シェーダー基礎、InspectorからShader変数にアクセス
p42 :
シェーダー基礎、プロパティにトグルを追加
p43 :
シェーダー基礎、C#からShader変数にアクセス
p44 :
シェーダー基礎、画面全体にシェーダー効果を反映
p45 :
シェーダー基礎、if文の代わりとなるShader関数
p46 :
シェーダー基礎、UnityでShaderVariant
p47 :
Unityシェーダーで画像が途切れる問題の対処
p48 :
Unity色相反転シェーダー
p49 :
Unityシルエットシェーダー
p50 :
Unityグレースケール化シェーダー
p51 :
Unity発光シェーダー
p52 :
Unity発光シルエットシェーダー
p53 :
Unity日食シェーダー
p54 :
Unityモザイクシェーダーとモザイク処理の解説
p55 :
Unityゆらぎシェーダー
p56 :
Unityドット欠けシェーダー
p57 :
Unity溶解シェーダー
p58 :
Unity虹色シェーダー
p59 :
Unityカーテンシェーダー
p60 :
Unityウェーブシェーダー
p61 :
Unityサークル画面遷移シェーダー
p62 :
Unity集中線シェーダーと集中線の解説
p63 :
Unity逆魚眼レンズシェーダー
p64 :
Unity魚眼レンズシェーダー
p65 :
Unity FTLドライブシェーダー
p66 :
Unity松明シェーダー
p67 :
Unityレンズフレアシェーダー
p68 :
Unity陽炎シェーダー
p69 :
Unity分割テレポートシェーダー
p70 :
Unity粒子テレポートシェーダー
p71 :
シェーダー内の数値を可視化するシェーダー
p72 :
TaskとCoroutineの比較
p73 :
UnityでTweenの実装
p74 :
DOTweenのEase設定一覧
p75 :
Unityでチェーン揺れの実装
p76 :
スクロール内での揺れ物の実装
p77 :
Unity、UnmaskForUGUIで逆マスク
p78 :
Unityシェーダーで逆マスク
p79 :
Unityでマップチップ機能
p80 :
Unityでシーンショートカット
p81 :
Unityでフォント一斉切り替え機能
...
p.2
p.3
p.4
p.5
p.6
p.7
p.8
p.9
p.10
p.11
p.12
...
< Ubuntuでシェルスクリプト
cronでスクリプトの定期実行 >
Linuxのアクセス権限
Linuxのパーミッションの解説。
アクセス権限をchmodとchownで変更。
投稿日:2024-12-22
更新日:2024-12-27
関連ページ
p.5 : Linuxでファイルやフォルダのリンク
p.18 : Web開発の基礎、HTMLの概要
参考URL
パーミッションとは。アクセス権の設定方法を紹介(Unix/Linux向け)
[chown]ファイルやディレクトリの所有者を変更する方法
【一通り理解】Linuxパーミッションの基本とその設定方法
Linuxのアクセス権限は、パーミッションという機能で管理されている。
ファイルやディレクトリに対し適切なパーミッションを与えないと、管理者やユーザーはそこにアクセスできない。
一方でこのパーミッションはサーバーのセキュリティの要ともなっている。
無分別にアクセス権限を与えすぎると、世界中の人間がサーバーの内容を自由に改変できてしまう。
権限の確認方法とその概要
ls -l
で各ファイルの権限を確認が出来る。
ls
-l
例えばこのサイトのサーバの、Tomcatディレクトリ直下で実行すると次のような表示になる。
1行がそれぞれ1つのファイルを表し、その右端にはファイルの名前が記されている。
1番上のbinとBUILDING.txtをサンプルにして、大まかな概要図はこちら。
実際のアクセス権限に関係あるのは、このうちのパーミッションと所有者/所有グループになる。
パーミッションについて
パーミッションの図解
パーミッションはアクセス権限の取り決めにおいてメインとなる部分。同時にやや内容が難しい。
パーミッションをさらに詳しくした図解は下の通り。
ファイルタイプ
ファイタイプはその名の通り、そのファイルがどういう属性なのかを表す。
下の表はその一覧。
-
: 通常ファイル
d
: ディレクトリ
l
:
シンボリックリンク
b
: ブロックデバイスファイル(ストレージなど)
c
: キャラクタデバイスファイル(キーボードなど)
s
: ソケットファイル
つまり最初の方で示した画像で言うと、binはディレクトリでBUILDING.txtは通常ファイルになる。
9割方は
-
か
d
しか見ないので、他は気にしなくてもいいかもしれない。
ファイルモード
このファイルモードが、誰がどの程度そのファイルにアクセスできるかを示している。
通常ファイルにおける、それぞれのアルファベットの意味は次の通り。
-
: 権限なし。
r
: 読み込み権限。ファイルの中身を読める。
w
: 書き込み権限。ファイルを変更できる。
x
: 実行権限。ファイルを実行できる。
ディレクトリにおいては、ファイルモードの意味がやや異なる。
-
: 権限なし。
r
: ディレクトリ内のファイルを一覧できる。
w
: ディレクトリ内にファイルを作成/削除できる。
x
: ディレクトリの中に移動できる。
パーミッションでは、所有者/所有グループ/第三者それぞれに対し、これらの権限が細かく設定されている。
所有者、所有グループはパーミッションの後ろに表示されている情報と紐づいている。
第三者というのは、つまり指定した所有者と所有グループ以外の全ユーザーを表す。
上の例で言うと、サーバにログインしてるユーザー名がtomcatである場合、binディレクトリに対しrwxが埋まっていることが分かる。
つまり全権限を与えられている。
BUILDING.txtに対しては、rw-と表示されているので、読み込み書き込み権限はあるが実行権限がない。
ログインしてるユーザーがhpグループに所属してる場合、binディレクトリに対しては同様に全権限が与えられている。
BUILDING.txtに対しては読み込み権限のみあり、書き込みと実行権限はない。
ログインしてるユーザーが所有者と所有グループの両方に合致してる場合、どちらか一方にでも権限が付与されていれば有効になる。
binもBUILDING.txtも、第三者に対しては全ての権限が閉じられている。
これらのファイルは不特定多数にアクセスさせる必要がないので、これで問題ない。
しかし例えばHPで使う
htmlファイル
等は、第三者への読み込み権限を付与していないと、ブラウザ上に表示することができない。
chmodによるファイルモードの変更
各ファイルのファイルモードはchmodというコマンドで変更できる。
sudo
chmod
[変更コード]
[変更対象のファイル]
変更コードには様々な作法があるものの、一番楽なのは0~7の数値を3桁入力する方法になる。
例えば「rwx rwx ---」を変更コードに訳すと「770」に、「rw- r-- ---」を変更コードに訳すと「640」となる。
各ファイルモードとコードの対応表は次の通り。
0
: ---
1
: --x
2
: -w-
3
: -wx
4
: r--
5
: r-x
6
: rw-
7
: rwx
例えばBUILDING.txtに対して、アクセス権限を次のように変更したいとする。
所有者
: 全ての権限を閉じる。
所有グループ
: 全ての権限を開ける。
第三者
: 全ての権限を閉じる。
コードは次の通り。
sudo
chmod
070
BUILDING.txt
再び
ls -l
で確認すると、BUILDING.txtのアクセス権限が変わってるのが確認できる。
またディレクトリに対しては、
-R
のオプションを付けると、そのディレクトリ下の全てファイルのファイルモードが再帰的に変更される。
例えばbinディレクトリと、binディレクトリ下の全てのファイルに対してアクセス権を全て閉じたい時は次のように打ち込む。
sudo
chmod
-R
000
bin
chownによる所有者/所有グループの変更
各ファイルの所有者と所有グループは、chownというコマンドで変更できる。
sudo
chown
[所有者名]
:
[所有グループ名]
[変更対象のファイル]
所有者だけ変えたい時は下のように入力する。
sudo
chown
[所有者名]
[変更対象のファイル]
所有グループだけ変えたい時は下のように入力する。
sudo
chown
:
[所有グループ名]
[変更対象のファイル]
例えばBUILDING.txtに対して、所有者と所有グループを次のように変更したいとする。
所有者
: rootに変更。
所有グループ
: testに変更。
sudo
chown
root:test
BUILDING.txt
ls -l
で確認すると、BUILDING.txtの所有者/所有グループが変わってるのが確認できる。
chmodと同様に、
-R
のオプションを付けると再帰的な処理が可能となっている。
所有者/所有グループの注意点
所有者と所有グループの概念は、パーミッションと深く結びついてるので、適当に設定すると痛い目を見る。
例えば、下のような2つのファイルがあったとして、
home.jsp
から
user.db
というファイルを参照したいとする。
このアクセスには
r
の読み込みが必要になる。
所有者、所有グループともに読み込みは解放されている。
しかし、読み込む側の
home.jsp
の所有権は「tomcat:hp」だが読み込まれる側の
user.db
の所有権は「root:root」になっている。
user.db
からすると、所有者「tomcat」も所有グループ「hp」も赤の他人に過ぎない。
user.db
の第三者への権限は全て閉じられているので、
home.jsp
からアクセスしようとすると弾かれてしまう。
なのでこの場合、
user.db
の第三者への読み込みを解放するか、所有権もしくは所有グループを
home.jsp
と同一にする必要がある。
例えば下のように、所有グループを「hp」に変えるだけでアクセスは成功する。
sudo
chown
:hp
user.db
Tweet
0
0
...
p.2
p.3
p.4
p.5
p.6
p.7
p.8
p.9
p.10
p.11
p.12
...
< Ubuntuでシェルスクリプト
cronでスクリプトの定期実行 >