linux用户账号权限管理及命令配置

用户账号和组账号概述

用户账号概述

Linux系统中,根据系统管理的需要,将用户账号分为不同的类型,其拥有的权限,担任的角色也各不相同。
1、超级用户:root用户是Linux系统中默认的超级用户账号,对本级拥有最高的权限,类似于Windows系统中的administrator用户。
2、普通用户:普通用户账号需要有root用户或其他管理员用户创建,拥有的权限受到一定限制,一般只在用户自己的宿主目录中拥有完整权限。
3、程序用户:在安装Linux系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行。例如:bin,daemon,ftp,mail等。
4、匿名用户:Windows中的匿名用户时guest,Linux系统中匿名用户是nobody。

组账号概述

对于用户账号来说,对应的组账号可以分为基本组(私有组)和附加组(公共组)两种。每一个用户账号可以是多个组账号的成员,但是其基本组账号只有一个。在”/etc/passwd“文件中第四个字段记录的即为该用户的基本组GID号。而对于该用户还属于那些附加组,需要在对应组账号文件中才被体现。
1、私有组(基本组):随着用户的建立而建立,与用户同名
2、共有组(附加组):直接创建空组,可以*添加已有用户。给组设置权限后,该组中的所有用户都具备此权限。

UID号和GID号

Linux系统中的每一个用户账号和组账号都有一个数字形式的身份标记,称为UID(User IDentity,用户标识号)和GID(Group IDentify,组标识号)。对于系统核心来说,UID是作为区分用户的基本依据,原则上每个用户的UID号应该是唯一的。
root用户:固定值UID=0
程序用户:UID 1—999
普通用户:UID 1000–6万

用户账号文件

Linux系统中的用户账号,密码等信息均保存在相对应的 配置文件中,直接修改这些文件或者使用用户管理命令都可以对用户账号进行管理。

与用户账号相关的配置文件主要有两个,分别是/etc/passwd, /etc/shadow、前者用于保存用户名称,宿主目录,登录Shell等基本信息,后者用于保存用户的密码,账号有效期等信息。

在这两个配置文件中,每一行对应一个用户账号,不同的配置项之间使用冒号“:”进行分隔。

用户账号文件/etc/passwd

1、中所有用户的账号信息都保存在“/etc/passwd”文件中,该文件是文本文件,任何用户都可以读取文件中的内容。
2、系统中新增加的用户账号信息会保存到passwd文件的末尾。
3、基于系统运行和管理的需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改。在早期的UNIX操作系统中,用户账号的密码信息也是保存在passwd文件中的,但是可以被不法用户暴力**,因此后来将信息转存入专门的shadow文件中,而passwd文件中仅保留密码占位符“x”。
例:查看passwd文件头两行内容(每一行对应一个用户的账号记录)
[[email protected] ~]# head -2 /etc/passwd
root: x:0:0:root:/root:/bin/bash
bin: x:1:1:bin:/bin:/sbin/nologin

passwd文件的每一行内容中,包含了七个用冒号“:”分隔的配置字段,含义如下:
linux用户账号权限管理及命令配置
用户账号:用户账号的名称,也是登录系统时使用的识别名称
密码占位符:表示自己有密码
用户账号ID(UID):用户账号的UID号
组账号ID(GID):所属基本组账号的GID号
用户说明:可以填写与用户相关的说明信息
宿主目录(家目录):该用户登录后所在的默认工作目录
登录Shell :用户完成登录后使用的shell

用户账号文件/etc/shadow

shadow文件又被称为“影子文件”,其中保存有各种用户账号的密码信息,因此默认只有root用户能够读取文件中的内容,而不允许直接编辑改文件中的内容。
查看头两行shadow文件内容
[[email protected] ~]# head -2 /etc/shadow
root: 6 6 6mH8hzgaq7mY/pNmy$L.P3c2kw1EYGn7upTEcckuVE88wOb4XdGqf0qxMq3cml.W0ewoF0m6fGmXnGWn3jCkPRNGEo6xXCcPjtKmKSo0::0:99999:7:::
bin::17110:0:99999:7:::
shadow文件的每一行内容中,包含了九个用冒号“:”分隔的配置字段,含义如下:
linux用户账号权限管理及命令配置
第一字段:(root)用户账号名称
第二字段:(红字部分)使用MD5加密的密码字串信息,当为“
”或者“!!”时表示此用户不能登录到信息,若该字段内容为空,则该用户无需密码即可正常登陆系统
第三字段:14374)上次修改密码的时间,表示从1970年1月1日起到最近一次修改密码时间隔的天数
第四字段:0) 密码的最短有效天数。自本次修改密码后,必须至少经过该天数才能再次修改密码,默认值为0,表示不进行限制。
第五字段:(99999) 密码的最长有效天数,自本次修改后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制。
第六字段:(7) 提前多少天警告用户口令将过期,默认值为7
第七字段:在密码过期后多少天内禁用此用户
第八字段:账号失效时间,此字段制定了用户作废的天数(从1970年1月1日算起),默认值为空,表示账号永久可用
第九字段:保留字段,目前没有特定用途

组账号文件

/etc/group 和 /etc/gshadow

组账号文件也有两个,分别是/etc/group, /etc/gshadow。与用户账号文件非常类似。前者用于保存组账号名称,GID号,组成员等基本信息,后者用于保存组账号的加密密码字符串等信息(但是很少使用到)。
某一个组账号包含哪些用户成员,将会在group文件内最后一个字段中体现出来(基本组对应的用户账号默认可能不会列出),多个组成员之间使用逗号“,”分隔。

例如:查看root组包括哪些用户成员,哪些组中包含root用户:
检索root组包括哪些用户
[[email protected] ~]# grep “^root” /etc/group
root: x :0:
检索哪些组包括root用户
[[email protected] ~]# grep “root” /etc/group
root: x :0:

用户账号和组帐号管理

用户账号管理

切换用户:su 用户,保持路径不变
su - 用户,切换到当前用户的家目录
grep “bash$” /etc/passwd 查看当前可用用户
用户被锁定后,可以从高权限用户切换到普通用户,但是不可以用普通用户登录

useradd命令–添加用户账号

基本命令格式如下
useradd [选项] 用户名
常用选项有:
-u:指定用户的UID号,要求UID号码未被其他用户使用
-d:指定用户的宿主目录位置(当与 -M 一起使用时,不生效)
-e:指定用户的账户失效时间,可以使用YYYY-MM-DD的日期格式
-g:指示基本组
-G:指示附加组
-M:不建立宿主目录,即使/etc/login.defs系统配置中已设置要建立宿主目录
-s:指定用户的登录shell

passwd命令–设置/更改用户口令

使用命令基本格式
passwd [选项] 用户名

常用选项
-d:清空指定用户的密码,仅使用用户名即可登录系统
-l:锁定用户账户
-大S:查看用户账户是否被锁定
-u:解锁用户账户

root用户有权限管理其他账号的密码(指定账号名称作为参数即可),不指定用户名时,修改当前账号的密码。普通用户只能执行单独的“passwd”命令修改自己的密码
例:执行“passwd ZW“命令可以为ZW账号设置登录密码

usermod命令–修改用户账号的属性

命令使用基本格式
usermod [选项] 用户名
常用选项
-l:更改用户账号的登录名称(Login Name)
-L:锁定用户账户
-U:解锁用户账户
-u:修改用户的UID号
-d:修改用户的宿主目录位置
-e:修改用户的账户失效时间,可以使用YYYY-MM-DD的日期格式
-s:指定用户的登录shell

usermod命令大部分和useradd命令的选项时相对应的,作用也相似

userdel命令–删除用户账号

命令使用基本格式
userdel [-r] 用户名
添加-r选项时,表示连用户的宿主目录删除

组帐号管理

groupadd命令–添加组账号

需要指定GID号时,可以使用’-g’选项
命令执行基本格式
groupadd [-g GID] 组账号名

gpasswd命令–添加删除组成员

设置组账号密码(用的很少),添加/删除组成员
命令使用基本格式
gpasswd [选项] 组账号名
常用选项
-a:向组内添加一个用户
-d:从组中删除一个用户成员
-M:定义组成员列表,以逗号分隔

groupdel命令–删除组账号

使用命令基本格式
groupdel 组账号名

查询账号信息

在用户管理工作中,虽然直接查看用户账号,组账号的配置文件也可以查询相关信息,但不是很乐观。在Linux系统中,还可以使用几个常用的命令查询工具。

id命令:查询用户账号的身份标识
id命令基本格式
id [用户名]

groups命令:查询用户账号所属的组
groups命令使用格式
groups [用户名]

finger命令:查询用户账号的详细信息
finger命令使用格式
finger [用户名]

w命令:查询登录到主机的用户信息
lastb:查看最近登录的历史记录

文件目录的权限和归属

访问权限和归属

访问权限

读取r:允许查看文件内容,显示目录列表
写入w:允许修改文件内容,允许在目录中新建,移动,删除文件或子目录
可执行x:允许运行程序,切换目录

归属(所有权)

属主:拥有该文件或目录的用户账号
属组:拥有该文件或目录的组账号

chmod命令–设置文件和目录权限

chmod命令使用基本格式
chmod nnn 文件或目录 (常用) (nnn表示三位八进制数字,如777,755,644等)

chown命令–设置文件和目录的归属

chown命令使用基本格式
chown 属主 文件或目录
chown:属组 文件或目录
chown 属主:属组 文件或目录
常用选项
-R 递归修改指定目录下所有文件,子目录的归属