sg【コマンド】
コマンドだよ
UNIX系で使えるよ
指定したグループでコマンドを実行するよ
簡単に書くよ
sg【コマンド】とは
コンピュータさんに対する命令文(コマンド)のひとつ
であり
自分のグループを一時的に変更して(指定したグループで)コマンドを実行するときに使うコマンド
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「グループ」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
グループは「複数のユーザをひとまとめに扱うための仕組み」です。
パソコンには、それを使える人、つまり「ユーザ」が登録されています。
この登録されているユーザですが、たくさん用意できます。
パソコンさんに根性さえあれば、10人でも20人でも登録できてしまいます。
登録されているユーザが増えてくると、一人一人を個別に管理するのはちょっと大変です。
そこでパソコンさんは、複数のユーザをひとまとめにして管理できる仕組みを作りました。
それが「グループ」です。
例えば、ピヨ太君とピヨ子さんとピヨ太ママを「ぴよぴよグループ」に登録します。
同じように、アクマ君を「あくまグループ」に登録します。
さて、ここにファイルが1つありました。
このファイルに対して「ぴよぴよグループだけ触っても良いよ」と設定したとしましょう。
そうすると、ピヨ太君とピヨ子さんとピヨ太ママの3人はファイルに触れます。
アクマ君は、ぴよぴよグループではないので触れません。
このような
複数のユーザを一緒くたにして管理するための仕組み
がグループです。
ユーザはそれぞれ、何らかのグループに所属しています。
グループに対して指示があった場合は、そのグループに所属するユーザは指示に従う必要があります。
ユーザが1人の人間だとすると、グループは会社みたいなものです。
会社に対して何らかの指示が下されたら、会社に所属する個人それぞれにも影響します。
それと同じです。
以上を踏まえて
自分のグループを一時的に変更してコマンドを実行するときに使うコマンド
が「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」コマンド→指定グループでコマンドを実行するときに使う
と使い分けた方が良さそうです。
一言でまとめるよ
まぁ「sg」ってコマンドが出てきたら「指定したグループでコマンドを実行するときに使うんだな~」と お考えください。






