C SHELL - 修改默认群组

2024-03-29 07:32
文章标签 shell 默认 修改 群组

本文主要是介绍C SHELL - 修改默认群组,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

C SHELL - 修改默认群组

需求描述

用户发现有些存储有16群组数量的限制,不改变存储与挂载的情况下,排在17th以及以后的群组如何能提前使得用户有权限访问对应的项目数据?

需求分析

将需求总结一下:如何修改默认群组?

需求解决

方式一
假设用户信息存储在域控,并且服务器使用该域控进行认证,则在域控修改对应的default shell信息即可;

方式二
假设用户信息存储在本机,并且服务器使用本机认证,则修改/etc/passwd对应条目中的default shell信息即可;

方式三
假设因各种原因,用户无法(或无法立即)修改,则可以在自己的初始化文件中,加上一段切换群组的代码,以使得新shell下的primary group是自己期望的group。以C SHELL为例,我预期的group名称为stapusr,则在.cshrc中添加以下代码

set current_group=`id -g -n`
set expect_group="stapusr"
if ( $current_group != $expect_group ) thenecho "Changing group with newgrp."newgrp $expect_group
endif
unset current_group expect_group

值得注意的是,我们在这里判断了是否已是期望群组,如果是否则执行newgrp命令。为什么我们要做这个判断?我们查看以下newgrp命令手册,
在这里插入图片描述重点是log in,它是一个登陆shell(是已有进程的子进程),登陆时会读取对应的初始化文件。如C SHELL就会读取~/.cshrc文件。假设没有判断,则登陆时,newgrp执行log in,log in会读取~/.cshrc,读取这个文件又执行newgrp命令log in,如此反复。直到进程数量达到上限或者堆栈溢出,或者shell自有的报错。

报错示例

假设在~/.cshrc文件中只加newgrp stapusr,将导致报错,如下所示
在这里插入图片描述

参考文档

  • newgrp手册。

相关文章

  • 存储16群组限制的解决方法: https://blog.csdn.net/thesre/article/details/116947637

这篇关于C SHELL - 修改默认群组的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/857988

相关文章

Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧

《Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧》本文将通过实际代码示例,深入讲解Python函数的基本用法、返回值特性、全局变量修改以及异常处理技巧,感兴趣的朋友跟随小编一起看看... 目录一、python函数定义与调用1.1 基本函数定义1.2 函数调用二、函数返回值详解2.1 有返

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

c++ 类成员变量默认初始值的实现

《c++类成员变量默认初始值的实现》本文主要介绍了c++类成员变量默认初始值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录C++类成员变量初始化c++类的变量的初始化在C++中,如果使用类成员变量时未给定其初始值,那么它将被

shell中set -u、set -x、set -e的使用

《shell中set-u、set-x、set-e的使用》本文主要介绍了shell中set-u、set-x、set-e的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录✅ 1. set -u:防止使用未定义变量 作用: 示例:❌ 报错示例输出:✅ 推荐使用场景:✅ 2. se