(この問題は、以下に関連する可能性があります。Linux:「外部」パーティションをマウントするときにユーザーの所有権をシミュレート/マスクしますか? - スタックオーバーフロー)
私は通常Ubuntu(現在11.04)をデスクトップOSとして使用します。myself
uid=1000、このグループに属するmyself
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)
したがって、デフォルトでライブOpenSUSE(デフォルトユーザーは999:100)にUbuntuドライブ(1000:1000所有)をマウントすると、通常どおりアクセスできません。
linux@linux:~> touch /media/extdrive/xxx
touch: cannot touch `/media/extdrive/xxx': Permission denied
linux:users
そのため、OpenSUSEシステムでデフォルトの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ドライブに問題なくアクセスできます。ただし、今は以前に使用したOpenSUSEエントリにアクセスできませんlinux:users
。
> sudo nano /etc/fstab
sudo: unknown uid: 999
...だから、悪い/etc/passwd を直接変更することについて考える:) ここで回避策は、まずルートシェルに移動してコマンドを実行して再起動するようusermod
です.これでOpenSUSE環境で起動しました。
linux@linux:~> stat ~
Access: (0755/drwxr-xr-x) Uid: ( 1000/ linux) Gid: ( 100/ users)
これにより、通常どおりUbuntuファイルシステム/ドライブにアクセスし、OpenSUSEのデフォルトユーザーが所有するすべてのアイテムへの一般的なアクセスも可能になります。
しかし、安全のためにグループIDも変更したいと思います。これを行うための推奨方法は何ですか(上記の議論で正しく行われていない場合は、uidを変更するための推奨方法は何ですか)。
答えてくれてありがとう。
応援します!
答え1
あなたの質問を正しく理解したら、条件付きを使用でき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
詳細については、該当するマンページを参照してください。