用户权限管理

Posted 胡广勤

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户权限管理相关的知识,希望对你有一定的参考价值。

一、Linux下用户的角色分类

  • 超级用户:拥有最高管理权限,默认是root用户
  • 普通用户:具有登录系统的权限,只能对自己目录下的文件进行访问和修改。
  • 虚拟用户:也称伪用户,这类用户最大的特点是不能登录系统,它们的存在主要是方便系统管理,满足相就的系统进程对文件属主的要求,如系统统默认的bin,adm,nobody用户等 。

二、用户和组的关系:一对一、一对多、多对一、多对多

三、用户配置文件概述

1.用户和组相关的配置文件

(1)/etc/passwd文件,查看命令 more /etc/passwd

格式: 用户名:密码:用户标识号:组标识号:注释性描述:主目录:默认shell

  • 用户名:代表用户账号的字符串
  • 密码:存放着加密后的用户密码
  • 用户标识号(UID):范围0-65535.

0:root用户的标识号;

1-99:系统保留,作为管理账号;

500以后:普通用户;

  • 组标识号(GID):记录用户所属的用户组,对应etc/group文件中的一条记录。
  • 注释性描述:对用户的描述信息
  • 主目录:用户登录系统后默认所处的目录,也叫根目录
  • 默认shell:用户登录后默认使用的命令解释器。shell是用户和linux内核之间的接口,用户的所有行为都是通过shell传递组系统内核的。linux下常用的shell有sh,bash,csh等 。管理员可为用户设置不同的shell。

(2)/etc/shadow文件 查看命令 more /etc/shadow

格式: 用户名:加密密码:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:保留字段

由于/etc/passwd文件是所有用户都可读的,因此容易出现安全问题,于是,linux将用户密码单独分享出来,存在shadow中。该文件只有root用户拥有读权限。

(3)/etc/group文件 查看more /etc/group

格式: 组名:密码:组标识号:组内用户列表

  • 组名:由字母和数字构成,不能重复
  • 密码:密码默认设置在/etc/shadow文件中,这里用x代替。linux系统下默认的用户组都没有密码,可以通过gpasswd来组用户添加密码。
  • 组标识号(GID):与/etc/passwd中的组标识号对应
  • 组内用户列表:属于这个组的所有用户,用户之间用逗号分隔

(3)/etc/login.defs文件

作用:用来定义创建一个用户时的默认设置,比如指定用户的UID和GID的范围,用户的过期时间,是否需要创建用户主目录等 。

(4)/etc/default/useradd文件 useradd -D不加任何参数,显示当前设置

通过useradd命令创建一个用户后,用户默认的主目录一般位于/home下,默认使用的shell是/bin/bash。改变此文件有两种 方式:通过文本编辑器和useradd命令。

useradd命令后加 -D 参数后,可以修改文件,一般格式 如下:

useradd -D [-g group] [-b base] [-s shell] [-f inactive] [-e expire]

  • -g default_group 表示新建用户的起始组名或都GID。组名必须为已存在的用户组名称
  • -b default_home 指定新建用户主目录的上级目录
  • -s default_shell 指定新建用户默认使用的shell
  • -f default_inactive 指定用户账号过期多长时间后就永久停用
  • -e default_expire_date 指定用户账号的过期时间

(5)/etc/skel目录

该目录定义了新建用户在主目录下默认的配置文件,更改该目录下的内容就可以改变新建用户默认主目录的配置文件信息

四、用户管理工具

1.groupadd命令

作用:新建用户组

格式:groupadd [-g -o] gid group

  • -g:指定新建用户组GID,唯一
  • -o:一般与-g选项同时使用,表示新用户组可以与已有用户组的GID相同。

2.newgrp命令

作用:在多个用记组之间进行切换

格式:newgrp <用户组〉

3.groupdel命令

作用:删除用户组

格式:groupdel [群组名称]

需删除组中用户才能删除组

