今日の一言
2009/09/22(Tue) 自己責任でお願いします [長年日記] 1:00現在曇 24℃
_ [FC][Ubuntu][Linux][研究関係][プロジェクト実習]新しいユーザにデータをコピーしたい場合
今回のは失敗したらかなり危険(データにアクセスできなくなる)なので、真似る場合は自己責任でお願いします。
既存のユーザのアカウント名を変更
root権限でusermodコマンドを使う。(この際、変更したいユーザがログインしていないことを確認しておく)
オプション
-c comment ユーザのフルネームをcommentに変更。
-d home_dir ユーザのホームディレクトリをhome_dirに変更。
-g group ユーザのグループIDをgroupに変更。
-G group[, ...] ユーザの所属グループを指定。
-l loginname ユーザのログイン名をloginnameに変更。
-p passwd ユーザのパスワードをpasswdに変更。(一般にはpasswdコマンドを使う)
-s shell ユーザのログインシェルをshellに変更。
-u uid ユーザのユーザ名をuidに変更。
-m ユーザのホームディレクトリがなければ自動的に作成
-lオプションではホームディレクトリ等は変更されない。よって、完全にユーザ名を変更したい場合は、
# /usr/sbin/usermod -l 新しいユーザー名 旧ユーザー名
# /usr/sbin/usermod -d 新しいディレクトリ名 ユーザー名
とする。
まあ、本当は新しくアカウントを作ってデータを移動させた方が安全だが。
新しいアカウントを作って、他からホームディレクトリをコピー
と、いうことで、こちらも一応メモる。
まず、アカウントを作成
# /usr/sbin/useradd -d ホームディレクトリ -m 新規ユーザ名
"-m"オプションで、自動でホームディレクトリが作成される。
で、このままだと入れないので、パスワードを設定する。
# passwd 作成したユーザ名
(パスワードを入力)
(再度パスワードを入力)
んで、ホームディレクトリの中身をコピー。
# cp -R -a -v コピー元のホームディレクトリ コピー先のホームディレクトリ
ここで-aを忘れると、属性や構造が変わってしまう可能性があるので注意。(-aを付ければ「出来る限り」元通りの状態を保持してくれる)
-vは経過を表示するというオプションなので、別に必須では無い。
が、コピー元のサイズが大きい場合、本当にコピーしているか心配になるのでつけた方が賢明。
これでデータは移せたはずだが、もしかすると権限の問題でアクセスできないファイルが出来たり、下手するとログインが出来なくなったりしているかもしれない。
その場合は、chmodやchownを使って適時処理する。
どうしても、どうやっても直らない!と言うのであれば、/home以下を-R付けて777にしてしまえば大抵の場合は動くようになる。
が、当然セキュリティ上は最悪なので、権限を規定できる部分は規定しておいた方がいい。
ま、ログインできない原因の大半は設定ファイルにアクセスできないからなので、ホームディレクトリの.ファイルとホームディレクトリ、あと、/homeのアクセス制限を確認すれば大体の原因はわかるはず。
念のため書いとくが、隠しファイル(.で始まるファイル)を含めてアクセス権限の設定を表示させたい場合は
$ ls -a {ディレクトリ名}
でOK。
_ [FC][Ubuntu][Linux][プロジェクト実習][研究関係]ubuntuのLiveCDを使ったgrubの再インストール方法
Ubuntu9.04をいれたPCにFC6を入れて、grubをFCのもので上書きしたら、ubuntuが起動できなくなった。
いろいろ試してみたが、どうやらgrubが古過ぎて読めない模様。
よって、ubuntu側のgrubをもう一度MBRに書き込み直すことにした。
UuntuのLiveCDを使ってHDD内のUbuntuを起動
まず、LiveCDによる起動の最初のメニュー画面でF6キーを押して起動オプションを立ち上げる。
で、立ち上がった起動オプションの文字列の中の”boot=casper"の部分を”root=/dev/sda1" 等に書き換えてEnterを押す。
ここで、/dev/sda1はUbuntuのシステムがインストールされているパーティションを指す。
なので、パーティションの状況によってここをsda2にしたりsdb1にしたりする必要がある。
GRUBの再インストール
無事Ubuntuが立ち上がったら、端末を開き、次のコマンドを入力する。
$ sudo /usr/sbin/grub-install /dev/sda
これでHDDの先頭にgrubが書き込まれたので、再起動して確認。
おそらく動くはず。が、これはマルチブート前のパーティション状況にあわせた設定だったので、FC6が開けなかった。
マルチブートできるようにmenu.lstを修正
uguntuではgrubの設定は/boot/grub/menu.lstにかかれている。
また、FCの場合はgrubの設定は/boot/grub/grub.confにかかれている。
で、これらの書式はほぼ同じと考えていいっぽい。(厳密には違いそうだが)
なので、ubuntu側のmenu.lstにgrub.confの内容を追加すればいい。
<追加する内容の例>
title Fedora Core (2.6.18-1.2798.fc6) root (hd0,4) kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.18-1.2798.fc6.img
念のため、書き換える前にはバックアップをとっておくこと。
で、書き換えたら保存して再起動。
これでマルチブートになったはず。