人気マンガがだれでも無料♪電子コミック読み放題!!

よろしくお願いします。

linuxってユーザ名と同じグループが作成されますよね。これってなぜ必要なのでしょうか。

例えばWindowsならadministrator とか users とか役割別のグループが作成されていた、分かりやすいのですが。

ユーザを作るたびにグループが増えて管理が大変です。よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (10件)

> linuxってユーザ名と同じグループが作成されますよね。


> これってなぜ必要なのでしょうか。

例えば、user1、user2 という2人のユーザがいたとします。

そして、この2人のユーザがあるプロジェクトを立ち上げたとします。
さらに、プロジェクトで共通のドキュメントを置くディレクトリ /var/opt/project を作成し、両方のユーザから読み書きできるようにしたいとします。

これを実現するためには、

1. 新たに project グループを作成
2. /var/opt/project ディレクトリのグループを project に設定
3. /var/opt/project ディレクトリのパーミッションを 2775
(グループに対して書き込み権限とsgid をセットする。これで、このディレクトリ以下に作成されたファイルおよびディレクトリのグループも project になる)

とするでしょう。

ただし、user1 と user2 の一時グループが users であり、かつデフォルトの umask が 022 とすると、/var/opt/project 内に作成したファイルのパーミッションは 644 になります。つまり、user1 が作成したファイルを user2 が更新することができません。(できないわけではないが、ファイルを作成するたびに /var/opt/project 内のファイルのパーミッションを 664 に変更する必要がある)

かと言って、デフォルトのumask を 002 とするのは、あまりにもリスクが大きすぎます。

ところが、user1 と user2 がそれぞれ user1、user2 という異なるグループに属していたなら、umask 002 としても上のようなリスクは発生しませんね。これがユーザが属するグループを全て別々に設定する理由です。

言い換えれば、デフォルトの umask を 002 に設定して、異なるユーザ間でファイル共有を行っても、セキュリティ・レベルを低下させないようにするためといったところでしょうか。

ちなみに、shadow-utils のオリジナルのソースコード上では、useradd を -g オプションなしに使用した場合のデフォルト・グループは gid 100 (通常は users。gid 100 は /etc/default/useradd で変更可能) になるようにハードコードされています。RHEL ではこのソースコードにパッチを適用し、この動作がカスタマイズされています。(パッチ適用前の動作をさせる場合には -n オプションを使用)

参考URL:http://www.jp.redhat.com/support/manuals/RHL62/r …
    • good
    • 1
この回答へのお礼

回答ありがとうございます。とても良く理解できました。ありがとうございました。

お礼日時:2008/01/19 20:23

そういうグループのことを「ユーザープライベートグループ」と呼ぶそうです。

参考URLに掲げたページなどご覧いただくと、簡潔にまとまっているので、メリットがよくわかるのではないかと思います。

参考URL:http://ma2tak.dyndns.org:8888/ma2tak/1437
    • good
    • 0

ユーザA、ユーザB、ユーザCといたとします。


ユーザAが作成したファイルをユーザCにはアクセスを許可しないで、ユーザBには読み書きを許可したい場合、
ファイルのパーミッョンでグループに読み書き権限を与え、その他のユーザには読み書き権限を外します。
その上で、ユーザAのグループAにユーザBを追加します。
コレでユーザBもファイルに対して読み書きが可能になります。

gpasswd -a ユーザB グループA
で、グループAの管理者がユーザBをグループAに追加できます。

が、予め/etc/gshadowが必要(無い場合はgrpconvコマンドで作成)で、かつシステム管理者(root)が
gpasswd -A ユーザA グループA
としてグループAの管理者としてユーザAを登録しておく必要があります。

http://www.pinkdragon.net/doc_lib/contents/ja/li …
http://memo.blogdns.net/passwd.html の「ユーザプライベートグループ」の章など
    • good
    • 0

ユーザー毎に同じ名前のグループ名を作る事により


同じユーザー名・グループ名のユーザーを作らない
様にする事でデフォルトで他のユーザーへのアクセス
を禁止してセキュリティ性を高める事ができます。

グループ分けをする場合には別途にグループを作成
して、グループメンバーにユーザーを追加します。
#ユーザーを複数のグループメンバーにする事が
#できます。
各ユーザーに対して細かいアクセス権の設定が可能
になります。
    • good
    • 0

