一、创建用户
管理员用户可以为Linux系统创建用户,其基本命令和相关选项如下表:
# useradd USERNAME 或者是
# adduser USERNAME
选项名用法
-u UID指定用户ID,有效范围0-65535
-g GID指定用户的组ID,有效范围为已有的GID
-c COMMENT指定用户的注释信息,没有特定的要求
-d PATH通常和-m一起使用,用来指定用户的家目录
-m必须为用户强制创建家目录
-M不为用户创建家目录
-r创建系统用户, ID号范围为1-499之间的用户
-s PATH更改用户默认使用的shell语言
-G GID指定用户的组ID,有效范围为已有的GID;可以有多个,用逗号分隔
下面我们来一一举例介绍创建用户的命令和选项:
1.按默认法则创建用户
# useradd/adduser USERNAME
此命令可以创建一个新用户,通常情况下,创建用户的同时,系统会自动创建一个和用户同名的组,这个组为用户的私有组,一般而言只有用户一人使用。例如我们创建用户tom可以使用:
# useradd tom
使用 tail命令可以查看新创建的用户的相关信息:
# tail -1 /etc/passwd
运行上述命令,显示出的是用户的基本信息,以冒号为分隔符,分开的小段是用户的属性:
Account:Password:UID:GID:Comment:Home:ShellAccount:Password:UID:GID:Comment:/home/USERNAME:PATH/Shell
用户名密码占位符,密码不存在这里,而是放在/etc/shadow中,通常显示为x用户ID用户所属的组ID(基本组)用户的注释信息,可以由多个,逗号隔开,如电话等用户的家目录用户默认使用的shell语言的路径
# tail -1 /etc/shadow
# tail -1 /etc/group
# tail -1 /etc/gshadow
创建用户是系统会默认为用户创建相关的属性信息。默认情况下,用户的ID从500开始,由“上一个用户的UID+1”得到,组ID也是由相同的方式得到。
如我们再创建一个用户,并查看其用户属性信息:
# useradd hadoop
# tail -1 /etc/passwd
通常情况下,如果没有为用户指定基本组,且其UID相同的GID未被占用,则UID和GID相同;但若有一个组已经占据了和UID相同的GID,则可能出现GID与UID不一致的情况。
创建用户的默认法则可以归纳为:
UID:已有最大UID+1
GID:已有最大GID+1
注释信息:默认为空
家目录:/home/USERNAME,与用户名同名
Shell:/bin/bash,此为bash的全路径
2.定制创建用户
不使用默认法则创建用户也是可以的,通过添加选项,我们可以定制用户的创建属性。
使用-u来指定用户的UID,UID的范围是0-65535, 注意,UID不能重复,例如:
# useradd -u 1000 ubuntu
# tail -3 /etc/passwd
使用 -g来指定用户的GID,GID的有效范围必须是已经存在的GID,例如:
# useradd -g 1001 debian //此命令会报错,因为GID 1001不存在
使用-c 来指定用户的注释信息,此命令没有特定的要求,例如:
# useradd -c“Linux Distribution”gentoo
使用 -d选项来指定用户的家目录,注意,家目录的基名如果不存在,系统会自动创建一个,但是家目录的路径必须存在,例如:
# useradd -d /tmp/user/user1 slackware
此命令会报错,因为/tmp/user不存在,正确的操作方式应该是:
# mkdir /tmp/user
# useradd -d /tmp/user/user1 slackware
创建用户时,上述选项可以组合使用,例如我们想同时为用户指定UID和 注释,可以使用以下命令:
# useradd -c“Light Weight Distribution”-u 2000 archlinux
使用 -r选项可以创建系统用户,系统用户的UID号范围为1-499,例如:
# useradd -r sysuser
# tail -1 /etc/passwd
# ls /hom
注意,系统用户有家目录的路径,但是当我们使用 ls命令查看,就会发现系统用户的家目录并不会真正被创建
使用 -m选项可以为用户强制创建家目录,例如我们想为系统用户创建家目录时,可以用此选项:
# useradd -rm sysuser1
# tail -1 /etc/passwd
# ls /hom
使用-M 选项则是强制不为用户创建家目录,例如:
# useradd -M hbase
# !tail
# ls /home
使用 -s选项可以用来指定用户的默认shell,-s选项后面的参数是shell所在的路径,例如:
# useradd -s /bin/csh bsd
# tail -3 /etc/passwd
使用 -G选项可以为用户创建附加组。-G选项的参数有效范围为已有的GID,可以创建多个,以逗号隔开,例如:
# groupadd agrp
# groupadd bgrp
# useradd -G agrp,bgrp moregrp
# id moregrp
二、创建组
创建的组的方式和创建用户基本相同,其基本命令为:
# groupadd GROUPNAME
例如我们想创建组testgrp,可以输入:
# groupadd testgrp
我们可以通过tail命令来查看/etc/group的文件内容,以了解组的相关信息:
# tail /etc/group
行上述命令,显示出的是组的基本信息,以冒号为分隔符,分开的小段是组的属性:
Group_Name:Password:GID:User_ListGroup_Name:Password:GID:Uer_List
组名密码占位符,通常显示为x组ID以此组为额外组的用户列表,用户间用逗号隔开
创建组 groupadd命令的选项主要有两个,即-g和-r。其中,使用-g可以在组创建时为其指定GID。
例如我们可以进行以下练习:创建一个用户mandriva,其ID号为2008,基本组为distro,组的ID为3003,附加组为linux。操作如下:
# groupadd linux
# groupadd -g 3003 distro
# useradd -u 2008 -g distro -G linux mandriva
# tail -1 /etc/passwd
使用 -r选项,可以用来创建系统组。
例如我们进行以下操作:创建一个用户fefora,其全名为“Fedora Community”,其基本组为redhat,且redhat是个系统组,默认的shell为csh:
# groupadd -r redhat
# useradd -g redhat -c“Fedora Community”-s /bin/csh fedora
# tail -1 /etc/group
# tail -1 /etc/passwd
三、删除用户
删除用户使用的命令为:
# userdel [-r] USERNAME
如删除用户mongodb,可使用:
# userdel mongodb
注意:删除用户不会删除用户的家目录
如果想将用户及其家目录一起删除,可以使用 -r进行递归删除:
# ls /home
# userdel -r redis
# ls /home
四、 删除组
和删除用户类似,删除组并不复杂,其命令为:
# groupdel GROUP_NAME
如删除组test2grp,可使用:
# groupdel test2grp