1、用户与角色分类超级用户:拥有对系统的最高管理权限,默认是root用户。
普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限,例如liao用户、xuan用户等。
虚拟用户:也叫“伪”用户,这类用户最大的特点是不能登录系统,它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。例如系统默认的bin、adm、nobody用户等
2、用户和组以及关系
一对一:即一个用户可以存在一个组中,也可以是组中的唯一成员。
一对多:即一个用户可以存在多个用户组中。那么此用户具有多个组的共同权限。
多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限。
多对多:多个用户可以存在多个组中。其实就是上面三个对应关系的扩展。

3、用户和组相关的配置文件
/etc/passwd文件:系统用户配置文件,是用户管理中最重要的一个文件。这个文件记录了Linux系统中每个用户的一些基本属性,并且对所有用户可读。
/etc/shadow文件:用户影子文件,由于/etc/passwd文件是所有用户都可读的,这样就导致了用户的密码容易出现泄露,因此,linux将用户的密码信息从/etc/passwd中分离出来,单独的放到了一个文件中,这个文件就是/etc/shadow,该文件只有root用户拥有读权限。
/etc/group文件:用户组配置文件,用户组的所有信息都存放在此文件中。
/etc/login.defs文件:用来定义创建一个用户时的默认设置,比如指定用户的UID和GID的范围,用户的过期时间、是否需要创建用户主目录等等。
/etc/default/useradd文件:定义了新建用户的一些默认属性,比如用户的主目录、使用的shell等等,通过更改此文件,可以改变创建新用户的默认属性值。
/etc/skel文件:目录定义了新建用户在主目录下默认的配置文件,更改/etc/skel目录下的内容就可以改变新建用户默认主目录的配置文件信息。
[root@localhost ~]# cat /etc/default/useradd # useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE= SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
#以上是用useradd创建文件时的默认配置
4、添加、切换、删除用户组命令groupadd/newgrp/groupdel
groupadd命令
用来新建一个用户组。语法格式为:
groupadd -g gid groupname
-g:指定新建用户组的GID号,该GID号必须唯一,不能和其它用户组的GID号重复。
newgrp命令
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限,newgrp主要用于在多个用户组之间进行切换。
groupdel命令
表示删除用户组,语法格式为:
groupdel [群组名称]
当需要从系统上删除用户组时,可用groupdel指令来完成这项工作。如果该用户组中仍包括某些用户,则必须先删除这些用户后,然后才能删除用户组。
为什么需要 newgrp?
问题在于:新创建的文件
当 alice 创建新文件时,文件的组所有权是她的当前登录组
例子:
alice 当前登录组是 alice(主组)
她创建的文件:alice:alice(用户:组
如果她想创建属于 dev 组的文件,就需要切换到 dev 组
newgrp dev
现在创建的文件:alice:dev(用户:组)
5、添加、修改和删除用户命令useradd/usermod/userdel
useradd的使用语法
useradd [-u uid [-o]] [-g group] [-G group,…]
[-d home] [-s shell] [-c comment]
[-f inactive] [-e expire ] name
各个选项具体含义如下:
-u uid:即用户标识号,此标识号必须唯一。
-g group:指定新建用户登录时所属的默认组,或者叫主组。此群组必须已经存在。
-G group:指定新建用户的附加组,此群组必须已经存在。附加组是相对与主组而言的,当一个用户同时是多个组中的成员时,登录时的默认组成为主组,而其它组称为附加组。
-d home:指定新建用户的默认主目录,如果不指定,系统会在/etc/default/useradd文件指定的目录下创建用户主目录。
-s shell:指定新建用户使用的默认shell,如果不指定,系统以/etc/default/useradd文件中定义的shell作为新建用户的默认shell。
使用id username 查看用户的信息
usermod的使用语法
usermod用来修改用户的账户属性信息,使用语法如下:
usermod [-u uid [-o]] [-g group] [-G group,…]
[-d 主目录 ] [-s shell] [-L|-U] Name
各个选项具体含义如下:
-u uid:指定用户新的UID值,此值必须为唯一的ID值,除非用-o选项。
-g group:修改用户所属的组名为新的用户组名,此用户组名必须已经存在。
-G group:修改用户所属的附加组。
-d 主目录:修改用户登录时的主目录。
-s shell:修改用户登录系统后默认使用的shell
-L:锁定用户密码,使密码无效。
-U:解除密码锁定。
添加多个附加组(用逗号分隔,无空格)
usermod -aG 组1,组2,组3 用户名
userdel的使用语法
Userdel用来删除一个用户,若指定“-r”参数不但删除用户,同时删除用户的主目录以及目录下的所有文件。语法格式为:
userdel [-r][用户帐号]
#从组中删除用户 sudo gpasswd -d 用户名 组名
#从developers组中移除alice
sudo gpasswd -d alice developers
6、文件的权限属性解读
在Linux中常见的有7种文件类型:
普通文件(-表示)
目录(d表示)
字符设备文件(c)
块设备文件(b)
套接字文件(s)
管道(p)
符号链接文件(l)
“.”代表当前目录
“..”代表上级目录
通过“ls –al”可以显示文件或者目录的权限信息,看下面的输出:
[root@localhost oracle]# ls -al
drwxr-xr– 3 oracle oinstall 4096 Oct 30 2098 oradata

第一列显示文档类型与执行权限,有十个字符组成,分为4个部分,下面将文档oradata权限分解

文档类型部分:
当为“d”时,表示目录;当为“l”时表示软链接;当为“-”时表示文件;当为“c”时表示串行端口字符设备文件;当为“b”时表示可供存储的块设备文件。由此可知,oradata是一个目录。
在接下来的三个部分中,三个字符为一组,每个字符的含义为:“r”表示只读,即read;“w”表示可写,即write;“x”表示可执行,即execute;“-”表示无此权限,即为空。
User部分:
第二部分是对文档所有者(user)权限的设定,“rwx”表示用户对oradata目录有读、写和执行的所有权限。
Group部分:
第三部分是对文档所属用户组(group)权限的设定,“r-x”表示用户组对oradata目录有读和执行的权限,但是没有写的权限。
Others部分:
第四部分是对文档拥有者之外的其它用户权限的设定,“r–”表示其它用户或用户组对oradata目录只有读的权限
[root@localhost oracle]# ls -al
drwxr-xr– 3 oracle oinstall 4096 Oct 30 2098 oradata
第二列的3,由于这个是d,文件夹,而空目录的一般是2,3的意思就算说里面有一个文件
第三列显示了文档所属的用户和用户组,也就是文档是属于哪个用户以及哪个用户组所有。
第四列显示的是文档的大小,默认显示的是以bytes为单位,但是也可以通过命令的参数修改显示的单位,例如可以通过“ls -sh”组合人性化的显示文档的大小。对于目录,通常只显示文件系统默认block的大小。
第五列显示文档最后一次的修改日期,通常以月、日、时、分的方式显示,如果文档修改时间距离现在已经很远了,会使用月、日、年的方式显示。
第六列显示的是文档名称,linux下以“.”开头的文件是隐藏文件,同理以“.”开头的目录是隐藏目录,隐藏文档只有通过ls命令的“-a”选项才能显示。
发表回复