web-dev-qa-db-ja.com

システム全体(ファイルシステム属性を含む)でユーザーIDとグループIDを変更しますか?

この質問はおそらく Linux:「外部」パーティションのマウント時にユーザー所有権をシミュレート/マスキングしますか?-スタックオーバーフロー

私は通常、デスクトップOSとしてUbuntu(現在は11.04)を使用しています。たとえば、私はuid = 1000のユーザーmyselfであり、グループの一部ですmyselfwith gid = 1000;したがって、基本的にホームディレクトリのアクセス許可は次のようになります。

> stat ~
  File: `/home/myself'
...
Access: (0755/drwxr-xr-x)  Uid: ( 1000/   myself)   Gid: (  1000/   myself)

現在、同じマシンで、LiveUSB(Live-CD)を介してOpenSuse(現在は11.2)を起動する必要がある場合があります。 Live-CD環境のデフォルトユーザーがlinux、uid = 999、一部であることを除いて、これらはすべて問題なく機能します。グループのusers、gid = 100;したがって、ホームディレクトリのアクセス許可は次のようになります。

> stat ~
  File: `/home/linux'
...
Access: (0755/drwxr-xr-x)  Uid: ( 999/   linux)   Gid: (  100/   myself)

したがって、基本的に、Ubuntuドライブ(1000:1000が所有)をライブOpenSUSE(デフォルトユーザーは999:100)にマウントすると、通常どおりアクセスできません。つまり、次のようになります。

linux@linux:~> touch /media/extdrive/xxx
touch: cannot touch `/media/extdrive/xxx': Permission denied

それで、OpenSUSEマシンでlinux:usersのデフォルトのuid/gudを変更しようと思ったので、これを試しました。

> Sudo /usr/sbin/usermod -u 1000 linux
usermod: Account `linux' is currently in use.

> id linux
uid=999(linux) gid=100(users) groups=100(users),33(video)

# so if that fails.... change directly from /etc/passwd? 
> Sudo nano /etc/passwd

> id linux
uid=1000(linux) gid=100(users) groups=100(users),33(video)

...そしてuidを変更するだけで、Ubuntuドライブに正常にアクセスできますが、以前はlinux:usersが所有していたOpenSUSEのものにアクセスできなくなりました。

> Sudo nano /etc/fstab
Sudo: unknown uid: 999

...つまり、bad/ etc/passwdを直接変更するという考え:)ここでの解決策は、rootシェルにドロップすることだったようです。まず、usermodコマンドを実行し、再起動します。これで、OpenSUSE環境からアクセスできます。

linux@linux:~> stat ~
Access: (0755/drwxr-xr-x)  Uid: ( 1000/   linux)   Gid: (  100/   users)

これにより、ほとんどの場合、通常どおりUbuntuファイルシステム/ドライブにアクセスできるようになります。また、OpenSUSEのデフォルトユーザーが所有するものすべてに通常アクセスできます。

ただし、念のため、グループIDも変更したいと思います。これを行うための推奨される方法は何ですか(そして、上記の説明で正しく行わなかった場合、uidを変更するための推奨される方法は何ですか)?

回答をよろしくお願いします。
乾杯!

2
sdaau

私があなたの質問を正しく理解している場合は、find-gid条件を使用できます。

find /media/extdrive -gid 100 | Sudo xargs chown myself:myself 

または、find-execをご希望の場合:

Sudo find /media/extdrive -gid 100 -exec chown myself:myself {} +

または、chownのマンページを見ると、便利な--fromオプションがあります。

Sudo chown -R myself:myself --from=:100

詳細については、適切なマンページを参照してください。

6
Kevin