Set Group ID

CentOSaccount group

目次一覧

 状態:-  閲覧数:850  投稿日:2014-05-07  更新日:2019-08-16
Set Group ID / Set Group IDとは? / ファイル ディレクトリ

設定方法 / 確認方法 / 大きく2種類

案A.既存グループ活用

案B.第三者グループを新規作成


Set Group ID / Set Group IDとは? / ファイル ディレクトリ

 閲覧数:114 投稿日:2019-08-13 更新日:2019-08-16 

Set Group ID


略称
・SGID
・setgid

Set Group ID とは?


実行可能ファイル及びディレクトリに対して設定する、特殊なパーミッション(アクセス権)の一つ
・設定したファイルやディレクトリは、所属グループの権限で実行可能となる
・設定対象は実行可能ファイル・ディレクトリ

特徴
・グループ実行権欄が「s」となる
・数値で表現するには、3桁のアクセス権表記に2000を加える

アクセス権表記
・2000 を加算

文字列の定義の場合は?
・g+s を定義

ファイル ディレクトリ


実行可能ファイルに設定する場合
・ファイル所有グループ権限で実行される

実行可能ディレクトリに設定する場合
・そのディレクトリ以下で作成したファイルやディレクトリの所有グループには、自動的にディレクトリ自体の所有グループが適用される
・つまり、誰がファイルを作成しようと、ファイルの所有グループは同じになる
※複数ユーザーで共有するディレクトリに設定すると便利


設定方法 / 確認方法 / 大きく2種類

 閲覧数:127 投稿日:2019-08-14 更新日:2019-08-16 

設定方法


chmodコマンド利用

文字列モード
ファイルに対してSGID(Set Group ID)をセット
$ chmod g+s ファイル名
ディレクトリに対してSGID(Set Group ID)をセット
$ chmod g+s ディレクトリ名

数値モード
・アクセス権を設定する場合には、数値に2000を足す
・ 例えばアクセス権が755の実行ファイルにSGID(Set Group ID)を追加したい場合の数値表記は、「2755」となる
ファイルに対してSGID(Set Group ID)をセット
$ chmod 2755 ファイル名
ディレクトリに対してSGID(Set Group ID)をセット
$ chmod 2755 ディレクトリ名

確認方法


「ls -l」コマンド利用
・パーミッショングループが「r-s」
・実行権の部分は、通常「x」
・ここが「s」になっていると、SGID(Set Group ID)が設定されていることを意味する

大きく2種類


案A.既存グループ活用
ユーザsuzukiにグループapacheを追加。/var/wwwの所有グループをapacheに変更

案B.第三者グループを新規作成
devというグループを作成。主要なユーザーのサブグループにdevを追加する。ルートディレクトリ以下を、devグループ権限に全て変更する
プロジェクト管理用共有グループを作成する。ユーザーを共有グループに登録する。新規作成したファイルやディレクトリのグループが自動的に共有グループになるように変更する
共有ディレクトリのグループをgroup-aに変更。ユーザーを同じグループgroup-aに所属させる
実験用グループtestdevelを作成。ディレクトリのグループを実験用グループtestdevelに設定
groupadd web
apacheユーザがdir上に作成したファイルはapache/apacheではなく、apache/hoge になるので、hogeユーザも編集できるようになります

案A.既存グループ活用

 閲覧数:112 投稿日:2019-08-16 更新日:2019-08-16 

前提


Webサーバー
ユーザーnginxで実行される

ユーザーnginx
グループnginxに所属している

ログインして作業するユーザー
★★

ユーザー★★
「グループ★★」と「グループwheel」に所属している

共有ディレクトリ
/var/hoge

共有グループ名
nginx

対応


1.ユーザ★★のセカンダリグループとして nginx を追加する
$ sudo gpasswd -a ★★ nginx
既存ユーザをセカンダリグループへ追加

2./var/hogeの所有者をnginx、所有グループをnginxへ変更
$ sudo chown nginx:nginx /var/hoge

3./var/hogeのパーミッションを775に変更 (グループに読み書き権限を与える)
$ sudo chmod 775 /var/hoge

4./var/hogeにSGIDを付与する
$ sudo chmod 2775 /var/hoge
・umaskが002になっていることを確認する(なっていなければ、設定する)

以上の設定により、以降に作成されるサブディレクトリやファイルの所有グループは全てnginxとなるため、/var/hogeディレクトリ以下は★★とnginxの両方で問題なく操作できるようになる

案B.第三者グループを新規作成

 閲覧数:128 投稿日:2019-08-16 更新日:2019-08-17 

前提


Webサーバー
ユーザーnginxで実行される

ユーザーnginx
グループnginxに所属している

ログインして作業するユーザー
★★

ユーザー★★
「グループ★★」と「グループwheel」に所属している

共有ディレクトリ
/var/hoge

共有グループ名
webdev

対応1. 共有グループwebdevを新規作成


$ sudo groupadd webdev

対応2.ユーザーを共有グループへ登録する


主要ユーザーのセカンダリグループとして 共有グループwebdevを追加する

ユーザー★★をグループwebdevに登録するには
$ sudo gpasswd -a ★★ webdev
あるいは下記コマンドでも同義
$ sudo usermod -a -G webdev ★★

