Linux账号和权限管理

Linux账号和权限管理

                                                                                                                                            --------------Isuncle 原著

  • Linux基于用户身份对资源访问进行控制

    • 用户帐号:

      • 超级用户root

        超级用户,即root用户,类似于Windows系统中的Administrator用户,非执行管理任务时不建议使用root用户登录系统;root用户的UID的固定值为0root组帐号的GID号为固定值0


      • 普通用户

        普通用户帐号一般只在用户自己的宿主目录中有完全权;,普通用户/组使用的UIDGID号在50060000之间。


      • 程序用户

        程序用户:用于维持系统或某个程序的正常运行,一般不允许登录到系统。例如:bindaemonftpmail等;1~499UIDGID默认保留给程序用户使用。


    • 组帐号:

      • 基本组(私有组)

      • 附加组(公共组)

    • UIDGID

      • UIDUser Identity,用户标识号)

      • GIDGroup Identify,组标识号)


  • 用于保存用户的帐号基本信息

    • 文件位置:/etc/passwd

    • 每一行对应一个用户的帐号记录


      1.基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改

      2.在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字串并进行暴力破解,因此存在一定的安全隐患

      后来经改进后,将密码转存入专门的shadow文件中(见下页)并严格控制全新,而passwd文件中仅保留密码占位符“x”

wKiom1MZJNDhgBPXAACpYbD2SLs993.jpg

  • 字段1:用户帐号的名称

  • 字段2:用户密码字串或者密码占位符“x

  • 字段3:用户帐号的UID

  • 字段4:所属基本组帐号的GID

  • 字段5:用户全名

  • 字段6:宿主目录

  • 字段7:登录Shell信息


  • 用于保存密码字串、密码有效期等信息

    • 文件位置:/etc/shadow

    • 每一行对应一个用户的密码记录


      1.默认只有root用户能够读取文件中的内容,并且不允许root直接编辑该文件中的内容

      2.上次修改密码的时间,表示从19700101日(可理解为Unix系统的诞生日)算起到最近一次修改密码时间隔的天数


wKioL1MZJKzRwbRIAACk1IyuUnc157.jpg

   字段1:用户帐号的名称

字段2:加密的密码字串信息

字段3:上次修改密码的时间

字段4:密码的最短有效天数,默认值为0

字段5:密码的最长有效天数,默认值为99999

字段6:提前多少天警告用户口令将过期,默认值为7

字段7:在密码过期之后多少天禁用此用户

字段8:帐号失效时间,默认值为空

字段9:保留字段(未使用)

添加用户账号:

  • useradd命令

    • 格式:useradd[选项]...用户名

  • 常用命令选项

    • -u:指定UID 标记号

    • -d:指定宿主目录,缺省为/home/用户名

    • -e:指定帐号失效时间

    • -g:指定用户的基本组名(或UID号)

    • -G:指定用户的附加组名(或GID号)

    • -M:不为用户建立并初始化宿主目录

    • -s:指定用户的登录Shell

      比如下面我们来用�Cu命令创建一个UID504的用户st02


      [root@localhost~]# useradd -u504 st02

      [root@localhost~]# tail -1 /etc/passwd (查看一下)

      st02:x:504:504::/home/st02:/bin/bash (查看结果)


      这里我们创建一个考试测试用的帐号exam01,指定属于users组,该帐号于2009-07-30失效


      [root@localhost~]# useradd -gusers-e 2009-07-30 exam01


    • 指定mike的基本组为mike,并加入到ftpuser组;指定主目录为/ftphome/mike;不允许mike通过本地登录服务器

wKiom1MZJNOja9e0AABqR-7gmsY751.jpg

(对应的基本组mikeftpuser必须存在,添加组账号的方法后面会讲解)

添加一个新的用户账号后,useradd命令会在该用户的宿主目录中建立一些初始配置文件。这些文件来自于账号的末班目录”/etc/skel/”

  • 文件来源

    • 新建用户帐号时,从/etc/skel 目录中复制而来

  • 主要的用户初始配置文件

    • ~/.bash_profile:用户每次登录时执行

    • ~/.bashrc:每次进入新的Bash环境时执行

    • ~/.bash_logout:用户每次退出登录时执行


wKioL1MZJK7Dl8WtAAByc7dGjVA875.jpg

默认情况下,用户宿主目录下的初始配置文件只对当前用户有效,而全局配置文件对所有用户有效

