linux基础命令--groupmod 修改组定义
描述
- groupmod命令用于修改系统上的组定义。
- groupmod命令通过更改组数据库(the group database)里的相关条目来修改指定的组。
语法
- groupmod [选项] GROUP
选项列表
| 选项(常用的已加粗) | 说明 |
| -g, --gid GID |
给群组指定一个新的GID,即修改组ID。(类似groupadd,-g可和-o选项一起使用,指定一个已存在的GID给目标组) 注意:1.将更新将该组作为主组的用户,且保留该组继续作为用户的主组。 2.任何具有旧组ID且必须继续属于组的文件,都必须手动更改其组ID。 |
| -n, --new-name NEW_GROUP | 指定要更改的组名 |
| -o, --non-unique | 需和-g选项一起使用,允许为指定的组添加一个已存在的GID,即共享一个GID,使该GID不再具备唯一性。 |
| -p, --password PASSWORD | 指定组密码。 |
| -R, --root CHROOT_DIR | 指定在CHROOT_DIR(改变后的根目录)下更改生效以及使用CHROOT_DIR目录下的配置文件。 |
退出值
| EXIT VALUES | 说明 |
| 0 |
执行成功 |
2 |
命令语法错误 |
3 |
无效的选项参数 |
4 |
指定的组不存在 |
9 |
组名已被使用。 |
10 |
无法更新组文件 |
文件
- /etc/group:组账户文件。
- /etc/gshadow:安全的组账户文件
- /etc/login.defs:创建用户和组的定义文件
- /etc/passwd:用户账户信息文件
实例
使用-o和-g选项指定一个已存在的GID给目标组
[root@pople ~]# id anna && id test
uid=(anna) gid=(anna) groups=(anna)
uid=(test) gid=(test) groups=(test)
[root@pople ~]# ls -la /home/anna/ /home/test/ |grep .bashrc
-rw-r--r--. anna anna Oct : .bashrc
-rw-r--r--. test test Oct : .bashrc
[root@pople ~]# groupmod -o -g 1002 test # 指定anna的GID给test,即共享一个GID
[root@pople ~]# id anna && id test
uid=(anna) gid=(anna) groups=(anna)
uid=(test) gid=(anna) groups=(anna) # 可以看到用户test的GID已修改
[root@pople ~]# ls -la /home/anna/ /home/test/ |grep .bashrc
-rw-r--r--. anna anna Oct : .bashrc
-rw-r--r--. test 1003 Oct : .bashrc # 之前的文件的GID不会被修改,需要手动去修改
[root@pople ~]# chown test:anna /home/test/.bashrc # 手动更改.bashrc文件的属组
[root@pople ~]# ls -la /home/anna/ /home/test/ |grep .bashrc
-rw-r--r--. anna anna Oct : .bashrc
-rw-r--r--. test anna Oct : .bashrc # 已更正属组为anna
[root@pople ~]# chown test:test /home/test/.bashrc # 更新文件属组为test,无报错,但文件的属组仍未改变???
[root@pople ~]# ls -la /home/anna/ /home/test/ |grep .bashrc
-rw-r--r--. anna anna Oct : .bashrc
-rw-r--r--. test anna Oct : .bashrc
[root@pople ~]# tail -2 /etc/group # 两个组拥有同样的GID。
anna:x:1002:
test:x:1002:
[root@pople ~]# su - test
[test@pople ~]$ touch tt.txt
[test@pople ~]$ ll tt.txt
-rw-r--r--. 1 test anna 0 Apr 9 17:34 tt.txt # 可以发现切换用户之后创建一个文件,此文件的属组是anna而不是test。
[root@pople ~]# groupmod -n new_name anna # 修改anna的组名为:new_name
[root@pople ~]# tail -2 /etc/group && tail -2 /etc/gshadow
test:x:1002:
new_name:x:1002: # 两个组文件的信息已修改,细心的朋友可以发现修改后的组信息排在最后一行,而test排在前面。
test:!::
new_name:!::
[root@pople ~]# ls -la /home/anna/ /home/test/
/home/anna/:
total 16
drwx------. 2 anna test 83 Apr 4 22:47 . # 可以看到用户anna的当前属组权限已全部自动更改为test
drwxr-xr-x. 5 root root 41 Apr 9 16:57 ..
-rw-------. 1 anna test 9 Apr 4 22:47 .bash_history
-rw-r--r--. 1 anna test 18 Oct 31 01:07 .bash_logout
-rw-r--r--. 1 anna test 193 Oct 31 01:07 .bash_profile
-rw-r--r--. 1 anna test 231 Oct 31 01:07 .bashrc /home/test/:
total 12
drwx------. 2 test 1003 76 Apr 9 17:34 .
drwxr-xr-x. 5 root root 41 Apr 9 16:57 ..
-rw-r--r--. 1 test 1003 18 Oct 31 01:07 .bash_logout
-rw-r--r--. 1 test 1003 193 Oct 31 01:07 .bash_profile
-rw-r--r--. 1 test test 231 Oct 31 01:07 .bashrc # 用户test的属组权限也自动由anna更换为test了。说明对于共享同一个GID的两个用户,文件的属组名取决于组文件里排在前面的那个组,也就是组test。
-rw-r--r--. 1 test test 0 Apr 9 17:34 tt.txt
[root@pople ~]#
总结:
- 如果两个用户共享一个GID为主组,应该先检查任何具有旧组ID且必须继续属于组的文件,都必须手动更改其组ID,否则有可能会导致组ID不一致。
- 如果两个用户共享一个GID为主组,那么新建的文件的属组名称都会优先选择组文件(/etc/group、/etc/gshadow)里排在前面的那个组
linux基础命令--groupmod 修改组定义的更多相关文章
- Linux基础命令---修改组信息grpmod
groupmod 修改组的基本信息,包括组名称.组ID等信息.此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法 gr ...
- 常用的linux基础命令
常用的linux基础命令 1.ls 显示目录属性 -l:(也可以简写成ll),列表显示权限等属性 -a:显示所有文件包括隐藏文件等 -d:只列出目录本身 2.chgrp 改变档案所属群组 eg:chg ...
- Linux基础命令小结(超全!!)
Linux目录结构 1.bin 存放经常使用的指令比如ll,cp 2.sbin 系统管理员使用的系统管理指令 3.home 存放普通用户的住目录 4.root 系统管理员的用户主目录 5.boot 存 ...
- 【Python之路】第一篇--Linux基础命令
pwd 命令 查看”当前工作目录“的完整路径 pwd -P # 显示出实际路径,而非使用连接(link)路径:pwd显示的是连接路径 . 表示当前目录 .. 表示上级目录 / 表示根目录 ls ...
- Linux基础命令和文件权限
Linux命令与文件权限 Linux基础命令 reboot 重启 cd 切换目录 cd .. 回到上一级目录 cd ~ 回到主目录 cd / ...
- Linux基础命令-查看基本硬件信息
Linux基础命令-查看基本硬件信息 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看CPU信息 [root@node101.yinzhengjie.org.cn ~]# l ...
- [转帖]linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习)
linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习) https://www.cnblogs.com/caozy/p/9261224.html 总结的挺好的 ...
- Linux基础命令整合
linux基础命令整理 1.系统相关命令 shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3) shutdown -h hours:minu ...
- day04 Linux基础命令
day04 Linux基础命令 查看帮助信息命令 1.man命令:man命令的功能是查看指定命令的详细解释. 格式:man [具体需要被查看的命令] [root@localhost ~]# man r ...
随机推荐
- 03-django模型(1)
一.内容回顾 1.路由层 a.简单使用 b.有名分组 c.路由分发 d.反向解析 2.视图层 a.HttpRequest对象 常用的属性 常用方法 b.HttpResponse对象 响应三剑客 3.模 ...
- jquery 第二章
1.本章目标 css样式 选择器2.css样式 宽.高.边框.背景颜色.字体....... <html> <head> <style> div{ ...
- 20165328 实验四《Andriid应用开发》实验报告
一.实验一:Andriod Stuidio的安装测试: 实验要求: 参考 ...
- Windows下多个Mysql实例配置主从(转)
https://www.cnblogs.com/jpfss/p/8143720.html 序: 网上有很多类似的文章,也是各种百度出来的,但是对于多数刚开始接触MYSQL主从的小白来说,网上文 ...
- IP网际协议
IP分类 IP地址分为网络号和主机号,5类不同的IP地址格式如下: A类地址每个网段内最多有224个,也就是16,777,214个. B类地址每个网段内最多有216个,也就是65535个. C类地址每 ...
- 咸鱼入门到放弃9--jsp中使用的JavaBean
一.什么是JavaBean JavaBean是一个遵循特定写法的Java类,它通常具有如下特点: 这个Java类必须具有一个无参的构造函数 属性必须私有化. 私有化的属性必须通过public类型的方法 ...
- ajax的xmlHttpRequest异步请求和Springmvc的sendRedirect失效问题
参考: Ext 提交表单用的异步提交Ajax.Ajax在发送请求时后台返回的数据(json或者html页面)在其回调函数中处理. 你这个相当于后台把Center_right.jsp页面已经返回给前台 ...
- Imcash:比特币减半 四年机遇你能否抓住?
减半到底是什么? 2010来,比特币已有4次下跌幅度达70%或更高. 2012年的11月份比特币减半,诞生了一次上涨10倍有余的超级牛市. 2016年7月,历史又是如此的相似,比特币产量又迎来了减半, ...
- Python退火算法在高次方程的应用
一,简介 退火算法不言而喻,就是钢铁在淬炼过程中失温而成稳定态时的过程,热力学上温度(内能)越高原子态越不稳定,而温度有一个向低温区辐射降温的物理过程,当物质内能不再降低时候该物质原子态逐渐成为稳定有 ...
- opencv coudn't find video stream from "XXX(文件名)"
opencv coudn't find video stream from "XXX(文件名)" 我用的是clion 解决方法: 把路径设为完整路径,如"C:/XXX&q ...