ユーザーnginxをグループwebdevに登録するには
$ sudo gpasswd -a nginx webdev
あるいは下記コマンドでも同義
$ sudo usermod -a -G webdev nginx

確認
$ id ★★
$ id nginx

対応3.ディレクトリのグループを共有グループwebdevに設定


$ sudo chgrp -R webdev /var/hoge

対応4.同じグループのユーザーが読み書きできるように共有ディレクトリのパーミッションを変更する


$ sudo chmod -R g+w /var/hoge
あるいは下記コマンドでも同義
$ sudo chmod -R 775 /var/hoge

対応5.新規作成したファイルやディレクトリのグループが自動的に共有グループになるように変更する


共有ディレクトリ「/var/hoge」にSGID(Set Group ID)という属性を付与することで、ユーザーが新しいファイルやディレクトリを作成した場合、そのグループが自動的にwebdevになる
SGID(set group ID、setgid)パーミッションが設定されているディレクトリでは、その配下に作られるファイルのグループはディレクトリのグループを継承するようになる

ディレクトリのみ権限を2775(sgid)へ変更する
パーミッション2775(sgid)は、ディレクトリ作成時にその親ディレクトリの所有グループと同じにする

/var/hoge 以下に作成されるファイル/ディレクトリのグループは、すべて /var/hoge と同じ「webdev」になる
/var/hogeディレクトリの下に生成されるディレクトリの所有グループはwebdevになり、グループ内権限を統一することができる

数値モードでアクセス権を設定する場合には、数値に2000を足す
例えばアクセス権が755の実行ファイルにSGID(Set Group ID)を追加したい場合の数値表記は、「2755」となる
$ sudo chmod 2775 /var/hoge
あるいは下記コマンドでも同義
$ sudo chmod g+s /var/hoge

・グループの実行許可部分が「x」ではなく「s」になる


今さら聞きづらい「ファイルパーミッション」について
LinuxでSGID設定する際、2775と2770で何が異なる? 他人が実行とは
Linuxでディレクトリへ対してSGID設定したいのですが、
「$ chmod g+w /hoge」と「$ chmod 775 /hoge」は同じ意味ですか?
下記コマンドは同義ですか?$ sudo chmod -R g+w /hoge$ sudo chmod -R



Twitter検索結果。「Set Group ID」に関する最新ツイート

LPIC1用ボット @lpic1_bot
LPIC1用ボット @lpic1_bot

chown

スーパーユーザ(ルート権限保持者)



類似度ページランキング
順位 ページタイトル抜粋
1 Set User ID 61
2 Local Storage 48
3 Grunt 47
4 DirectoryIndex 46
5 Certbot 仕様 45
6 WebStorage 45
7 Github SSH 45
8 Session Storage 44
9 Grunt入門 42
10 top 40
11 CasperJS 40
12 configure 38
13 Let's Encrypt × cron 38
14 more 38
15 vagrant package 37
16 yum update bash 37
17 Let's Encrypt 仕様 36
18 Indexed Database 36
19 Let's Encrypt 履歴 36
20 Beautiful Soup 4.1.3 / yum remove 36
2021/9/26 19:36 更新
週間人気ページランキング / 9-19 → 9-25
順位 ページタイトル抜粋 アクセス数
1 Nginx設定。エラーログレベル | Nginx(Webサーバ) 16
2 PHP実行ユーザ設定 / CentOS6 / Apache | PHP(プログラミング言語) 15
3 PHPのmb_send_mail関数でメール送信できない | メール処理システム 11
4 9回目-13.MySQL5.7.21設定 | CentOS 7 2週間無料のお試し期間 9回目(さくらVPS) 10
5 tar: これは tar アーカイブではないようです 8
5 ImageMagick と imagick の違い | ImageMagick(ソフトウェアスイート) 8
5 さくらVPS0 8
6 manページ日本語表示 | CentOS 7 (CentOS) 7
6 Python 3.5 アンインストール / yum remove | Python(プログラミング言語) 7
7 ABRT により 問題が検出されました | CentOS 7 (CentOS) 6
7 Reached target Shutdown メッセージが表示されたあと、シャットダウンまたは再起動プロセスがハングアップする | CentOS 7 (CentOS) 6
7 PHPファイルでchmodエラー | PHP(プログラミング言語) 6
7 echo と cat の違い 6
8 FFmpeg 2.8.15 を yum インストール | ソフトウェアスイート 5
8 「設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。」対応 5
8 「CentOS6」から「CentOS7」への移行 | CentOS 7 (CentOS) 5
8 「さくらVPS」で、「CentOS6」を「CentOS7」へ変更するためには? | CentOS 7 2週間無料のお試し期間 Link(さくらVPS) 5
9 6回目-10.Nginxでバーチャルホスト設定確認 | CentOS 7 2週間無料のお試し期間 6回目(さくらVPS) 4
9 cronで定期実行しているphpファイルを、コマンドライン経由で即時実行する | cron(Linuxコマンド) 4
9 MySQL 5.5 から 5.6 へのアップグレード | MySQL(データベース) 4
2021/9/26 1:01 更新