私はUbuntu10.04サーバーを実行していて、ユーザー/グループで非常に直感に反する経験をしています。例えば:
Sudo touch test_file # create empty file
Sudo groupadd test # create 'test' group
Sudo chown root:test test_file # change group of file to 'test'
Sudo chmod g+rwx test_file # give write permissions to group
Sudo usermod -a -G test {my-user} # add my user to 'test' group
touch test_file # touch the file as my current user
最後の行で権限エラーが発生します。
ユーザーが「テスト」グループの一部であることを確認しました(groups {my-user}
これを確認します)。 test_fileのグループも確実に「test」に設定され、グループのアクセス許可が設定されます。
ユーザーがファイルテストファイルに書き込めないのはなぜですか?
ユーザーを新しいグループに追加すると、現在実行中のプロセスには適用されず、新しいプロセスにのみ適用されます。ログアウトしてから再度ログインする必要があります。
コンピューターを再起動して、スタックしたプロセスがログアウトおよびログイン中にユーザーとグループを正しく適用するのを妨げていないことを確認します。
これらの手順により、グループtest
のユーザーにtest_file
への書き込み権限が付与されます。
Sudo touch test_file
Sudo groupadd test
Sudo chown root:test test_file
Sudo chmod g+rwx test_file
Sudo usermod -a -G test {my-user}
コンピュータを再起動するか、ユーザーのオペレーティングシステムからログアウトします。端末の再起動だけでは不十分です。
touch test_file
このファイルは「test」グループの一部であり、グループには権限rwxがあるため、ユーザーはファイルに書き込むことができます。
newgrp
コマンドを使用して、ユーザーの現在のグループIDを変更できます。から man newgrp
:
Newgrpコマンドは、ログインセッション中に現在のグループIDを変更するために使用されます。オプションの
-
フラグを指定すると、ユーザーがログインしたかのようにユーザーの環境が再初期化されます。それ以外の場合、現在の作業ディレクトリを含む現在の環境は変更されません。