4.useradd

  • useradd建立用户的过程:系统读取用于添加用户的配置文件/etc/login.defs和/etc/default/useradd,根据这两个文件中的规则添加用户--〉向/etc/passwd和/etc/group文件添加用户和用户组记录,同时这两个文件也会自动生成记录--〉系统自动在/etc/default/useradd文件设定的目录下建立用户主目录--〉复制/etc/skel目录中的所有文件到 新用户的主目录中。用户创建完成。
  • useradd的语法

useradd -ugGdscfe name

  1. -u uid:用户标识号,唯一
  2. -g group:用户登陆时的默认组,该组必须已经存在
  3. -G group:附加组,也已经存在方可添加。
  4. -d home:默认主目录
  5. -s shell:默认shell
  6. -c comment:新建用户的说明信息
  7. -f inactive:指定账号多长时间后永久停用。值为0时立刻被停用。值为-1时,代表该功能不启用
  8. -e expire,指定账号的过期时间,格式为MM/DD/YY
  9. name: 指定需要创建的用户名
  • usermod用法

作用:修改用户的账户属性信息

格式:usermod -ugGdmsclfeLU name

-l 修改用户账号为新的名称

-L 锁定用户密码,使密码无效

-U 解除密码锁定

  • userdel的用法

作用:删除用户

若指定-r参数,不但删除用户,还删除主目录及目录下所有文件

格式:userdel -r 用户账号

五、文件权限设定

1.查看文件的权限属性

命令: ls -al

作用:显示文件或者目录 的权限信息

文档属性图

文档类型及权限结构图

(1)文档类型及权限

  • 文档类型部分:d--表示目录;l--青不软链接;“-”表示文件;c-表示串行端口字符设备文件;b--表示可供存储的块设备文件
  • 接下来的3个字符一组:r-read; w-write; x-execute;“-”表示无此权限;rwx的顺序是不变的
  • user部分是对文档所有者权限的设定
  • group部分是对文档所属用户组权限的设定
  • others部分是对所有者之外的其他用户权限的设定

(2)链接数:硬链接的概念,即多少个文件指向同一个incode

(3)文档所属的用户和用户组,即为谁所有。如上面的文件,所属用户为oracle ,所属的组为oinstall组。通过chown命令可以修改文档的用户属性

(4)文档大小,以字节为单位(字节是计算机的最小存储单位,1Byte=8 bit)试一下ls -sh命令,对于目录,只显示文件系统默认块的大小

(5)第五列显示文档最后一次修改的日期,显示格式为月-日-时-分;如果修改时间较久远,则使用月-日-年的方式显示

(6)第六列是文档名称。“.”开头的文件/目录为隐藏文件/目录。隐藏文档只有通过ls -a命令才显示。

2.chown 命令改变属主和属组(change owner)

语法:chown [-R] 用户名称:用户组组名称 文件或目录

注意:操作前,确保指定的用户及用户组在系统中是存在的

3.利用chmod改变访问权限

两种用法:

(1)字符设定法。语法:chmod [who] [+ |-|=] [mode] 文件名

-who可以是如下字母中的一个或组合:

--u:用户,即文件或目录的所有者

-g:用户组,即文件或目录的用户组

-o:其它用户,

-a:所有用户

--操作符:

+:添加某个权限

-:取消某个权限

=:赋予给定的权限,同时取消文档以前的所有权限

--mode表示可以执行的权限,可是r.w.x以及他们的组合

--文件名可以是以空格分开的文件列表,支持通配符

(2)数字设定法

0:无权限

1:x-可执行

2:w-可写

4:r-可读

语法:chmod [属主权限的数字组合] [用户组权限的数字组合] [其他用户权限的数字组合] 文件名

数字设定法的实现原理

以上是关于用户权限管理的主要内容,如果未能解决你的问题,请参考以下文章

MySQL的用户管理与权限管理

MySQL的用户管理与权限管理

0 C#WinForm开发权限管理历程之权限管理概述

2、用户权限管理,数据库表设计

php权限管理如何实现

java如何做权限管理