web-dev-qa-db-ja.com

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

Ubuntuサーバーでは、ユーザーをグループに追加した後、システムを再起動するまでそのユーザーにはグループ権限がないことに気づきました。例えば:

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

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

26

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

他の人が恩恵を受けることができるように、私は実際にソリューションを提供すると思いました。ログインとログアウトは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

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

シンプルな $groups CLIから確認すると、ユーザーがグループに属していることが示されます。そして、そのグループからの必要な特権を使用した迅速な実行が機能します。

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

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

25
TryTryAgain

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

19
Scott Pack

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

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

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

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

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

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

id

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

su - $USER

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

id

新しいグループがアクティブになっていることがわかります。

4
wikrie

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

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

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

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を使用して変更をマージするには(これを https://serverfault.com/a/389719/983 から取得します)

1
tripleee