Cygwin なんでも掲示板

一覧最新記事過去一覧 | 検索FAQアンテナHOME
(新規投稿・発言はできません)

No.1803  ドメインユーザー(ローカル側Admin権限、ドメイン側Domain Users)のグループに"なし(gid=513)"を追加する方法を教えて下さい。
発言者: 田野@まさ
発言日: 2003 12/19 22:48
 
「MSだす。」さま、「nil」さま、皆さま、ご無沙汰しています。他の仕事が忙しくてちょっと離れてました。
やっと最新のcygwinで再インストを終えまして、更にJE本を読んで自分で研究して試した経過報告をします。

[再インストしたアカウント]
ローカルのAdministrator

[再インストしたバージョン]
cygwin.comのトップページ(DLLバージョン 1.5.5-1 と書いてある)にあるsetup.exeを使い、
http://cygwin.mirrors.pair.com からDLしたバイナリ。
cygwin_JEは未だインストせずにfindの検証に取りかかりました。

[再インスト後の'e:\cygwin\bin\cygwin1.dll'の製品バージョン]
1.5.5-cr-0x9b

[再インストした直後の各ユーザーでの動き]
ローカルのAdministrator:
Windows側ユーザー環境変数"HOME /home/Administrator"を設定して「いない」のに、bashでloginすると自動で /home/Administrator が出来、"find / -name cygwin.bat"を叩くと、何の問題もなし。
(/cygwin.bat が検索され、findを抜ける。前回と同じ)

ローカルのGuest(前回はGuestでは試しておらず、今回始めて試しました):
Windows側ユーザー環境変数"HOME /home/Guest"を設定して「いない」のに、bashでloginすると自動で /home/Guest が出来、"find / -name cygwin.bat"を叩くと、何の問題もなし。
(/cygwin.bat が検索され、findを抜ける)

ドメインのtanom(ローカル側グループ=Administrators,ドメイン側権限は多分Domain Users):
前回Windows側ユーザー環境変数"HOME /home/tanom"を設定していないと、自動で /home/tanom は出来なかったので、今回は最初からWindows側ユーザー環境変数"HOME /home/tanom"を設定しbashでloginし、自動で /home/Guest が出来、"find / -name cygwin.bat"を叩くと、
$ find / -name cygwin.bat
find: ./.. changed during execution of find
となる。

この時点でのidは調べ忘れました。すいません。

ここで次のコマンド。
$ mkpasswd -l -c >/etc/passwd ; mkpasswd -d -u tanom >>/etc/passwd
$ mkgroup -l -c >/etc/group ; mkgroup -d >>/etc/group

この時点では、
$ id
uid=11110(tanom) gid=10513(mkgroup_l_d) groups=544(Administrators),545(Users),10
513(mkgroup_l_d),10513(mkgroup_l_d)

ここで、/etc/passwdと/etc/group の編集にとりかかる。

/etc/passwd
----------------------------------------------------------------------------------------------
SYSTEM:*:18:544:,S-1-5-18::
Administrators:*:544:544:,S-1-5-32-544::
Administrator:unused_by_nt/2000/xp:500:513:U-DWH_NTWS777\Administrator,S-1-5-21-699034762-2112294683-452858821-500:/home/Administrator:/bin/bash
Guest:unused_by_nt/2000/xp:501:513:U-DWH_NTWS777\Guest,S-1-5-21-699034762-2112294683-452858821-501:/home/Guest:/bin/bash
tanom:unused_by_nt/2000/xp:11110:10513:tanom,U-DWH2000\tanom,S-1-5-21-25768824-1085765157-1845911597-1110:/cygdrive/c:/bin/bash
tanom:unused_by_nt/2000/xp:11110:10513:U-DWH2000\tanom,S-1-5-21-25768824-1085765157-1845911597-1110:/home/tanom:/bin/bash
----------------------------------------------------------------------------------------------
[作業 1.1]
tanomが2行出来てるが、uidもSID(S-1-5-21…)も同じなので、GCOS(第5フィールド)が最大公約数の方(1行目)を残す。

