Linux 下用户、组讲解及添加

    在Linux系统中,用户和组的相关权限是Linux系统管理的基本内容。只有在特定用户、组和相对应的权限下,Linux系统才能更好更安全的运行。

    针对这部分内容,我在培训学习时根据自己整理的笔记总结如下:

创建组和用户:


1.创建组


组的定义:是权限的集合

创建组的命令:groupadd

例如:

groupadd abc


在组创建成功后,用如下命令查看已创建的组:

tail -l /etc/group


指定组的id也就是gid:

groupadd -g 1001 abcde

gid建议指定500以上的,500以下的可能系统已经用了,如果没有指定gid,那么默认gid会是你创建的上一个组的gid顺延值

继续创建oinstall组和dba组,gid也按顺序指定(gid可以自己定义)

[root@vastedu home]# groupadd -g 1002 oinstall
 [root@vastedu home]# groupadd -g 1003 dba

组创建好是没有任何权限的,给组添加权限会在后面介绍



2.创建用户

在组创建好之后再创建用户:

首先用tail命令查看/etc/passwd文件查看系统现有的一些用户,tail命令默认查看后10行。


[root@vastedu home]# tail -l /etc/passwd
 abrt:x:173:173::/etc/abrt:/sbin/nologin
 haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
 gdm:x:42:42::/var/lib/gdm:/sbin/nologin
 pulse:x:497:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
 tcpdump:x:72:72::/:/sbin/nologin
 test:x:1002:1002::/home/test:/bin/bash
 test2:x:1003:1002::/home/test2:/bin/bash
 test1:x:1008:1009::/home/test1:/bin/bash
 
test3:x:1100:2001::/home/test3:/bin/bash
id加用户:如id test3
此命令是查看用户test3的uid、gid等
[root@vastedu home]# id test3
 uid=1100(test3) gid=2001(dbdeep) groups=2001(dbdeep),1002(oinstall),1003(dba)

下面添加用户:

其中需要注意,给用户自己手动分配的id不要与现有的用户uid重复,一般建议设置成500以后的

下面就具体添加一个用户,就以添加用户test4为例:


[root@vastedu home]# useradd -u 1200 -g oinstall test4


其中命令中定义的参数具体意义如下:

-u:指定uid


-g:指定gid,是指定主组,只能有一个主组

[root@vastedu home]# id test4
 uid=1200(test4) gid=1002(oinstall) groups=1002(oinstall)

因有时环境不同,需要将一个用户加到不同的组里,其中一个为主组,其他为辅组。


具体追加辅组命令如下:

首先查看现有组:

[root@vastedu home]# tail -l /etc/group
 stapdev:x:158:
 sshd:x:74:
 tcpdump:x:72:
 slocate:x:21:
 oinstall:x:1002:test3
 dba:x:1003:test,test3
 abc:x:1009:
 dbdeep:x:2001:
 ddd:x:2002:
 ddddd:x:2003:

接着根据用户管理内容不同,将用户加到不同的辅组里,命令如下:

给test1用户追歼辅助组:
usermod -aG dba test4
-aG 和 -a -G 一样
-a是追加,-G是辅组

[root@vastedu home]# id test4
 uid=1200(test4) gid=1002(oinstall) groups=1002(oinstall),1003(dba)

通过id test4命令就可查看到用户test4已经属于主组oinstall辅组dba组了。

或者直接通过一条命令在创建用户的同时,将用户加到主组和辅组:

[root@vastedu home]# useradd -u 1012 -g oinstall -G dba test6
 [root@vastedu home]# id test6
 uid=1012(test6) gid=1002(oinstall) groups=1002(oinstall),1003(dba)


-G 后面跟的是要加的辅组,可以跟多个,需要用逗号隔开,-g后面的是主组


注意:在安装oracle RAC 时,两边gid和uid都得一样



3.组和用户的删除

注意:此操作一定要慎重,生产系统中建议不使用的用户进行锁定处理,不建议删除操作,但为了学习,需牢记这块内容,避免出错。

首先查看etc下的passwd文件和group确定所以得用户和组,确定好要删除的用户和组,一定要慎重!!!

[root@vastedu home]# cat /etc/passwd
pulse:x:497:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
 tcpdump:x:72:72::/:/sbin/nologin
 test:x:1002:1002::/home/test:/bin/bash
 test3:x:1100:2001::/home/test3:/bin/bash
 test7:x:1013:1002::/home/test7:/bin/bash[root@vastedu home]# cat /etc/group


stapdev:x:158:
 sshd:x:74:
 tcpdump:x:72:
 slocate:x:21:
 oinstall:x:1002:test3
 dba:x:1003:test,test3,test4,test5,test6,test7
 abc:x:1009:test7
 dbdeep:x:2001:
 ddd:x:2002:


ddddd:x:2003:




以删除用户test7和组dba为例:

首先进行用户删除,执行命令如下:

[root@vastedu home]# userdel test7
 [root@vastedu home]# id test7
 id: test7: No such user


再进行删除组:

groupdel + 组名 
[root@vastedu home]# id test3
 uid=1100(test3) gid=2001(dbdeep) groups=2001(dbdeep),1002(oinstall),1003(dba)
 [root@vastedu home]# groupdel dba
 [root@vastedu home]# id test3
 uid=1100(test3) gid=2001(dbdeep) groups=2001(dbdeep),1002(oinstall)
 [root@vastedu home]# tail -l /etc/group
 stapusr:x:156:
 stapsys:x:157:
 stapdev:x:158:
 sshd:x:74:
 tcpdump:x:72:
 slocate:x:21:
 oinstall:x:1002:test3
 dbdeep:x:2001:
 ddd:x:2002:
 ddddd:x:2003:[root@vastedu home]# groupdel dbdeep
 groupdel: cannot remove the primary group of user 'test3'
 [root@vastedu home]#

通过执行删除命令你会发下,有以下两点需要注意:

1)若删除的组是辅助组,可以直接删除

2)若删除的组是其他用户的主组,你会发下会报错,不能删除

那么出现主组不能删除情况需要怎么解决呢?

首先你需要将该组作为主组的用户删除,然后才能删除该组,但任何情况下,除了自己测试机,不会进行盲目的删除操作,所以一定要注意。