Linux是多用户操作系统。系统允许注册多个用户,且用户还可以组成用户组。一个用户可以参加多个用户组。如此,就产生了用户、用户组的管理问题。这些管理问题主要涉及用户、用户组的创建、删除以及权限控制等。关于用户、用户组的绝大部分操作命令都需要root权限,所以操作时应取得root权限,或在命令前加上sudo。有些查询命令会因某些参数影响短时间内不会自行退出运行界面,此时可使用Ctr_c强行退出。
一、用户组管理
1.创建用户组命令groupadd
语法:groupadd 用户组名
选项:无
参数:用户组名
举例:创建一个名为mygroup的用户组,命令如下:
groupadd mygroup
2.删除用户组命令 groupdel
语法:groupdel 用户组名
选项:无
参数:用户组名
举例:删除前面创建的mygroup用户组,命令如下:
groupdel mygroup
3.查看用户所属组命令id
语法:id [用户名]
选项:无
参数:用户名,被查看的用户名省略时表示查询当前用户
4.加入用户组命令 usermod
语法:usermod -aG 用户组名 用户名
选项:-aG,usermod还有其它功能,此选项用于修改用户所属组
说明:该命令选项的作用是用户加入新的用户组,用户参加的其它用户组并不退出。
举例:将用户user1加入到mygroup用户组,同时不影响user1曾加入的其它组,命令如下:
usermod -aG mygroup user1
5.退出用户组命令 gpasswd
语法:gpasswd -d 用户名 用户组名
选项:-d,gpasswd还有其它功能,-d用于退出用户组
参数:用户名、用户组名
举例:将用户user1从用户组group1中退出,命令如下:
gpasswd -d user1 group1
6.查询当前系统中用户组 getent group
语法:getent group
参数:group,用户组
说明:
a.运行结果包含三份用冒号相隔的信息,分别是:组名称,密码(x表示有密码),组的ID。
b.如果仅想显示普通用户组,过滤掉系统用户,可在命令后再加参数:{1000..60000}。
二、用户管理
1.创建用户命令 useradd
功能:在安装Linux时曾设置过用户名、密码等,这仅是创建用户的一种方式。使用这个创建用户命令可以随时创建新的用户。
语法:useradd [-g -d] 用户名
选项:-g,指定用户的组,如不指定则会自动创建组名与用户名的相同的组。
-d,指定用户工作目录;如不指定可使用-m生成:/home/用户名的工作目录。
说明:指定用户组、指定工作目录应当也已存在。
举例:创建一个名为stu1的用户,加入stu用户组,使用默认工作目录,目录如下:
useradd -g stu stu1
2.用户切换命令 su
功能:上一篇文章中曾涉及su作为切换到root用户的命令,普通用户间的切换也是使用su命令。
语法:su [-] 用户名
说明:
a.su命令后加上选项"-",表示切换用户的同时也切换环境变量。
b.退出切换的命令是:exit
3.删除用户 userdel
语法:userdel [-r] 用户名
选项:-r,使用-r选项表示在删除用户的同时删除其工作目录
参数:用户名
说明:
举例:删除用户stu1,同时删除其工作目录,命令如下:
userdel -r stu1
4.查看当前系统中用户命令 getent passwd
语法:getent passwd
选项:无
参数:passwd,以查询密码方式查找用户列表
说明:
a.用户类别:超级用户(ID=0),即root用户,权限最高;系统用户(ID=1-999),系统内建的用户;普通用户(ID=1000~60000),Linux用户建立的账户。
b.如果仅查询普通用户的信息,可在命令后加上查询范围做参数,命令为:getent passwd {1000..60000}。
c.查询结果中有七份信息(用冒号分隔),分别是:用户名、密码(用x表示)、用户ID、组ID、描述信息(一般空)、工作目录、执行终端(默认bash)。