他の回答と重複しますが、グループはその使い方によって、グループ構成を設計して、ユーザーを適切なグループに所属させるのが真っ当なやり方です。


ただ、「グループとはなんぞや?」という物を知らない管理者が適当に設定すると、「グループアクセス権限」によって、意図せずに他人のファイルにアクセスできたりするので、初心者向けを謳うディストリビューションでは、デフォルトで、ユーザー名と同じグループを作るように設定されているのでしょう。安全サイドに倒す意味で。
    • good
    • 0

家庭や個人では、グループという概念は、そう重要ではないかも


知れませんね。
しかし会社組織では、総務、経理、技術、といった組織によって、
グループを分けて、グループ管理は、便利で必須なんですけど。
使う側を少し角度を変えてみることも大事でしょうね。

自分中心には作られていないということでしょうね。
    • good
    • 0

昔のディストリビューションは、グループ名はusersとなるものが多かったのですが、


安易に作成したユーザ全員が同じグループに所属してしまう状況になるよりも、
基本的にユーザは全員別グループとし、管理者が必要に応じてグループ分けができるようにとデフォルトではユーザ名と同じグループ名をつけるようになったと思います。

setgidを悪用すると全員が同じグループに所属していた場合は
影響が大きいですからね。

ただ、現在もデフォルトでusersを利用するディストリビューションもありますし、
それぞれのディストリビューションのポリシーによってユーザ作成時のデフォルト値を決めているようです。
    • good
    • 1

> ユーザ名と同じグループを作成するメリットがあると思うのですが



他の方のResを引用してすみません・・・

「名」には強い意味はありません。
使う人間に見やすくしているだけです。

ユーザもグループも、それについている番号が重要で、「名」は簡単に変更
できますが、ID番号を変えるのはちょっと手間(神経を使う)です。
    • good
    • 0

>linuxってユーザ名と同じグループが作成されますよね。


されません。自由にグループ名を決めてください
    • good
    • 0

デフォルトでユーザー名と同じグループ名にする設定に


なっているだけで、既存のグループを指定する事も
グループ名のみを登録する事もできますけど?

この回答への補足

ありがとうございます。
ユーザ名と同じグループは必須ではないとうことですね。

デフォルトでそう設定されているといことは
ユーザ名と同じグループを作成するメリットがあると思うのですが
それは何ですか?

補足日時:2008/01/15 22:52
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qパスワード設定していないユーザーのログイン

いつもお世話になっております。

linuxで、useraddした後、passwdコマンドでパスワードを設定していないユーザーがいます。ここでは、postgresとします。

このユーザーに一般ユーザーからなるときに、
$su - postgres
としますが、パスワードがきかれて、何も入力しないと、
invalidになります。(centos5)

パスワードを設定しないと、一般ユーザーからログインできないのでしょうか。
ちなみに、rootからpostgresですと、ログインできます。
$su -
$su - postgres

お手数をおかけしますが、なにとぞご教授お願いいたします。

Aベストアンサー

 実際useraddしてみると分かりますが、useradd直後の状態では、パスワードは「設定されていません」。
 設定しとらんのやけん設定はされとらんやろ何を言うてるんアホちゃうんと思うなかれ。パスワードが設定されていないとは、パスワードが空である(=初期値としてランダムパスワードが設定されている訳ではない)という事です。さて、ではどうして一般ユーザーからsuできないのでしょうか。rootになって

# getent shadow postgres

とすると、パスワードの欄が半角びっくりマーク2個のみが印字されたかと思います。この半角びっくりマーク2個というのがLinuxにおいて「アカウントがロックされている」という状態になります。
 試しに/etc/shadowファイルをrootで直接書き換える(びっくり2つを削る)と、一般ユーザーからパスワードなしでsu - postgresできるようになります。もちろんこんな危険な操作(shadowの書き換え)は普通せずに、以下のようにします。

# passwd -u -f postgres

passwd -uというのは、ロックアウトされているアカウントのロックを解除するものですが、現在postgresにはパスワードが設定されていないためpasswd -uだけだと「危険だべ」と拒否されます。ので、-fオプションをつけて強行します。すると先ほど/etc/shadowを直接書き換えたのと同じ状態に変わり、一般ユーザーからパスワードなしでsu - postgresする事ができるようになります。逆にロックする時は

