文一:用户(user)和用户组(group)概念 (来自:http://bbs.shendu.com/thread-1109324-1-1.html)
1、用户(user)的概念;
Linux 是真正意义上的多用户操作系统,所以我们能在Linux系统中建若干用户(user)。比如我们的同事想用我的计算机,但我不想让他用我的用户名登录,因为我的用户名下有不想让别人看到的资料和信息(也就是隐私内容)这时我就可以给他建一个新的用户名,让他用我所开的用户名去折腾,这从计算机安全角度来说是符合操作规则的;当然用户(user)的概念理解还不仅仅于此,在Linux系统中还有一些用户是用来完成特定任务的,比如nobody和ftp 等,我们访问LinuxSir.Org 的网页程序,就是nobody用户;我们匿名访问ftp 时,会用到用户ftp或nobody ;如果您想了解Linux系统的一些帐号,请查看 /etc/passwd ;
2、用户组(group)的概念;
用户组(group)就是具有相同特征的用户(user)的集合体;比如有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是我们通过定义组和修改文件的权限来实现的;
举例:我们为了让一些用户有权限查看某一文档,比如是一个时间表,而编写时间表的人要具有读写执行的权限,我们想让一些用户知道这个时间表的内容,而不让他们修改,所以我们可以把这些用户都划到一个组,然后来修改这个文件的权限,让用户组可读,这样用户组下面的每个用户都是可读的;
一对一 :某个用户可以是某个组的唯一成员;
多对一 :多个用户可以是某个唯一的组的成员,不归属其它用户组;比如beinan和linuxsir两个用户只归属于beinan用户组;
一对多 :某个用户可以是多个用户组的成员;比如beinan可以是root组成员,也可以是linuxsir用户组成员,还可以是adm用户组成员;
多对多:多个用户对应多个用户组,并且几个用户可以是归属相同的组;其实多对多的关系是前面三条的扩展;理解了上面的三条,这条也能理解
文二: 浅谈linux用户与用户组的概念 (来自:http://linuxme.blog.51cto.com/1850814/347086/)
1.用户
用户是能够获取系统资源的权限的集合.
2.linux用户组的分类:
a.管理员root:具有使用系统所有权限的用户,其UID 为0.
b.普通用户: 即一般用户,其使用系统的权限受限,其UID为500-60000之间.
c.系统用户:保障系统运行的用户,一般不提供密码登录系统,其UID为1-499之间.
3.与用户有关的文件/etc/passwd,/etc/shadow
a./etc/passwd文件:
其格式:account:password:UID:GID:GECOS:diretory:shell
account: 用户名或帐号
password :用户密码占位符
UID:用户的ID号
GID:用户所在组的ID号
GECOS:用户的详细信息(如姓名,年龄,电话等)
diretory:用户所的家目录
shell:用户所在的编程环境
b./etc/shadow
其格式:account:password:最近更改密码的日期:密码不可更该的天数:密码需要重新更改的天数:密码更改前的警告期限:密码过期的宽限时间:帐号失效日期:保留
4.用户组
用户组分类;
a.普通用户组:可以加入多个用户
b.系统组:一般加入一些系统用户
c.私有组(也称基本组):当创建用户时,如果没有为其指明所属组,则就为其定义一个私有的用户组,起名称与 用户名同名.
注:私有组可以变成普通用户组,当把其他用户加入到该组中,则其就变成了普通组
5. 组是权限的容器
如普通用户 a,b,c 所属组grp,则它们会继承组grp的权限
6.与组有关的文件:/etc/group,/etc/gshadow
/etc/group文件: 其格式:group_name:passwoerd:GID:user_list
group_name:组名
passwoerd:组密码
GID:组的ID号
user_list:以group_name为附加组的用户列表
7.修改用户及用户组的命令:useradd,usermod, groupdd,userdel
a.增加用户 :useradd [options] username
options:
1.-u :UID
2.-g :GID
3.-d :指定用户家目录,默认是/home/username
4.-s :指定用户所在的shell环境
5.-G:指定用户的附加组
例如增加一用户wendy UID为1888 家目录/home/oracle,shell为/bin/sh
#useradd –u 1888 –d /home/oracle –s /bin/sh wendy
b.修改用户:usermod [options] username
options:
1.-u :UID
2.-g :GID
3.-d :指定用户家目录,默认是/home/username
-m 与-b 一起用表示把用户家目录的内容也移走
4.-s :指定用户所在的shell环境
5.-G:指定用户的附加组
例如修改用户wendy UID为1000 家目录/oracle,shell为/bin/bash
#usermod –u 1000 –d /oracle –s /bin/bash -m wendy
c.增加用户组:groupadd [options] groupname
options
1.-g :GID
例如增加用户组grp UID为1001: #groupadd –g 1001 grp
d.删除用户:userdel [options]username
options
1.-r :连同家目录一起删除
例如删除用户wendy及家目录:#userdel –r wendy