Skip to content

Instantly share code, notes, and snippets.

@3panda
Last active October 10, 2018 15:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 3panda/f7f0e92363d88d8a456012d26a066da4 to your computer and use it in GitHub Desktop.
Save 3panda/f7f0e92363d88d8a456012d26a066da4 to your computer and use it in GitHub Desktop.
ディレクトリのアクセス制限

ディレクトリのアクセス制限

Linuxサーバーでディレクトリにアクセス出来るユーザーを制限する方法です。

手順

  1. アクセスを許可するグループを作成
  2. アクセスを許可するユーザーをグループに追加
  3. アクセス制限をかけるディレクトリのパーミッションを変更

前提条件

__以降の作業はsudo権限の付与されたユーザーでしか行えません。  __

注意事項

以降のコマンドで実行エラーが出る場合はsudoで実行してください。

アクセスを許可するグループを作成

アクセスを許可するグループを作成します。

グループを作成する

groupadd グループ名

ex)group1を追加
groupadd group1

上記はGID(グループID)が自動で付与されます。

任意のGIDを指定する場合はこちら(重複は出来ない)

groupadd -g GID グループ名

ex)GID 520 と指定
groupadd -g 520 group1

追加したグループの確認

tail -1 /etc/group

最後に追加されたものが表示

group1:x:520:

グループ削除

不要になった場合、間違えた場合なそ

groupdel グループ名

ex)group1を削除
groupdel group1

参考

http://kazmax.zpp.jp/linux_beginner/etc_group.html http://kazmax.zpp.jp/linux_beginner/groupadd.html http://kazmax.zpp.jp/linux_beginner/groupdel.html

アクセスを許可するユーザーをグループに追加

アクセスを許可するユーザーを上記のグループに追加します。

現在のユーザー情報の確認

id -a ユーザー名
uid=ユーザーID gid= グループID(グループ名) groups= 所属グループのID(所属グループ名)

ex)ユーザーtest001を確認
id -a test001
uid=1022(test001) gid=1022(test001) groups=1022(test001)

ユーザーにサブグループを追加

ex)ユーザーtest001のサブグループにgroup1追加

usermod -aG group1 test001

ユーザー情報の確認するとgroup1が追加されています。

id -a test001
uid=1022(test001) gid=1022(test001) groups=1022(test001),1021(group1)

参考

http://kazmax.zpp.jp/linux_beginner/usermod.html

アクセス制限をかけるディレクトリのパーミッションを変更

パーミッションを変更し、指定したグループに入っているユーザーのみアクセスなど一連の行動(読み込み、書き込み、実行)を可能にします。

ディレクトリのグループを変更

ディレクトリのグループは何もしなければ作成したユーザーのグループになります。 そのため作成したグループに変更します。

ex) testディレクトリにgroup1に変更する

# chown [所有者]:グループ名 ディレクトリ 名
chown user1:group1 test

# chown [所有者]を省略:グループ名 ディレクトリ 名
chown :group1 test

参考

http://kazmax.zpp.jp/linux_beginner/chown.html

グループメンバーのみに読み書き実行の権限を与える

グループのメンバーに読み書き実行の権限を付与

chmod g+rwx test

その他(所有者とグループにも入っていないユーザー)の全ての権限を無くす

chmod o-rwx test

パーミッションが以下のようになっている事を確認する

drwxrwx---

「ls -l」コマンドで確認すると以下のようになっています。

drwxrwx---  2 user001 group1   4096 10月  5 15:08 test

↑上記は testディレクトリ user001が所有者 グループgroup1 その他については割愛します。

参考

アクセス権(パーミッション)の変更 - chmod http://kazmax.zpp.jp/linux_beginner/chmod.html

グループへログイン

ディレクトリはグループへのアクセスのみを許可していますので 追加したグループにログインする必要があります。

ログイン前のユーザー情報は以下のようになります。

id -a test001
uid=1022(test001) gid=1022(test001) groups=1022(test001),1021(group1)

追加したグループでログイン

newgrp group1

ログイン後、gidが変更されます。

id -a test001
uid=1022(test001) gid=1021(group1) groups=1022(test001),1022(test001)

グループからのログアウト

グループから抜ける場合

exit

ログイン前のユーザー情報に戻ります。

id -a test001
uid=1022(test001) gid=1022(test001) groups=1022(test001),1021(group1)

確認

グループに追加していないユーザーに切り替えアクセス出来ない事(Permissionエラー)を確認し終了。

ex) アクセス権限の無いユーザーで制限をかけているディレクトリ(ここではtest)にcdコマンドを実行

bash: cd: test: Permission denied

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment