ユーザーを新しいグループに追加した後、権限を更新するには再起動が必要ですか?


26

ubuntuサーバーで、ユーザーをグループに追加した後、システムを再起動するまでそのユーザーはグループのアクセス許可を持たないことに何度も気付きました。例えば:

ユーザー「hudson」にはディレクトリ「root:shadow / etc / shadow」を読み取る権限が必要です。そのため、シャドウグループにhudsonを追加します。ハドソンはまだ読むことができません。したがって、私は「sudo shutdown -h -r now」を実行し、システムが再び起動したときにユーザーhudsonが読み取ることができます。

再起動が必要ですか、またはユーザーをグループに追加した後にアクセス許可を適用するより良い方法がありますか?


将来の参考のために、実際のソリューションを以下に追加しました。これが問題だったことに驚いた。お役に立てば幸いです。
-TryTryAgain

回答:


25

私は解決策を探していましたが、この投稿に出くわし、後で見つけました!

他の人が利益を得ることができるように、実際に解決策を提供すると思っていました。ログインとログアウトは1995年です。

から取得:

https://arkaitzj.wordpress.com/2010/03/08/linux-add-user-to-a-group-without-logout/

したがって、cdromグループのアクセス許可を取得する必要がある場合は、ユーザーを次の場所に追加します。

newgrp cdrom 

例えば

したがって、手順は次のようになります。

#adduser my_user cdrom

その後

$newgrp cdrom

動作することを確認しました。

$groupsCLIからの簡単なチェックは、ユーザーがグループに属していることを示します。そして、そのグループからの必要な特権での迅速な実行が機能します。

あなたの窓を殺し、ログインとログアウトする必要はありません!他の人に役立つことを願っています!

追加情報(jytouの有益なコメントに基づく):「[この]ソリューションは現在開いているシェルでのみ機能します。別のシェルを開いている場合は、同じコマンドを使用して変更を考慮する必要があります。」


1
それは素晴らしい、それは本当に機能します!!! :D
dadexix86

3
TryTryAgainのソリューションは、現在開いているシェルに対してのみ機能することに注意してください。別のシェルを開いている場合は、同じコマンドを使用して変更を考慮する必要があります。
-jytou

とにかく、実行中のXセッションでそれを行うには?
artfulrobot

@artfulrobotごめんなさい、私はあなたが何を意味するのか正確にはわかりません。新しい質問を開いて、この投稿と解決策を参照してください。
TryTryAgain

19

新しいグループにユーザーを追加する場合、ユーザーはログアウトしてからログインし直して、グループを有効にする必要があります。再起動はそれを達成しますが、必須ではありません。


パッケージのインストール時にaptitudeによって作成されたユーザーをログアウトするにはどうすればよいですか?
マイケルプレスコット

どのパッケージがhudsonユーザーを作成しますか?
ワンブル

ジャスティンが答えたように、サービスを停止して開始してみてください。
スコットパック

これが私がすることです。単純にログアウトして再度ログイン。
トレントスコット

ありがたいことに、実際にログアウトしてから再度ログインする必要はありません。以下に実用的なソリューションを提供しました。テスト済み、幸せ!
-TryTryAgain

8

ユーザーをグループに追加しても、現在ログインしているユーザーには影響しません。

デーモンの場合、新しいグループを適用するには、デーモンを再起動する必要があります。

さらに、デーモン自体のオプションを使用してデーモンを再起動すると、現在の環境が継承されるため機能しません。

動作させるための最も簡単な方法は、デーモンを完全に停止してから再起動することです。

/etc/init.d/foo stop ; /etc/init.d/foo start

4

はるかに簡単です。次のように入力して、現在のアクセスレベルを確認できます。

id

必要なグループをリロードするには:

su - $USER

その後、アクセスレベルを再度確認します。

id

新しいグループがアクティブになります。


1

ここで対処する必要がある別の障害モードがあります。

管理者が更新した/etc/groupが更新に失敗した場合/etc/gshadow(このセットアップがあるシステムで)、ログアウトしてから再度ログインしても、実際には新しいグループに割り当てられません。

紛らわしいことに、groups実際の現在の状況idが表示されますが、適切にグループのメンバーであることを示す出力が誤って印刷されます。

tripleee@vbvntv$ groups
tripleee

tripleee@vbvntv$ id
uid=1234(tripleee) gid=1234(tripleee) groups=1234(tripleee),4(adm)

tripleee@vbvntv$ ls -l /var/log/mail.log
-rw-r----- 1 root adm 15728 May 26 14:26 /var/log/mail.log

tripleee@vbvntv$ tail /var/log/mail.log
tail: cannot open `/var/log/mail.log' for reading: Permission denied

newgrpパスワードを要求するため使用できません。パスワードはなく、SSH公開キー認証しかありません。

解決策は、管理者がの手動編集を元に戻してから、/etc/groupsもう一度編集することsudo gpasswd -a tripleee admです。またはgrpconv、変更をマージするために使用する(/server//a/389719/98333から取得)


実際、実際の問題は、SSHマスターセッションを再利用していたことでした。ControlPathソケットを削除して再度ログインすることでこれを切断し、問題を解決しました。
トリプリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.