设置/更改用户口令――passwd

  • passwd命令

    • 格式:passwd[选项]...用户名

  • 常用命令选项

    • -d:清空用户的密码,使之无需密码即可登录

    • -l:锁定用户帐号

    • -S:查看用户帐号的状态(是否被锁定)

    • -u:解锁用户帐号


      不指定用户名时,修改当前账号的密码


wKioL1MZJLGD9XIqAACw8CaZJB4822.jpg

修改用户账号的属性――usermod

  • usermod命令

    • 格式:usermod[选项]...用户名

  • 常用命令选项

    • -l:更改用户帐号的登录名称

    • -L:锁定用户账户

    • -U:解锁用户账户

    • 以下选项与useradd命令中的含义相同

      • -u-d-e-g-G-s


        删除用户账号――userdel


  • userdel命令

    • 格式:userdel[-r]用户名

    • 添加-r 选项时,表示连用户的宿主目录一并删除


      删除用户账号stu01

wKioL1MZJLOA-mIYAADoqDgDc4s489.jpg

组账号文件:

  • 与用户帐号文件相类似

    • /etc/group:保存组帐号基本信息

    • /etc/gshadow:保存组帐号的密码信息

wKiom1MZJNuywPsQAAB5HsbndTw397.jpg

添加组账号――groupadd

  • groupadd命令

    • 格式:groupadd[-g GID]组帐号名

wKiom1MZJNyyMGRXAAB_jtY3eZk330.jpg

添加删除组成员――gpasswd

  • gpasswd命令

    • 用途:设置组帐号密码(极少用)、添加/删除组成员

    • 格式:gpasswd[选项]...组帐号名

  • 常用命令选项

    • -a:向组内添加一个用户

    • -d:从组内删除一个用户成员

    • -M:定义组成员列表,以逗号分隔

wKiom1MZJN-Ah6lGAAELVLS84kg155.jpg

wKioL1MZJLuxaRe3AADuB8MDlOw407.jpg

删除组账号――groupdel

  • groupdel命令

    • 格式:groupdel组帐号名

wKiom1MZJOOwF4cXAAB3Ea-z1TM839.jpg

查询账号信息

  • id命令

    • 用途:查询用户身份标识

    • 格式:id[用户名]

  • groups命令

    • 用途:查询用户所属的组

    • 格式:groups[用户名]

  • finger命令

    • 用途:查询用户帐号的详细信息

    • 格式:finger[用户名]

  • usersw who命令

    • 用途:查询已登录到主机的用户信息


      了解了用户和组之后下面我们再来介绍提下权限,在Linux中,权限没有windows中那么复杂只分为三种,以及文件/目录的归属。


      文件/目录的权限和归属


  • 访问权限

    • 读取r:允许查看文件内容、显示目录列表

    • 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录

    • 可执行x:允许运行程序、切换目录

  • 归属(所有权)

    • 属主:拥有该文件或目录的用户帐号

    • 属组:拥有该文件或目录的组帐号


      查看文件/目录的权限和归属

wKioL1MZJL7SVRA5AACetxF4WXI293.jpg

wKioL1MZJMDjPf7WAACs4kIryMs200.jpg

wKioL1MZJMHSp0F4AABaTI-_6Sw724.jpg

  • “-rw-r―r--”部分的第一个字符表示文件类型,可以是d(目录)b(块设备文件)c(字符设备文件),减号“-”(普通文件)、字母“l”(链接文件)等

  • 其余部分指定了文件的访问权限

  • 在表示属主、属组内用户或其他用户对该文件的访问权限时,主要使用了四种不同的权限字符:r可读w可写x可执行-无权限

  • rwx- 权限字符还可分别表示为8进制数字4210


    设置文件和目录的权限――chmod

  • chmod命令

    • 格式1chmod[ugoa][+-=][rwx]文件或目录...

wKiom1MZJOjAsFTxAAAqWtBRWBA590.jpgwKioL1MZJMKBfTmcAAAjQpuasUs528.jpg

    • 格式2chmod nnn 文件或目录...

                                      wKiom1MZJOmAB-pdAAASHPhJM4s170.jpg

  • 常用命令选项

    • -R:递归修改指定目录下所有子项的全新


      设置文件和目录的归属――chown


  • chown命令

    • 格式:chown属主文件或目录

      chown:属组文件或目录

      chown属主:属组文件或目录

  • 常用命令选项

    • -R:递归修改指定目录下所有文件、子目录的归属




你可能感兴趣的:(linux,权限,程序,账户,用户登录)