Ubuntu 11.04を使用しています。別のユーザーを作成し、既存のユーザーを別のユーザーグループに配置し、別のユーザーのホームディレクトリに書きたいと思います。
# uname -a
Linux vini 2.6.38-11-generic #50-Ubuntu SMP Mon Sep 12 21:18:14 UTC
2011 i686 athlon i386 GNU/Linux
# whoami
sachin
# su root
# useradd -m -U foo // create user foo
# usermod -a -G foo sachin // add user `sachin' to group `foo'
# chmod 770 /home/foo/
# exit
# whoami
sachin
# cd /home/foo/
bash: cd: /home/foo/: Permission denied
# groups sachin
sachin : sachin foo
本当に変です。ユーザー sachin が foo グループにあり、/home/foo/ のグループビットが rwx に設定されていても、 sachin は /home/foo/ に chdir を設定できません。私はこれを理解できません。
ただし、終了フェーズ中にrootからsachinユーザーに切り替えると、次のことが起こります。
# uname -a
Linux vini 2.6.38-11-generic #50-Ubuntu SMP Mon Sep 12 21:18:14 UTC
2011 i686 athlon i386 GNU/Linux
# whoami
sachin
# su root
# useradd -m -U foo // create user foo
# usermod -a -G foo sachin // add user `sachin' to group `foo'
# chmod 770 /home/foo/
# su sachin
# whoami
sachin
# cd /home/foo/
# ls
examples.desktop
今、ここで何が起こっているのかを完全に理解することはできません。 su sachinのこのステップは、rootユーザーの権限の一部を継承しますか?
newgrp
推奨される回避策は、グループやその他のユーザー情報を更新することを使用することです。これにより、newgrp - sachin
新しく作成されたユーザーディレクトリにアクセスできますが、別のユーザーを作成して同じ手順を実行すると、sachin
最新のユーザーディレクトリにアクセスできなくなります。
このような行動は本当に恥ずかしいです。
どんな説明でもよろしくお願いします。
答え1
現在のログインシェルプロセスは、以前のグループ構成を維持します。特に出力を比較します。
groups sachin
そして
groups
。ログアウトしてログインすると、違いは消えます。
不明な理由で再度ログインできない場合は、これらのnewgrp
。内部的には、newgrp
新しいプロセス層で「再ログイン」のみを実行します。ログアウトする場合は、newgrpコンテンツの実行中にCtrl-Dを頻繁に押す必要があります。
または、内部レイヤーを終了してnewgrp
に戻ることもできますusermod
。その後、現在のグループセットに再度アクセスできます。