精通Linux系列二十一:用户组管理
点击关注公众号,AI&编程干货及时送达
用户组管理
命令 | 含义 |
groups | 打印用户的组成员身份。 |
groupadd | 创建一个用户组。 |
groupdel | 删除一个用户组。 |
groupmod | 修改一个用户组。 |
用户组是被视为一个实体的一组账户。如果你给一个组赋予某种操作的权限(比如修改一个文件),那么该组的所有成员都能执行这个操作。例如,你可以给friends
(朋友们)这个组对*/tmp/sample*文件的读、写、执行权限全都开放:
→ groups
users smith friends
→ chgrp friends /tmp/sample
→ chmod 770 /tmp/sample
→ ls -l /tmp/sample
-rwxrwx``` 1 smith friends 2874 ... /tmp/sample
要把用户添加到一个组,你需要以root身份编辑*/etc/group*文件。要改变一个文件的组归属,回忆一下chgrp
(改变文件组归属)命令,可以参考[“文件属性”]一节。
groups
stdin stdout - file -- opt --help --version
groups [usernames]
groups
(组)命令可以打印出你所属的Linux组,或者其他用户所属的组:
→ whoami
smith
→ groups
smith users
→ groups jones root
jones : jones users
root : root bin daemon sys adm disk wheel src
groupadd
stdin stdout - file -- opt --help --version
groupadd [options] group
groupadd
(添加组)命令用来创建一个组。在大多数情况下,你应该使用-f
选项来防止创建重复的组:
→ sudo groupadd -f friends
常用选项
-g gid | 你可以指定你自己的数字组ID,而不是让groupadd 来选择。 |
-f | 如果指定的组已经存在,会报错并退出。 |
groupdel
stdin stdout - file -- opt --help --version
groupdel group
groupdel
(删除组)命令可以删除一个已经存在的组:
→ sudo groupdel friends
在执行这个操作之前,最好找出所有设为指定组的文件,这样你可以稍后处理这些文件:
→ sudo find / -group friends -print
因为groupdel
并不会改变任何文件的组归属。它只是从系统记录中删除了组名称。如果你列出这些文件,你会看到一个数字组ID代替组名。
groupmod
stdin stdout - file -- opt --help --version
groupmod [options] group
groupmod
(修改组)命令可以修改指定的组,改变它的名称或者组ID:
→ sudo groupmod -n newname friends
groupmod
并不会影响任何由这个组拥有的文件:它只是在系统记录中改变了ID或者名称。当改变ID的时候要特别小心,否则这些文件会被一个不存在的组拥有。
常用选项
-n name | 把组的名称改为*name *(安全)。 |
-g gid | 把组的ID改为*gid *(风险)。 |
推荐阅读
你好,我是拾叁,7年开发老司机、互联网两年外企5年。怼得过阿三老美,也被PR comments搞崩溃过。这些年我打过工,创过业,接过私活,也混过upwork。赚过钱也亏过钱。一路过来,给我最深的感受就是不管学什么,一定要不断学习。只要你能坚持下来,就很容易实现弯道超车!所以,不要问我现在干什么是否来得及。如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯和编程知识,帮你积累弯道超车的资本。