Linuxで権限設定の確認
lsコマンドを使って権限設定を確認していきます。
ls -l
赤枠で囲まれている部分が権限設定になっています。
ファイルの「a.out」の権限は「-rwxr-xr-x.」の11文字が表示されています。
権限の表示は以下の分類で分けることができます
1文字目 | 1文字目はファイルの種類を表しています。 種類は以下の3種類があります。 「-」はファイル 「d」はディレクトリ 「l」はシンボリックリンク |
2~4文字目 | 所有者のアクセス権限を表しています。 「r」は読み取り可能 「w」は書き込み可能 「x」は実行可能 「-」は権限無し |
5~7文字目 | グループのアクセス権限を表しています。 「r」は読み取り可能 「w」は書き込み可能 「x」は実行可能 「-」は権限無し |
8~10文字目 | その他ユーザのアクセス権限を表しています。 「r」は読み取り可能 「w」は書き込み可能 「x」は実行可能 「-」は権限無し |
11文字目 | 拡張ACLの設定を表しています。 「.」は拡張ACLが設定されていない。 「+」は拡張ACLが設定されている。 |
いくつか表示のために練習をしたいと思います。
①シンボリックリンクを作成
②権限設定を変更
③拡張ACLの設定
①シンボリックリンクを作成する
root直下に適当なディレクトリとファイルを作成します。
ディレクトリの作成
mkdir /root/permission_setting
ファイルの作成
touch /root/permission_setting/permission.txt
シンボリックリンクの作成
ln -s /root/permission_setting/permission.txt permission.txt
権限の確認
ls -l
作成したシンボリックリンクのアクセス権が「lrwxrwxrwx.」と表示されていることがわかります。
シンボリックリンクの作成は以上で完了です。
②権限設定の変更
「a.out」ファイルの権限を変更したいと思います。
所有者、グループ、その他のユーザすべてに、rwxの権限を付与したいと思います。
権限設定の変更
chmod 777 a.out
「a.out」のファイルの権限設定が「-rwxr-xr-x」から「-rwxrwxrwx」に変更されたことがわかります。
コマンドchmodの後に入力した「777」という数字が「rwx」の権限設定に対応しています。
1桁目 | 所有者のアクセス権限を表しています。 |
2桁目 | グループのアクセス権限を表しています。 |
3桁目 | その他ユーザのアクセス権限を表しています。 |
設定できる数字は0~7の値になります。
以下の数字を組み合わせて、いくつか試してみてください。
数値 | 権限 |
4 | r 読み取り可能 |
2 | w 書き込み可能 |
1 | x 実行可能 |
0 | - 権限無し |
権限設定の変更は以上で完了です。
③拡張ACLの設定
拡張ACLとは②権限設定の変更より詳細に権限の設定を加えることができる機能です。
インストール時に作成したユーザー「itech」を使って確認を行いたいと思います。
ユーザーを作成した時の記事はこちら↓
「a.out」ファイルと「hello_world.c」に拡張ACLの設定を加えていきたいと思います。
現在の設定を確認します。
通常の権限設定の確認
ls -l
拡張ACLの設定を確認
getfacl *
「a.out」には「rwx」の権限を設定し、「hello_world.c」には「---」の権限を設定します。
拡張ACLの設定
setfacl -m u:itech:rwx a.out
setfacl -m u:itech:- hello_world.c
拡張ACLの設定を確認
getfacl *
ユーザーを変更して、権限が正しく設定されているか確認したいと思います。
ユーザーを変更する
su itech
「a.out」を実行してみます。
./a.out
hello Worldと表示されていますので、正しく実行されていることがわかります。
「hello_world.c」はすべての権限を無くしましたので、「rwx」はできないはずです。
lessコマンドを使って、ファイルの中身を見てみたいと思います。
less hello_world.c
「hello_world.c: Permission denied」と表示されていますので、権限がないため、拒否されていることがわかります。
setfaclコマンドを実行した後、権限設定の11文字目に「+」がついていることがわかります。
拡張ACLを設定することで通常の設定より詳細な設定ができることがわかりました。
誤って設定を加えてしまった時のために、拡張ACLの設定の削除もしておきます。
拡張ACLの設定を確認
getfacl *
拡張ACLの設定を削除
setfacl -b *
設定が削除されていることが確認できました。
③拡張ACLの設定は以上となります。
権限の設定はセキュリティー上、重要な設定となりますので、正しく設定していきたいものです。