web-dev-qa-db-ja.com

Linuxグループのアクセス許可が正しく適用されていません。

私は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」に設定され、グループのアクセス許可が設定されます。

ユーザーがファイルテストファイルに書き込めないのはなぜですか?

18
Gordon

ユーザーを新しいグループに追加すると、現在実行中のプロセスには適用されず、新しいプロセスにのみ適用されます。ログアウトしてから再度ログインする必要があります。

29
Daenyth

ログアウトとサーバーメソッドの再起動の両方が機能しませんでした。

しかし、この方法は私のために働いています:(これへの参照 answer

chmod g+rwxs <parent folder>
5
checksum

コンピューターを再起動して、スタックしたプロセスがログアウトおよびログイン中にユーザーとグループを正しく適用するのを妨げていないことを確認します。

これらの手順により、グループ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があるため、ユーザーはファイルに書き込むことができます。

0
Eric Leschinski

newgrpコマンドを使用して、ユーザーの現在のグループIDを変更できます。から man newgrp

Newgrpコマンドは、ログインセッション中に現在のグループIDを変更するために使用されます。オプションの-フラグを指定すると、ユーザーがログインしたかのようにユーザーの環境が再初期化されます。それ以外の場合、現在の作業ディレクトリを含む現在の環境は変更されません。