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


18

私はUbuntu 10.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ファイルに書き込めないのはなぜですか?

回答:


29

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


4
またはsu - username、実行中のコンソールにハックします。この方法でログインするためにログアウトする必要はありません:)
マティアスkrull

5

ログアウトとサーバーの再起動の両方の方法がうまくいきませんでした。

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

chmod g+rwxs <parent folder>

1
この+s部分は何をしますか?ありがとう。
-tommy.carstensen

1
setuidビットを設定します。これにより、ファイルの所有者としてファイルを実行できます。rootとして実行したいファイルがあり、そのファイルを実行している人が誰であろうと、そのファイルにsetuidビットを設定するとします。
ジュリアス

重要なのはx、実行するには実行権限が必要なように見えるtouchことです。
asac-モニカの復活

0

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

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


1
これには、現在のグループを置き換える効果もあります。常に良いアイデアとは限りません。
デニス

できればこれをダウン票します。グループを上書きすると、将来非常にイライラする可能性があります...特に。-Rオプション!
エドワード

0

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

これらの手順では、グループ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

ユーザーはファイルが「テスト」グループの一部であり、グループに許可rwxがあるため、ファイルに書き込むことができます。


3
コンピューターを再起動する必要はありません。
ケビンパンコ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.