++++用户和组++++
首先了解一下系统中用户、用户组以及家目录的概念
用户:很简单,就是你使用系统的一个身份,就和我们的QQ一样,有名称,密码等等用于识别该使用者。
用户组:和我们生活中的小组一样,同一个小组的用户具有一些相同的属性或是权限。
家目录:linux是多用户系统,一个系统有很多用户,由于存放用户个人的文件,就比如我们都在地球上生活,但我们有一个自己的私人空间。
知道这些概念后,我们再来认识几个文件,系统里有哪些用户,有哪些组,那些用户属于那些组已经每个用户的家目录是存在一定的关系的,那么这些关系都存在哪里,我们来分别认识一下它们:
/etc/passwd:这是用来存放用户信息的,有用户名,密码,用户组,家目录,shell等相关信息,但是这里所谓的密码不是真正的密码。在早些时候,密码就是存在这里的,但出于安全方面,就把密码提取出来放入了一个单独的文件,这个单独的文件就是/etc/shadow,好的,我们又来看看这个文件。
/etc/shadow:这个文件用于存放用户密码,该文件每一行为一个用户的密码相关信息,每一行中包含用户名,密码,还有几个和密码相关的时间,每个字段用:分割。
/etc/gpasswd,/etc/gshadow这两个文件和上面两个文件类似,分别记录了组信息和组密码。
1.创建和删除用户
1.1)创建用户用useradd命令
useradd [-c comment] [-d home_dir] [-e expire_date] [-f inactive_time] [-g initial_group] [-G group[,...]] [-m [-k skeleton_dir] | -M] [-s shell] [-u uid [ -o]] [-n] [-r] login
-c comment
用户注释,用于对用户进行说明。
-d home_dir
指定用户的家目录。
-e expire_date
帐号终止日期。
-f inactive_days
账号过期后还能用的天数。
-g initial_group
指定用户的基本组,可以是组ID,也可以是组名称,什么时间本组呢,在创建用户时,系统要求用户有一个组,如果不手动指定,系统则会自动为其创建一个组名与用户名相同的组。
-G group,[...]
除了用户属于一个基本组以外,如果还要为用户分配组就加参数-G 组名。
-M 不为用户创建家目录。
-r 如果需要创建系统用户则加该参数,系统用户的UID是小于500的。
-s shell
为用户指定登录时的默认shell,如/bin/bash。
-u uid 创建用户时系统会自动为其生成UID,如果要自己指定就有 -u uid(一般是大于500的数字)。
举例:创建一个用户,用户名tom,指定UID为1000,家目录为/home/tomhome,基本组为tomgroup,附加组为tomgroup123,指定shell为bash,指定注释为I am tom.
# useradd -c 'I am tom' -g tomgroup -G tomgroup123 -d /home/tomhome -u 1000 -s /bin/bash
注意:为用户指定的分组应该事先存在,所以要为用户指定分组,就得先会创建分组,如何创建分组,继续往下看,慢慢道来。
1.2)删除用户用userdel
任何事物都是创造难,销毁简单,所以删除用户也很简单。
首先我们说说一个用户创建成功后,系统做了哪些事情,
a.在/etc/passwd添加用户信息
b.在/etc/shadow添加用户密码
c.在/etc/group添加用户组的相关信息
d.在/etc/gshadow添加组密码
e.为用户创建家目录
f.在/var/mail/里为用户生成邮箱
好了,我们来说删除用户吧
userdel username
就这样就删除了用户,但是系统默认是不删除该用户的资料的,比如家目录,邮箱等。如果我们想删除和用户的家目录和邮箱等需要加一个参数 -r.
userdel -r username 搞定。
1.3)更改用户属性usermod
用法:usermod [选项] 用户名
个命令的选项和useradd几乎一模一样,用法完全参照useradd命令
这个命令比useradd多了一个参数-l (login name),也就是用户名,用来修改用户名的,
eg:
# usermod -l newname oldname
2.创建组和删除组
相对创建用户来说,创建组就简单多了,因为组的属性没有用户的属性多
2.1)创建组:groupadd
groupadd groupname
该命令有三个参数,常用的是以下两个:
-g GID: 创建组的时候为其指定GID;
-r: 创建系统组;
执行该命令之后,系统会在/etc/group和/etc/gshadow分别记录组信息和组密码
/etc/group文件格式
组名:密码占位符x:GID:以此组为额外组的用户列表,用户间用逗号分隔;
2.2)删除组
这个很简单,groupdel groupname
该命令没有任何选项,
唯一一个要求就是只能管理员执行
2.3)更改组属性groupmod
groupmod [-g gid [-o]] [-n group_name] groupname
很容易看出比groupadd多了-n参数,也就是修改组名的
eg:
# groupmod -n newgroup oldgroup
OK,linux系统中用户和组的基本增删改就这样了,更多详细玩法请man^.^
转载于:https://blog.51cto.com/becaning/1339969