[作業 1.2]
残ったtanomのホームディレクトリ"/cygdrive/c"を"/home/tanom"に変更。


/etc/group
----------------------------------------------------------------------------------------------
SYSTEM:S-1-5-18:18:
~Bネ~Bオ:S-1-5-21-699034762-2112294683-452858821-513:513:
Administrators:S-1-5-32-544:544:
Backup Operators:S-1-5-32-551:551:
Guests:S-1-5-32-546:546:
Power Users:S-1-5-32-547:547:
Replicator:S-1-5-32-552:552:
Users:S-1-5-32-545:545:
mkgroup_l_d:S-1-5-21-25768824-1085765157-1845911597-513:10513:
Domain Admins:S-1-5-21-25768824-1085765157-1845911597-512:10512:
Domain Guests:S-1-5-21-25768824-1085765157-1845911597-514:10514:
Domain Users:S-1-5-21-25768824-1085765157-1845911597-513:10513:
----------------------------------------------------------------------------------------------
[作業 2.1]
"なし"が文字化けしてるので"none"に変えてやる。

[作業 2.2]
gid=10513 が2行出来てるが、SID(S-1-5-21-…)は同じなので、mkgroup_l_dを削除。

[作業 2.3]
"Domain Hogehoge"の空白をアンダーバーに変える。



/etc/passwd
----------------------------------------------------------------------------------------------
SYSTEM:*:18:544:,S-1-5-18::
Administrators:*:544:544:,S-1-5-32-544::
Administrator:unused_by_nt/2000/xp:500:513:U-DWH_NTWS777\Administrator,S-1-5-21-699034762-2112294683-452858821-500:/home/Administrator:/bin/bash
Guest:unused_by_nt/2000/xp:501:513:U-DWH_NTWS777\Guest,S-1-5-21-699034762-2112294683-452858821-501:/home/Guest:/bin/bash
tanom:unused_by_nt/2000/xp:11110:10513:tanom,U-DWH2000\tanom,S-1-5-21-25768824-1085765157-1845911597-1110:/home/tanom:/bin/bash
----------------------------------------------------------------------------------------------

/etc/group
----------------------------------------------------------------------------------------------
SYSTEM:S-1-5-18:18:
none:S-1-5-21-699034762-2112294683-452858821-513:513:
Administrators:S-1-5-32-544:544:
Backup Operators:S-1-5-32-551:551:
Guests:S-1-5-32-546:546:
Power Users:S-1-5-32-547:547:
Replicator:S-1-5-32-552:552:
Users:S-1-5-32-545:545:
Domain_Admins:S-1-5-21-25768824-1085765157-1845911597-512:10512:
Domain_Guests:S-1-5-21-25768824-1085765157-1845911597-514:10514:
Domain_Users:S-1-5-21-25768824-1085765157-1845911597-513:10513:
----------------------------------------------------------------------------------------------

しかし、問題は解決せず。
$ find / -name cygwin.bat
find: ./.. changed during execution of find

この時点で、
$ id
uid=11110(tanom) gid=10513(Domain_Users) groups=544(Administrators),545(Users),10513(Domain_Users)

[作業 3.1]
/etc/passwd で tanomが(2行あったどちらも)、uid=11110 なのに SID末尾=…1110 となっており、これは SID末尾=…11110 となっているべき(BUGかも?)と仮定し、修正してみるが、find結果は変わらず。
ちなみにidの結果も変わらず。
なので、元(末尾=…1110)に戻しておきました。


[この時点でのupdatedb結果]
updatedb --prunepaths='/cygdrive /usr /bin /lib'
updatedb --prunepaths='/cygdrive /usr /bin /usr/bin /lib /usr/lib'
…は通った。