# passwd -l postgres

です。詳しくはpasswd -hなどを参照の事。root(uid 0)はロックされているアカウントもおかまいなしに変身できるという凄い権利を持っています。

 実際useraddしてみると分かりますが、useradd直後の状態では、パスワードは「設定されていません」。
 設定しとらんのやけん設定はされとらんやろ何を言うてるんアホちゃうんと思うなかれ。パスワードが設定されていないとは、パスワードが空である(=初期値としてランダムパスワードが設定されている訳ではない)という事です。さて、ではどうして一般ユーザーからsuできないのでしょうか。rootになって

# getent shadow postgres

とすると、パスワードの欄が半角びっくりマーク2個のみが印字されたかと思...続きを読む

Qレッドハットのバージョン確認方法

自分のサーバで使用しているREDHATのバージョン確認はどうすればいいのでしょうか?

more /etc/issue
とやっても英文しか出てきませんでした。

uname -all
でもカーネルのバージョンは出るのですが、REDHATのバージョンは出ませんでした。

Aベストアンサー

> more /etc/issue
> とやっても英文しか出てきませんでした。

その英文にはRedHatのバージョンは書いてなかったのですか?
書いていなかったとしたら、管理者により編集されている可能性
がありますね。

cat /etc/redhat-release

ではいかがでしょう?
やっぱり英文ですけど。

rpm -q redhat-release

でもいいかも

Qpingでポートの指定

pingでIPアドレスを指定して、通信できるかどうかというのは
よく使いますが、pingでポートを指定して応答するかどうかは調べられるのでしょうか?

よろしくお願いします

Aベストアンサー

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含むICMP)ではできません。

FTPの疎通確認であれば、クライアントからサーバに対するTCP/21通信(FTP-CMD)が可能であること(サーバからクライアントへのTCP/21からの応答を含む)+サーバからクライアントに対するTCP/20通信(FTP-DATA)が可能であること(クライアントからサーバへのTCP/21からの応答を含む)が必要でしょう。

監視ソフトによるものであれば、
・クライアントからサーバへのログイン(TCP/21)
・クライアントからサーバへのlsの結果(TCP/20)
で確認すればよいでしょう。

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含む...続きを読む

QLinuxでユーザ権限の確認コマンド

初歩的な質問です。
宜しくお願いします。

vipwコマンドで、
/etc/passwdのファイル編集画面を起動しました。

ユーザ一覧が表示されているのですが、
どのユーザにsudo権限が割り振られているのか確認する術はございますでしょうか。


※rootの確認ではありません。
※sudoユーザが複数いるものとして、どのユーザがsudo権限を持っているか確認したいと思っております。

宜しくお願い致します。

Aベストアンサー

> どのユーザにsudo権限が割り振られているのか確認する術はございますでしょうか。
システム管理者が、ログオンユーザーを設定するときに指定します。
あえて言えば、
su -
sudo su -
を入れてみて確認することでしょう。
> /etc/passwd
の中のエントリ比較をして見るのはどうでしょうか。
root権限がないユーザーと、あるユーザーを作ってどこが異なるかを検証するだけだと思いますけど。
ディストリビュションによって異なる可能性があるのであえて記載しませんが。

全てのログオンユーザにroot権限を与えるのは、システム管理者です。
インストール後何も設定しなければ、全てのログオンユーザーにroot権限はあると思います。
su -
sudo su -
といったコマンドを打てば、パスワードを訊いてきます。
ディストリビュションにより、rootパスワードを設定しているものは、そのパスワードを入れ、
変則的なデザインのUBUNTU等は、ログオンユーザーのパスワードを入れるものもあります。

Qポートの80と443

