[software development] deepin的多用户版本,添加新用户组后不重启能否立即生效
Tofloor
poster avatar
183******52
deepin
2025-01-22 11:04
Author

deepin的多用户版本上,给某个用户添加了新的用户组。

想要立即生效需要重启操作系统,有其他办法可以不重启操作系统,使其所属的用户组权限立即生效吗?

Reply Favorite View the author
All Replies
raspbian
deepin
2025-01-22 11:29
#1

是的,你不需要重启整个操作系统来让用户组的更改立即生效。在 Deepin 或其他 Linux 系统上,你可以使用以下方法来让用户组权限立即生效,而无需重启:

方法一:使用 newgrp 命令

newgrp 命令可以让你在当前会话中切换到新的用户组。

  1. 打开终端:
*   以需要更新用户组权限的用户身份打开终端。
  1. 使用 newgrp 命令:
```bash
newgrp <新的用户组名称>


例如,如果你的用户被添加到 mygroup 用户组,则执行:



newgrp mygroup


  • 这个命令会创建一个新的 shell 会话,该会话具有新的用户组权限。


  • 注意: 这只会影响当前终端会话,其他已经打开的终端会话仍然使用旧的用户组权限。




3.  **验证用户组权限:**

groups


  • 这个命令会显示当前用户所属的所有用户组。


  • 确保新的用户组已经显示在列表中。




**方法二:使用 `sg` 命令**



`sg` 命令可以让你以指定用户组的身份执行命令。



1.  **打开终端:**

  • 以需要更新用户组权限的用户身份打开终端。




2.  **使用 `sg` 命令:**

sg <新的用户组名称> <命令>


例如,如果你想以 mygroup 用户组的身份执行 ls -l 命令,则执行:



sg mygroup ls -l


  • 这个命令会以指定用户组的身份执行指定的命令。


  • 注意: 这只会影响当前命令的执行,不会影响当前终端会话的用户组权限。




**方法三:重新登录用户**



重新登录用户会重新加载用户的会话,包括用户组权限。



1.  **注销当前用户:**

  • 注销当前用户,或者切换到其他用户。




2.  **重新登录用户:**

  • 重新登录需要更新用户组权限的用户。




**方法四:使用 `su` 命令切换用户**



`su` 命令可以让你切换到其他用户,包括当前用户。



1.  **打开终端:**

  • 以需要更新用户组权限的用户身份打开终端。




2.  **使用 `su` 命令切换用户:**

su - <当前用户名>


例如,如果当前用户名为 user1,则执行:



su - user1


  • 这个命令会重新加载当前用户的会话,包括用户组权限。


  • 注意: 这会创建一个新的 shell 会话,该会话具有新的用户组权限。




**方法五:使用 `exec bash -l` 命令**



`exec bash -l` 命令可以重新加载当前 shell 会话。



1.  **打开终端:**

  • 以需要更新用户组权限的用户身份打开终端。




2.  **执行 `exec bash -l` 命令:**

exec bash -l


  • 这个命令会重新加载当前 shell 会话,包括用户组权限。




**总结:**



*   **`newgrp` 命令:** 适用于在当前终端会话中切换到新的用户组。

*   **`sg` 命令:** 适用于以指定用户组的身份执行命令。

*   **重新登录用户:** 适用于全局更新用户组权限。

*   **`su` 命令:** 适用于重新加载当前用户的会话。

*   **`exec bash -l` 命令:** 适用于重新加载当前 shell 会话。



**推荐方法:**

​

* 如果你只需要在当前终端会话中使用新的用户组权限,可以使用 `newgrp` 命令。

*   如果你需要全局更新用户组权限,可以使用重新登录用户的方法。

*   如果你需要在脚本中以指定用户组的身份执行命令,可以使用 `sg` 命令。



希望这些信息对你有所帮助!
Reply View the author
HOMS
deepin
2025-01-22 11:56
#2

这么复杂,那我还是认为重启一下电脑简单多了

Reply View the author