updatedb --prunepaths='/cygdrive'
updatedb --prunepaths='/cygdrive/c'
updatedb --prunepaths='/cygdrive /cygdrive/c'
updatedb --prunepaths='/cygdrive /usr /bin'
updatedb --prunepaths='/cygdrive /usr /lib'
updatedb --prunepaths='/cygdrive /bin'
updatedb --prunepaths='/cygdrive /lib'
updatedb --prunepaths='/cygdrive /usr'
updatedb --prunepaths='/cygdrive /bin /usr/lib'
updatedb --prunepaths='/cygdrive /lib /usr/bin'
updatedb --prunepaths='/cygdrive /usr/bin /usr/lib'
updatedb --prunepaths='/cygdrive /usr /usr/bin /usr/lib'
updatedb --prunepaths='/cygdrive /usr/bin /usr/lib /bin'
updatedb --prunepaths='/cygdrive /usr/bin /usr/lib /lib'
updatedb --prunepaths='/cygdrive/e/cygwin /bin'
updatedb --prunepaths='/cygdrive/e/cygwin /lib'
updatedb --prunepaths='/cygdrive/e/cygwin /usr'
updatedb --prunepaths='/cygdrive/e/cygwin'
…は
/usr/bin/find: ./.. changed during execution of /usr/bin/find

updatedb --prunepaths='/cygdrive /bin /lib'
updatedb --prunepaths='/cygdrive /bin /lib /usr/bin /usr/lib'
updatedb --prunepaths='/cygdrive /bin /lib /usr/bin'
updatedb --prunepaths='/cygdrive /bin /lib /usr/lib'
…は返ってこなくなり、Ctrl+cで抜け。


findで問題が起きないユーザーは、
$ id Administrator; echo; id Guest
uid=500(Administrator) gid=513(none) groups=513(none)

uid=501(Guest) gid=513(none) groups=513(none)
となっており、tanomだけグループにnoneが欠けてる事が原因のような気がするのです。

つまり、
$ id
uid=11110(tanom) gid=10513(Domain_Users) groups=544(Administrators),545(Users),10513(Domain_Users),513(none)
となるようにすれば問題が解決するのでは、と考えているのです。

[質問 1]
何故、ドメインユーザー"tanom"だけグループに"none"が欠けてるのか、原因をどなたか分りますでしょうか?

また、noneの追加のやり方ですが、JE本 p.204以降を読んでも良く分りません。
普通のUNIX風にやってみたらどうかと、/etc/group を、
none:S-1-5-21-699034762-2112294683-452858821-513:513:Administrator,Guest,tanom
none:S-1-5-21-699034762-2112294683-452858821-513:513:tanom
の両方試しましたが駄目でした。

[質問 2]
どなたかドメインユーザー"tanom(sid=11110)"のグループに"none(gid=513)"を追加する方法を教えていただければ幸いです。


▼関連発言

1780:No.1779 " Administratorsグループでインストしたのです&quo [MSだす。] 12/12
 ├1781:Re:No.1779 " Administratorsグループでインストしたのです [nil] 12/12
 ├1782:Re:No.1779 " Administratorsグループでインストしたのです [nil] 12/12
 │├1783:最初にinetdやsshをサービス登録した時を境にして、$ find / - [田野@ま] 12/13
 │└1799:HOME = /cygdrive/c の原因 [nil] 12/16
 ├1788:サービス削除せずにAdministratorで再インストしてしまった [田野@ま] 12/15
 │├1789:再インスト後、Administrator@ローカルで削除コマンドでコンパ [田野@ま] 12/15
 ││└1791:/usr/bin/find ./.. changed during … [MSだす。] 12/15
 │└1790:正しくは「コンパネのサービスに『CYGWIN hoged』が残ったまま [田野@ま] 12/15
 └1803:ドメインユーザー(ローカル側Admin権限、ドメイン側Domain Users [田野@ま] 12/19
  ├1804:一部訂正:ドメインユーザー(ローカル側Admin権限、ドメイン側D [田野@ま] 12/19
  └1805:Cygwinでgroups=…に513(none)を追加する方法を教えて下さい。 [田野@ま] 12/22 <

Pass 保存

早田のホームページへ
CGIROOM