
Ubuntu日本語フォーラム

ログインしていません。
こんにちは。最近Ubuntuを始めた者です。このフォーラムを見ながら勉強させていただいてます。
ログイン時に下記のアラートがでます。
”ユーザーの$HOME/.dmrcファイルが読み込まれなかったのでデフォルトのセッション情報と設定した言語は保存されていません。このファイルの所有者をユーザーにし644の権限を付与して下さい。またホームフォルダ$HOMEの所有者をユーザーにして、他のユーザーが書き込めないようにして下さい。”
さて、GUI上での~/.dmrcのプロパティで所有者はちゃんとユーザー名になってました。
ls -l を調べるのが正しいのかよくわかりませんが、
ls -l ~/.dmrc
-rw------- 1 (ユーザー名) (ユーザー名)となりました。
ホームフォルダの所有者云々といわれてますので
ls -l /home/ としたところ
drwxr-xr-x 44 guest guest
drwxr-xr-x 32 guest2 guest2
drwxrwxrwx 80 (ユーザー名) (ユーザー名)
となりました。
(ユーザー名)のフォルダだけ、他ユーザーのフォルダとパミッションが違うようですが、
これが問題なのでしょうか?
このアラートがでるようになったのは今日が初めてなのですが、
ここ2日ほどログアウトしたことがなく、その間いろんなことをしたので
何をした結果こうなったのか全く把握できません。
よろしくご教示下さい。
オフライン
こんにちは、お騒がせ致しました。
結局自分の力ではどうにも解決できずにシステムを再インストールしました。
別にシステムがおかしいわけではなくてホームフォルダの中の何かが悪かったはずなので
別のユーザーを作って、そちらにお引越しでもよかったのでしょうが、
各書類のアクセス権の問題がややこしそうで止めました。
例えば/home/taro/から/home/jiro/に書類を全部お引越しする時の
アクセス権の変更の仕方とか、今後のために教えていただければ幸です。
よろしくお願いします。
オフライン
ファイルの所有者を変更するには chown、アクセス権を変更するには chmod コマンドを使用します。コマンドの詳細は man chown や man chmod を参照してください。
余談ですが manpages-ja をインストールしておけば日本語で表示されます。
オフライン
sari1013 による投稿:
例えば/home/taro/から/home/jiro/に書類を全部お引越しする時の
アクセス権の変更の仕方とか、今後のために教えていただければ幸です。
rwxrwxrwxと並んでる部分なら, chmodでモードを変更できるです。
rwx r-x r-x に変更したい場合は (3つずつに区切って表現した) 755を指定するとか, あるいは文字列でそれを指定したりとかできるです。
$ chmod 755 /home/USER # 例えばこんな感じ $ chmod =r+x,u+w /home/USER # あるいはこんな感じ $ chmod go-w /home/USER # あるいはもっと簡単に (元々 777になってた場合)
指定ディレクトリ以下の全ファイルを対象にすることもできるけど, 注意が必要カモです。
参考:
http://www.linux.or.jp/JM/html/GNU_fileutils/man1/chmod.1.html
http://ja.wikipedia.org/wiki/Chmod
GUIでの操作になれてるならそっちが楽かも。
で, ファイルのオーナーの変更の話であれば, また別のコマンドになるです。
オフライン
mizuno による投稿:
manpages-ja をインストールしておけば日本語で表示されます。
ですね。
ほかに (必要に応じて) manpages-ja-dev だとか xmanpages-ja だとか …
オフライン
mizunoさん、RxOrcaさん、ありがとうございます。
何百個もあるファイルの所有者をいちいちGUIで変えていくのは
実質不可能と思い質問させていただきました。
お引越しのためには指定ディレクトリ以下の全ファイルの
所有者をごっそりと変更する必要があるとおもってましたが方法が分かりませんでした。
まだ、よく理解できてませんが、chmodとchownを勉強してみます。
有難うございました。
オフライン
こんにちは。
sari1013 による投稿:
何百個もあるファイルの所有者をいちいちGUIで変えていくのは
実質不可能と思い質問させていただきました。
お引越しのためには指定ディレクトリ以下の全ファイルの
所有者をごっそりと変更する必要があるとおもってましたが方法が分かりませんでした。
こういうときは、主にバッチファイルを書いて実行させる手段・CUIで一括に変更してしまうの二種類があります。
私はバッチファイルは書けませんので (汗)、例えば端末から以下のように入力します。
/home/user/Public というフォルダ以下を所有者・グループともにuserに書き換えする場合:
$ chown user:user /home/user/Public/*
(識者の方々、あんまり自信ないのでフォローよろしくです)
オフライン
バッチファイルとゆーよりシェルスクリプトでしょーか。ググる場合, "シェルスクリプト"で引っかかりやすいカモです。
でもいきなりそれも大変カモなので, こんな方法はどーでしょ。
*.datだけを対象に変更する場合 …
$ find ~/Public -name "*.dat" -exec chown user:user {} +(上記と同じ条件で) 一旦, 一覧を作成して加工してから適用する場合
(ただし, ファイル名にスペースを含まないことが条件)
$ find ~/Public -name "*.dat" >file_list $ gedit file_list # 必要があれば加工 (除外するとか付け加えるとか) $ xargs chown user:user <file_list
findの検索条件には, 最終アクセス時間が 1週間前までのものとか, ファイルサイズが何バイト以上とか, ファイル所有者が 〜のものとか, いろんな指定ができるです。
オフライン
HoneSONGさん、RxOrcaさん、ありがとうございます。
HoneSONGさんに教えていただいたコマンドは
ディレクトリ以下の所有者を一括で変更するんですね。
先日/usr/share/fonts/にごっそりフォント入れたら
所有者がユーザーになってて、一つ一つGUIでrootに変更したことがありました。
このような時使えますね。
で、RxOrcaさんが教えてくださったのはある条件のファイルを加工するスクリプトということですね。
(正直今の私の理解の範疇を超えてますが・・勉強します。)
ありがとうございました。
最後の編集者: sari1013 (2008-07-27 02:49:25)
オフライン
サブディレクトリが何層も(?) ある場合に, 動作に違いが現れるカモです。
例えば Public/*の場合は, Public直下の全ファイル … を指すです。
けど, Public/data/ みたいなディレクトリがあってもそれは対象外。
chown (あるいは chmod) コマンドのオプション, -R (あるいは --recursive) を指定する場合は, その名の示す通り, サブディレクトリ以下も対象です。
先にあげた findコマンドでの場合, これと同様 サブディレクトリ以下も対象です。
findコマンドでファイル一覧を得るだけなら何も影響を与えないはずなので, 簡単に確認できるですよ。
(適当なディレクトリで findと入力するだけ)
ちなみに, 「シェルスクリプトを組むまでもない」ってことで findコマンドをアレしてる訳なので, (コマンドの組み合わせってだけで) 今回のこれはシェルスクリプトではありません。
オフライン
こんにちは、RxOrcaさん。ありがとうございます。
RxOrca による投稿:
サブディレクトリが何層も(?) ある場合に, 動作に違いが現れるカモです。
例えば Public/*の場合は, Public直下の全ファイル … を指すです。
けど, Public/data/ みたいなディレクトリがあってもそれは対象外。
chown (あるいは chmod) コマンドのオプション, -R (あるいは --recursive) を指定する場合は, その名の示す通り, サブディレクトリ以下も対象です。
そうなんですか。
最初に話をもどして、/home/taro以下のデータをサブディレクトリも含めてすべて
所有者とグループをjiroに変更するときは
$ chown -R jiro:jiro /home/taro
でよろしいでしょうか?
RxOrca による投稿:
先にあげた findコマンドでの場合, これと同様 サブディレクトリ以下も対象です。
$ find ~/Public -name "*.dat" >file_list
は ~/Public 以下のサブディレクトリも含めて、拡張子がdatのファイルリストをだしてねって
いうコマンドだと思うのですが、
~/Public以下のディレクトリも含めて全部のデータにするにはどうしたらいいですか?
最後の編集者: sari1013 (2008-07-29 11:50:10)
オフライン
sari1013 による投稿:
最初に話をもどして、/home/taro以下のデータをサブディレクトリも含めてすべて
所有者とグループをjiroに変更するときはコード:
$ chown -R jiro:jiro /home/taroでよろしいでしょうか?
ですね。
もしも権限が無くて操作できない様なら, 行頭に sudoを付ける必要があるカモです。
この sudoと recursive指定の組み合わせは, 指定を間違えると再インストールになる可能性もあるので十分注意してください (実際, やらかしました)。
sari1013 による投稿:
~/Public以下のディレクトリも含めて全部のデータにするにはどうしたらいいですか?
オプション指定しなければ, 通常のファイルもディレクトリもシンボリックリンク等もすべて対象になるです。
$ find ~/Public
$ find ~/Public | less # 出力が大量であれば less使うと便利カモ ("q"で終了)
$ find ~/Public -type f # 蛇足カモだけど, 通常ファイルだけを対象にする場合オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
最後の編集者: kiyoshi (2008-07-29 18:50:05)
オフライン
RxOrcaさん、ありがとうございます。大変勉強になりました。
Kiyoshiさん、補足ありがとうございます。
kiyoshi による投稿:
揚げ足取りで、また、ご存知でしょうので、恐縮ですが、後から見た人が勘違いしないように記しておきます。
お恥ずかしながら仰るとおりの勘違いをしておりました。
Nautilus-gksuを多用して、ほとんどコマンドを使わず過ごしてきました。
(っていっても初心者なのでごく短い期間ですが。)
やっぱり、コマンド使えた方がいいですね。
これを機会に勉強します。今後ともよろしくお願いします。
オフライン