Linux权限管理--用户,组

Linux权限管理–文件

Linux权限管理–扩展

通常在linux系统下由于各种权限问题导致服务无法运行,配置不能使用的情况时有发生。在linux环境下如若进行某项操作,无时不刻都要考虑到权限问题才能确保相关配置正确运行。而linux的权限管理机制使得它成为极为安全的操作系统。本文介绍linux权限管理有关用户方面的知识

用户和组

当我们使用linux的时候我们需要以用户的身份登陆,一个进程也需要以用户的身份运行。

我们使用用户这个概念的目的就是为了限制使用者或者进程哪些资源可以使用哪些资源不可以使用。

组的相关信息:

  • 每个用户拥有一个UserID,操作系统使用的实际上是UserID,而不是用户名。
  • 每个用户属于一个组,同时还可以属于一个或多个附属的组。
  • 每个组拥有一个GroupID
  • 每个进程必须要以用户的身份运行,并受该用户的权限影响使用资源。
  • 每个登陆的用户都有一个可用的Shell

用户:

  • 每个用户ID是一个32bit的整数,从0开始。但是为了与老式系统分开,我们一般把用户的ID限制在60000以下。
  • 用户分为3种:

    root用户,root用户的ID为0,无论哪一类linux系统中root的ID都为0。

    系统用户,系统用户是为了使用某个服务而开的,ID一般在1~499

    普通用户,就是我们平时登陆系统所用的用户,ID一般大于等于500

  • 系统中的文件都有一个所属的用户和组:
  • 我们可以使用id命令来显示当前用户的信息,使用passwd命令改变用户密码。

相关文件:

  • /etc/passwd保存用户的信息
  • /etc/shadow保存用户的密码
  • /etc/group保存组的信息

查看登陆的用户

  • whoami:显示当前登录用户
  • who:显示哪些用户已经登录系统
  • w:显示哪些用户已经登录和正在干什么

whoami,who,w命令whoami,who,w命令

whoami,who,w命令

创建一个用户

使用useradd创建一个新的用户

$ sudo useradd test
$ cat /etc/passwd

使用useradd命令会进行以下操作:

  • /etc/passwd中添加用户的信息
  • 如果使用passwd来创建密码则把密码保存在/etc/shadow文件中
  • 为用户创建一个新的家目录(有些系统默认不创建)
  • /etc/skel中的文件复制到用户家目录
  • 建立一个与用户同名的组,默认情况下新建用户属于这个同名组

useradd命令支持以下参数

  • -d:指定用户家目录
  • -s:指定用户登录shell
  • -u:指定用户uid
  • -g:指定用户所属组
  • -G:指定用户所附属组

修改用户的信息

使用usermod修改用户的信息,usermod支持下列参数

  • -l:修改用户名
  • -u:修改uid
  • -g:修改用户主组
  • -G:修改用户附属组
  • -L:锁定用户
  • -U:解锁用户

删除用户

  • userdel username用来删除一个用户,但是会保留家目录
  • userdel -r username直接将家目录也删除

  1. 几乎所有操作系统都有组的概念,通过组我们可以用来方便的管理用户
  2. 每一个组都有一个组ID
  3. 所有组的信息都保存在/etc/group文件中
  4. 每个用户都至少有一个组,最多可以有31个附属组
  5. 利用groupadd创建一个组 groupadd groupname
  6. groupmod命令用于修改一个组的信息
    • -n:新组名 就组名
    • -g:新组ID 旧组ID
  7. 命令groupdel用以删除一个组 groupdel groupname