[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

sg【コマンド】

pointこの用語のポイント

pointUNIX系で使えるコマンドだよ

point指定したグループでコマンドを実行するよ

スポンサーリンク

簡単に書くよ

sg【コマンド】とは

自分のグループを一時的に変更して(指定したグループで)コマンドを実行するときに使うコマンド
です。

image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として「グループ」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は、適当に読み飛ばしてください。

グループは「複数のユーザをひとまとめに扱うための仕組み」です。

パソコンには、それを使える人、つまり「ユーザ」が登録されています。

sg

この登録されているユーザですが、たくさん用意できます。
パソコンさんに根性さえあれば、10人でも20人でも登録できてしまいます。

sg2

登録されているユーザが増えてくると、一人一人を個別に管理するのはちょっと大変です。

sg3

そこでパソコンさんは、複数のユーザをひとまとめにして管理できる仕組みを作りました。
それが「グループ」です。

例えば、ピヨ太君とピヨ子さんとピヨ太ママを「ぴよぴよグループ」に登録します。
同じように、アクマ君を「あくまグループ」に登録します。

sg4

さて、ここにファイルが1つありました。

sg5

このファイルに対して「ぴよぴよグループだけ触っても良いよ」と設定したとしましょう。

sg6

そうすると、ピヨ太君とピヨ子さんとピヨ太ママの3人はファイルに触ることができます。
アクマ君は、ぴよぴよグループではないので、触れません。

sg7

このような「複数のユーザを一緒くたにして管理するための仕組み」がグループです。

ユーザはそれぞれ、何らかのグループに所属しています。
グループに対して指示があった場合は、そのグループに所属するユーザは指示に従う必要があります。

sg8

ユーザが一人の人間だとすると、グループは会社みたいなものですね。
会社に対して何らかの指示が下されたら、会社に所属する個人それぞれにも影響します。
それと同じです。

以上を踏まえて、自分のグループを一時的に変更してコマンドを実行するときに使うコマンドが「sg」です。
「一時的に」と書いたのは、コマンド実行後には元のグループに戻るからです。
そのコマンドのみ、指定したグループとして実行されます。

「sg」コマンドはUNIX系(LinuxとかMacとか)で使えます。

書き方は

sg [オプション] [グループ名] [コマンド]

もしくは

sg [オプション] [グループ名] -c [コマンド]

です。
オプションは、少しだけあります。

オプション説明
-ログインし直した状態にするよ(コマンド実行時の環境は引き継がないよ)

などです。

使い方は難しくありません。
例えば

sg root ls

を実行すると「root」グループとして「ls」コマンドが実行されます。

実行するコマンドの前の「-c」は、指定しても、しなくても、どちらでも構いません。

sg root ls



sg root -c ls

も同じ結果になります。

実行するコマンドを指定しないで

sg root

のようにグループのみを指定した場合は「newgrp」コマンドと同じ動きをします。
と言いますか、そもそも「sg」コマンドは「newgrp」コマンドのエイリアス(別名)なのです。

私の環境では

ls -l /usr/bin/sg

を実行したところ

lrwxrwxrwx. 1 root root 6 1月 2 11:10 /usr/bin/sg -> newgrp

と表示されました。
見事に「newgrp」を指していますね。

ただし「newgrp」ではコマンドの実行はできないようです。

newgrp root ls

を指定しても「ls」コマンドの実行結果は表示されませんでした。

素直に

・「newgrp」コマンド→一時的にグループを変更するときに使う
・「sg」コマンド→指定グループでコマンドを実行するときに使う


と使い分けた方が良さ気です。

image piyo2

一言でまとめるよ

まぁ「sg」ってコマンドが出てきたら「指定したグループでコマンドを実行するときに使うんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク