お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#26 2010-11-05 19:25:08

hmatsue
アドバイザ
登録日: 2009-03-10

Re: 時計が遅れますが、9時間遅れる症状ではない様です。

prussianblue による投稿:

gksudoとしなければならないところをsudoとしてしまった訳ですが、決してしてはいけないと書いて有りました。『環境変数……』以下のくだりが良く理解出来なかった為、どれほど重大なミスを犯したのか自覚出来ないのですが、もう一度Ubuntuを再セットアップしてgksudoでやり直した方が宜しいのでしょうか?

まず環境変数についてですが、環境変数とは様々な設定を記憶しておくための変数です。
例えば$HOMEには、そのユーザのホームディレクトリが記憶されています。プログラムの中にはこの$HOMEの場所を読み取り、そこに設定ファイルを生成したりするものがいます。

sudoを使った場合、この$HOMEにはそのユーザのホームディレクトリが記憶されたままになります。
これにより、sudoで呼び出したプログラムがユーザのホームディレクトリに設定ファイルを作成したり、ということが起き得ます。
gksudoの場合は$HOMEを~rootに設定します。~rootはroot(管理者ユーザ)のホームディレクトリを意味しており、$HOMEに設定ファイルを作るようなプログラムを起動したとしてもユーザのホームディレクトリに設定ファイルが生成されるということが起きません。

sudoで呼び出したプログラムは管理者が呼び出したプログラムとなるため、設定ファイルが生成される場合、管理者ユーザのファイルとなります。パーミッション(権限)の設定にもよりますが、一般ユーザが同じプログラムを起動した際に、設定変更できないなどの影響がでる可能性があります。

これが再インストールが必要なほど致命的な現象化というとそうではなくて、sudoを使って所有者を変更すればOKです。
ちょっと試してみた感じでは今のgeditはsudoで呼び出しても管理者所有のファイルをユーザのホームディレクトリに生成するということは無いように見えましたが検証は十分ではないので以下のコマンドを使って確かめてみてください。

コード:

find $HOME -user root
find $HOME -group root

findコマンドはあるディレクトリを起点に、与えられた条件に一致するファイルを検索するコマンドです。詳細は端末でman findとして確認してみて下さい。
このコマンドを実行してuser(所有ユーザ)がrootになっていたり、group(所有グループ)がrootになっているファイルがあれば

コード:

sudo find -user root -exec chown prussianblueさんのユーザ名:prussianblueさんのグループ名 {} \;
sudo find -group root -exec chown prussianblueさんのユーザ名:prussianblueさんのグループ名 {} \;

として、所有者、および、グループを変更して下さい。
例えばユーザ名がhmatsueで、グループ名がhmatsueの場合、

コード:

sudo find -user root -exec chown hmatsue:hmatsue {} \;
sudo find -group root -exec chown hmatsue:hmatsue {} \;

となります。
ユーザ名やグループ名がわからない場合は、

コード:

ls -ld $HOME

とすることで確認できるかと思います。

オフライン

 

#27 2010-11-06 00:38:47

prussianblue
メンバ
登録日: 2010-10-31

Re: 時計が遅れますが、9時間遅れる症状ではない様です。

>hmatsue様
 お返事有り難う御座います。今回のご説明を拝読した上で、先の参照先を確認すると、少し理解が増した気がします。初めてのLinuxディストリビューション経験で、戸惑うことも多いですが、一歩ずつ学んでゆこうと思います。

オフライン

 

Board footer

Powered by FluxBB