こちらのサービス(https://secure.logmein.com/)を利用すると、インターネットを見られるサーバーのポートの80と443が空いていればルータやファイアウォールに特段の設定なく外部からサーバーを操作できるそうですが、逆にサーバーのポートの80や443を空けることには何か危険性があるのでしょうか。

Aベストアンサー

ポート80は一般的なHTTP、ポート443はHTTPSです。
この2つのポートがあいていなければインターネット接続(WEBブラウジング)は出来ません。
ですから、ほとんどのファイアウォールでこのポートは開いています。(インターネット接続を制限している社内LANでは当然閉じていますが)

ちなみに、よく使うポートとしてはFTPで20、21、SMTP(送信メール)で25、受信メールPOP3で110あたりです。セキュリティポリシー上、この辺は制限される事も多いですが、HTTP 80、HTTPS(暗号化用)443は通常閉じません。


危険性?
WEBプロトコルを使ってFTP的なファイル転送(WebDAV)やVPN等も出来るようになっています。当然そこにはある種の危険はつきものですが、WEBブラウジングに伴う危険と大きく変わりません。ウィルス等に感染していればこの2つのポートだけでも相当危険でしょうね。

参考まで。

Q起動しているサービスを確認するコマンド

初歩的な質問で恐縮ですが、ご教示いただけますと幸いです。

起動しているサービスを確認するために以下の2つのコマンドを打ってみるのですが、結果(出て来るサービス名)が違います。
このコマンドの違いについてご教示いただけますでしょうか。

(1)service --status-all
(2)chkconfig --list

Aベストアンサー

(1)service --status-all

サービスの現在のステータスを調べるコマンド

(2)chkconfig --list

OSのブート時に自動起動するサービスを調べるコマンド

違いが出るのは、
・ブート後に手動あるいは他のコマンドから起動したサービス
・ブート後に手動あるいは他のコマンドから、あるいはエラーで停止したサービス
・ブート後に実行はされるがすぐに停止して常駐しないサービス (ntpdate とか)

あるいは、(1)ではサービス名が表示されない物もあるので、どのサービスがどんなステータス出力をするのか知っておく必要もありますね。(service network statusとか)

Qgrepで検索文字列が完全一致した行だけ取り出す方法

grepの文字列検索で検索文字列が単語として、完全一致した行だけ取り出す方法はないでしょうか?

通常は
grep hoge hoge.txt

と打つと、hogeが含まれる行が出力されますが、今回は含まれる行ではなくて完全に文字列が一致した行だけ取り出したいのです。

例えばhoge.txtの中に
cc ghoge
kkl hogem
jjll hoge
という3行があったとしたら最後の行でhogeという文字が空白で区切られた行だけ取り出したいのです。

何かよい方法があれば教えてください

Aベストアンサー

-w オプションじゃだめですか?

参考URL:http://www.linux.or.jp/JM/html/GNU_grep/man1/grep.1.html

Qsedの置換文字に変数を使用したいのですが・・・

あるファイルの特定の文字を変換し、上書きをする処理を行いたいのですが、sedの置換文字に変数が渡せなくて困っています。

例:
X="a"
Y="b"
echo test.txt | sed 's/${X}/${Y/g}' >test.txt

sedでは置換文字に${X}といった変数を使用することはできないのでしょうか?

Aベストアンサー

' ・・・' で囲まれた中の$はそのままドルマークです。変数展開をするなら、'・・・'で囲んではいけません。

何も囲まないか、"・・・"で囲むかです。

Qapacheユーザの実行権限設定はどうすれば良い?

■環境
・Cent OS

■状況
・所有者hogeのディレクトリxに対して、スクリプト経由(apacheユーザ権限)でchmodしようとすると、エラーになります
・スクリプト経由(apacheユーザ権限)でディレクトリ作成しようとしても、エラーになります

■質問
・どうすれば良いでしょうか?
・所有者hogeのグループにapacheユーザを入れたら効果あるでしょうか?

・ディレクトリ所有者がhogeであることが問題? apache所有にした方が良い?
・それとも、スクリプト実行を、apacheユーザ権限ではなく、所有者hogeにした方が良い? どうやって?

・そもそもapacheユーザ権限は、一般的にどう設定するものなのでしょうか? rootみたいに最強にする?

Aベストアンサー

> 所有者hogeのグループにapacheユーザを入れたら効果あるでしょうか?

基本的にはそれでOKですが、それだけではapacheユーザが作成した
ファイルをhogeユーザが変更できなくなってしまうかもしれません。

user=hoge,group=hoge
user=apache,group=apache,groups=hoge

groupは一次グループ、groups2は二次グループです。umask002 (新
規作成されたファイルのパーミッションが775 ) に設定されている
とします。

hogeユーザが作成したファイルはhoge/hoge なので、hogeグループ
に属するapacheユーザは編集可能です。しかし、apacheユーザが新
規作成したファイルはapache/apache になるので、apacheグループ
に属さないhogeユーザは編集できません。

そこで、ディレクトリをhogeユーザで作成し、ディレクトリにsgid
ビットを立てます。

$ chmod 2775 dir
$ ls -l dir
drwxrwsr-x 2 hoge hoge 4096 4月 7 13:35 dir

これで、apacheユーザがdir上に作成したファイルはapache/apache
ではなく、apache/hoge になるので、hogeユーザも編集できるよう
になります。

> 所有者hogeのグループにapacheユーザを入れたら効果あるでしょうか?

基本的にはそれでOKですが、それだけではapacheユーザが作成した
ファイルをhogeユーザが変更できなくなってしまうかもしれません。

user=hoge,group=hoge
user=apache,group=apache,groups=hoge

groupは一次グループ、groups2は二次グループです。umask002 (新
規作成されたファイルのパーミッションが775 ) に設定されている
とします。

hogeユーザが作成したファイルはhoge/hoge なので、hogeグループ
に属するapacheユーザは編集可能...続きを読む

Qユーザをwheelグループに追加するのは何のため?

■環境
・Cent OS

■質問1
・ユーザをwheelグループに追加するのは何のためでしょうか?
・sudo コマンドを使えるようにするため?
・sudo コマンドを使わないなら、追加しなくてもよい?

■背景
・新しく作成したユーザを、wheelグループへ追加するべきか判断がつかない
・このユーザは、「apacheユーザのセカンダリグループとして追加するためだけに作ったグループ」用ユーザです

■質問2
・wheelグループ名は固定なのでしょうか?
・例えば、hogeなどに変更可能?

Aベストアンサー

>・ユーザをwheelグループに追加するのは何のためでしょうか?

既に回答ある通りです。

自ユーザー以外の一般ユーザーアカウントがあって、管理者に昇格できる(suコマンドでrootになれる)アカウントを制限したい場合に使います。
PAMを利用していないと無意味かも知れませんが…。
# CentOSなら普通にPAM使っているでしょう。
あと、pam_wheel.soのモジュールを利用するように変更する必要もあるでしょう。
/etc/pam.d/su の編集が必要でしょうね。
# 該当ファイルにコメント書かれているんで読んでください。英語ですが。

>・sudo コマンドを使えるようにするため?
>・sudo コマンドを使わないなら、追加しなくてもよい?

/etc/pam.d/sudo というのが別にありますから、sudoコマンドではなくあくまでsuコマンドでの制限ですね。
sudoコマンドでの制限は別のファイルでかけることになりますし。
# /etc/pam.d/sudo なりでpam_wheel.soのモジュールを使用するように設定すれば意味はありましょう。

>・新しく作成したユーザを、wheelグループへ追加するべきか判断がつかない

追加したアカウントを外部から操作できる状態で、管理者権限を付与したくない。
というのであれば、PAMでpam_wheel.soを有効にするべきでしょう。
# 当然、本来の管理者はwheelグループに登録。
シェルが使える状態になっていない…というのなら、そこまで厳しくする必要は無いかも知れません。
まぁ、かける手間と効果を考慮すると、外部公開するならwheelグループ使うようにした方がいいんでしょうけどね。
# PAMの設定変更と管理者昇格可能なユーザーのwheelグループへの追加だけでやらないよりはセキュリティ的に安全になるのですから。
# 言いつつ私はやっていませんけど。まぁ後でやっておくか…。

>・このユーザは、「apacheユーザのセカンダリグループとして追加するためだけに作ったグループ」用ユーザです

なら、管理者になる必要も無いかと思われますが…。

>・wheelグループ名は固定なのでしょうか?
>・例えば、hogeなどに変更可能?

man 8 pam_wheel
してください。

>・ユーザをwheelグループに追加するのは何のためでしょうか?

既に回答ある通りです。

自ユーザー以外の一般ユーザーアカウントがあって、管理者に昇格できる(suコマンドでrootになれる)アカウントを制限したい場合に使います。
PAMを利用していないと無意味かも知れませんが…。
# CentOSなら普通にPAM使っているでしょう。
あと、pam_wheel.soのモジュールを利用するように変更する必要もあるでしょう。
/etc/pam.d/su の編集が必要でしょうね。
# 該当ファイルにコメント書かれているんで読んでください。英...続きを読む


人気Q&Aランキング