Shell/Bash代码信息

运行结果
教程手册
代码仓库
极速运行
交互输入
极速运行模式,不支持键盘输入语句但是拥有更高的运行速度,输出简洁明了 。 点击编辑器上方的运行按钮即刻体验吧。
以下是用户最新保存的代码
shell脚本方式启动Tomcat服务 发布于:2021-03-02 13:59 九九乘法表 发布于:2021-02-24 19:27 shell 基本用法记录 发布于:2021-01-29 11:02 监控cpu、内存,并且告警 发布于:2021-02-04 16:02 接口测试shell脚本 发布于:2021-01-13 16:56 自动生成openssl证书 发布于:2021-01-12 14:23 curl auth ter global 发布于:2020-09-22 11:32 截取命令结果/后面字符 发布于:2020-09-02 08:55 linux- 1.查看系统信息 发布于:2020-08-06 16:26 v2ray-shell 发布于:2020-09-21 16:13 ubuntu 常用命令 发布于:2020-02-22 17:09 又来测试了 发布于:2019-12-25 10:39 The first project of shell 发布于:2019-05-17 14:51 Shell/Bach 时间戳 发布于:2019-04-03 14:17 linux命令查询cpu、内存信息 发布于:2019-02-24 18:59 [更多]
显示目录

newgrp 命令-切换用户组

newgrp 命令

newgrp 命令可以从用户的附加组中选择一个群组,作为用户新的初始组。

基本格式

[root@localhost ~]# newgrp 组名

具体用法和功能:

首先,建立 3 个用户组 group1、group2 和 group3,命令如下:

[root@localhost ~]# groupadd group1
[root@localhost ~]# groupadd group2
[root@localhost ~]# groupadd group3

示例

创建一个用户 user1,同时指定 user1 的初始组为 group1,附加组为 group2 和 group3,执行命令如下:

[root@localhost ~]# useradd -g group1 -G group2,group3 user1
#由于指定了初始组,因此不会在创建 user1 默认群组
[root@localhost ~]# more /etc/group | grep user1
group2:x:501:user1
group3:x:502:user1

对用户 user1 设置密码,执行命令如下:

[root@localhost ~]# passwd user1
Changing password for user user1.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

切换至 user1 用户

通过 newgrp 切换用户组进行下列操作,读者可从中体会出 newgrp 命令的作用。

#切换至 user1 用户
[root@localhost ~]# su - user1
[root@localhost ~]# whoami
user1
#使用 newgrp 命令一边切换 user1 的初始组,一边创建文件
[root@localhost ~]# mkdir user1_doc
[root@localhost ~]# newgrp group2
[root@localhost ~]# mkdir user2_doc
[root@localhost ~]# newgrp group3
[root@localhost ~]# mkdir user3_doc
#查看各文件的详细信息
[root@localhost ~]# ll
total 12
drwxr-xr-x 2 user1 group1 4096 Oct 24 01:18 user1_doc
drwxr-xr-x 2 user1 group2 4096 Oct 24 01:18 user2_doc
drwxr-xr-x 2 user1 group3 4096 Oct 24 01:19 user3_doc

使用 newgrp 命令通过切换附加组成为新的初始组,从而让用户获得使用各个附加组的权限。

newgrp命令的底层实现

其实,newgrp 命令每一次切换用户的初始组,该用户都会以另外一个 shell(新进程,也可以说是子进程)登陆,只不过在新 shell 上登陆的该用户,其初始组改变了而已。

通过添加 shell 内置命令 "echo $$" 就可以发现,每次使用 newgrp 命令,都会切换到一个新的进程。
由JSRUN为你提供的Shell/Bash在线工具
        JSRUN提供的Shell/Bash在线运行,Shell/Bash 在线编译工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。

title

使用此草稿 删除草稿

皮肤:

运行模式:

嵌入代码 iframe嵌入: