目录

前言

一.用户账号和组账号

1.用户账号

2.组账号

二.用户账号文件

1.用户账号文件/etc/passwd

2.用户账号文件/etc/shadow

3.用户账号管理

3.1 useradd命令–添加用户账号

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

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

3.4userdel命令–删除用户账号

三.组账号文件

1.组帐号管理

1.1groupadd命令–添加组账号

1.2gpasswd命令–添加删除组成员

1.3groupdel命令–删除组账号

2.查询账号信息

四.文件目录的权限和归属

1.访问权限

2.归属

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

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

5.权限掩码—umask

总结


前言

linux权限管理严格,这也是其安全的保证,对文件、目录分为主、组、其他三级权限控制,其中/etc/passwd,/etc/group,/etc/shadow文件分别存储了账号,组,密码详情。

一.用户账号和组账号

1.用户账号

  • 超级用户(uid为0)   默认的超级用户为root账户,拥有最高的权限
  • 普通用户 (uid为1-499)由管理员创建,权限由一定限制
  • 程序用户 (uid为500-60000)不允许登陆,仅用来维持系统或某个程序的运行

2.组账号

  • 基本组(私有组)
  • 附加组(基本组)

二.用户账号文件

Linux系统中的用户账号,密码等信息均保存在相对应的 配置文件中,直接修改这些文件或者使用用户管理命令都可以对用户账号进行管理。与用户账号相关的配置文件主要有两个,分别是/etc/passwd, /etc/shadow、前者用于保存用户名称,宿主目录,登录Shell等基本信息,后者用于保存用户的密码,账号有效期等信息。在这两个配置文件中,每一行对应一个用户账号,不同的配置项之间使用冒号“:”进行分隔。

1.用户账号文件/etc/passwd

1.1中所有用户的账号信息都保存在“/etc/passwd”文件中,该文件是文本文件,任何用户都可以读取文件中的内容。
1.2系统中新增加的用户账号信息会保存到passwd文件的末尾。
1.3基于系统运行和管理的需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改。在早期的UNIX操作系统中,用户账号的密码信息也是保存在passwd文件中的,但是可以被不法用户暴力破解,因此后来将信息转存入专门的shadow文件中,而passwd文件中仅保留密码占位符“x”。

查看passwd文件头两行内容

linuxdb2 用户权限 linux账号权限_linuxdb2 用户权限

 查看 /etc/passwd中的内容

linuxdb2 用户权限 linux账号权限_用户名_02

2.用户账号文件/etc/shadow

shadow文件又被称为“影子文件”,其中保存有各种用户账号的密码信息,因此默认只有root用户能够读取文件中的内容,而不允许直接编辑改文件中的内容。

查看头两行shadow文件内容

shadow文件的每一行内容中,包含了九个用冒号“:”分隔的配置字段,含义如下:

linuxdb2 用户权限 linux账号权限_linuxdb2 用户权限_03

第一字段:(root)用户账号名称
第二字段:(红字部分)使用MD5加密的密码字串信息,当为“”或者“!!”时表示此用户不能登录到信息,若该字段内容为空,则该用户无需密码即可正常登陆系统
第三字段:14374)上次修改密码的时间,表示从1970年1月1日起到最近一次修改密码时间隔的天数
第四字段:0) 密码的最短有效天数。自本次修改密码后,必须至少经过该天数才能再次修改密码,默认值为0,表示不进行限制。
第五字段:(99999) 密码的最长有效天数,自本次修改后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制。
第六字段:(7) 提前多少天警告用户口令将过期,默认值为7
第七字段:在密码过期后多少天内禁用此用户
第八字段:账号失效时间,此字段制定了用户作废的天数(从1970年1月1日算起),默认值为空,表示账号永久可用
第九字段:保留字段,目前没有特定用途

3.用户账号管理

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

3.1 useradd命令–添加用户账号

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

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

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

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

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

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

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

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

3.4userdel命令–删除用户账号

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

三.组账号文件

/etc/group 和 /etc/gshado

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

1.组帐号管理

1.1groupadd命令–添加组账号

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

1.2gpasswd命令–添加删除组成员

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

1.3groupdel命令–删除组账号

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

2.查询账号信息

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

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

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

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

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

四.文件目录的权限和归属

1.访问权限

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

2.归属

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

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

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

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

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

5.权限掩码—umask

作用:控制新建的文件或目录的权限,默认权限去除umask的权限为新建的文件或目录的权限。

umask 设置:umask 掩码值

umask查看:umask

总结

每个用户和用户组都有不同的权限,而权限也是可以调整的,用户也是可以变动的