账号和权限管理

用户账号和组账号概述

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

  • 用户账号
    超级用户、普通用户、程序用户
  • 组账号
    基本组(私有组)
    附加值(公共组)
  • UID和GID
    UID(User IDentity,用户标识号)
    GID(Group IDentify,组标识号)

超级用户的ID初始值为0
普通用户的ID初始值为1 ~ 999(保留一些用户的权限)(创建新的用户都在1000以上)(神州S7)[1~499][创建新的用户都在500以上][神州S6]
程序用户是伪用户,只能运行在服务用户里(不能登录操作系统,只能正常运行服务。例:ftp,apache,svn……服务操作)

只要每个创建的新用户就有基本组(私有组)

/bin/false

/bin/false什么也不做只是返回一个错误状态,然后立即退出。将用户的shell设置为/bin/false,用户会无法登录,并且不会有任何提示。
/usr/sbin/nologin
nologin会礼貌的向用户显示一条信息,并拒绝用户登录又学会一个命令。

普通组:500+(CentOS6),1000+(CENTOS7)
表示该账户需要密码才能登录,为空时,账号无需密码即可登录组账号。

基本组:基于某种特定联系(如都需访问FTP服务)将多个用户集合在一起,即构成一个用户组,表示该组内所有用户的账号称为组账号。每一个用户账号至少属于一个组,这个组称为该用户的基本组(或私有组)。

附加组:揉该用户同时还包含在其他的组中,则这些组称为该用户的附加组(或公共组)。

例:用户 a 是技术部的员工,与部门内的其他同事同属于基本组 A ,后来因工作安排需要,公司将 a 加入邮件管理员组 mailadm ,此时用户 a 同时属于 A 、mailadm组中,A 组是其基本组账号,而 mailadm 组是其附加组账号。

简说:
用户和组的关系、
用户是员工;组是职位
员工可以兼职多个岗位
总有一个最重要的身份:主要组合附加组
主要组:必须要一个组,有且唯一
附加组:可有可无,有可以有多个
默认行为当你创建一个新用户时会自动创建一个和之间同名的主组

用户账号文件/etc/passwd

  • 保存用户名称、宿主目录、登录Shell等基本信息
    文件位置:/etc/passwd
    每一行对应一个用户的账号记录

例:root : x : 0 : 0 : root : / root : / bin / bash
root:用户账号
x:密码占位符(表示次用户舍友密码)
0:用户账号ID(UID)
0:组账号ID(GID)
root:用户说明(描述信息)
/root:用户的宿主目录
/bin/bash:登录shell的信息
“:”:以冒号进行分割,作为分隔符

/etc/shadow

保存用户的账号、密码有效期等信息
文件位置:/etc/shadow
每一行对应一个用户的密码记录

  • /etc/shadow 文件只有root用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性和/etc/passwd 文件一样的,文件中每行代表一个用户,同样使用“:”作为分隔符,不同之处在于,每行用户信息被划分为9个字段。
    ①账号名
    ②存放真正加密的密码,采用SHA512散列算法,更加安全;加密原来用MD5或DES,"!!和 * " 表示没有密码不能登录,新创建用户也是"!!",如果密码前面显示双感叹号表示该账户被锁定了。
    ③上一次修改密码的时间,从1970年1月1日开始算的,因为1970年是Linux的诞生日,date -d “1970-01-01 18983 days”可以查看哪一天改过。
    ④多久之后才可以修改密码,如果是0,则密码可以随时修改
    最小修改间隔时间,也就是说该字段规定了从第三个字段(最后一次修改密码的日期)起,多长时间之内不能修改密码,如果是0则随时修改密码,如果是10则代表密码修改后10天之内不能再次修改密码,此字段是为了针对某些人频繁更改账号密码而设计的。
    ⑤密码有效期,默认99999(273年),表示永久生效
    ⑥密码到期前的第几天发出警告信息,默认是7天,每次登录系统都会向该账号发出“修改密码”的警告信息
    ⑦密码过期的宽限天数,过期后的几天还是可以登陆的,如果过了宽限天数,系统将不再让此账号登陆,也不会提示账户过期,是完全禁用
    ⑧账号失效时间,使用自1970年1月1日以来的总天数作为账户的失效时间
    ⑨保留,未使用

chage命令

用来修改账号和密码的有效期限,针对目前系统已经存在的用户
chage [选项] 用户名

-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有限的最大天数。例:chage -M 60 root
-w:用户密码到期前,提前收到警告信息的天数。
-E:账号到期的日期。过了这天,此账号将不可用。
-d:上一次更改的日期。
-i:停滞时期:如果一个密码已过期这些天,那么此账号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的账号或密码合适过期

添加用户账号

useradd

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

在这里插入图片描述

useradd -e AAAA-BB-CC -s /sbin/nologin xxx (创建的账号到设定的时间过期)

date -s (日期)xxxx/xx/xx)(时间)xx:xx:xx)

设置/更改用户口令passwd

  • passwd命令
    passwd [选择]… 用户名
  • 常用选项
    -d:清空指定用户的密码,仅使用用户名即可登录系统。
    -l:锁定用户账户
    -S:查看用户账户
    -u:解锁用户账户

passwd -d :清空指定用户的密码
在这里插入图片描述
passwd -l :锁定用户账户
在这里插入图片描述
passwd -S:查看用户账户
在这里插入图片描述

passwd -u:解锁用户账户
在这里插入图片描述

调用管道符,给zhangsan用户设置密码“123”,为了方便系统管理,passwd命令提供了—stdin选项,用于批量给用户设置初始密码。
echo “123” | passwd --stdin zhangsan

修改用户账号的属性usermod

  • usermod命令
    usermod [选项]… 用户名

  • 常用选项
    -l:更改用户账号的登录名称
    -L:锁定用户账户
    -U:解锁用户账户

  • 以下选项与useradd命令中的含义相同(简化)
    -u:修改用户的UID号
    -d:修改用户的宿主目录位置
    -e:修改用户的账户失效时间
    -g:修改用户的基本组名
    -G:修改用户的附加组名
    -s:指定用户登录Shell

在这里插入图片描述

删除用户账号userdel

  • userdel命令
    userdel [-r] 用户名
  • 添加-r选项时,标识连用户的宿主目录一并删除
    (-r 所有的关于用户的东西一切的都删除(若不-r会残留临时文件))
    在这里插入图片描述

用户账号的初始配置文件

  • 文件来源
    新建用户账号时,从/etc/skel目录中复制而来
  • 主要的用户初始配置文件
    ~/.bash_profile
    ~/.bashrc
    ~/.bash_logout
    ls -a /etc/skel
    -a显示所有(包括隐藏文件)才可查看所有文件,里面有隐藏文件

组账号文件

  • 与用户账号文件相类似
    /etc/group:保存组账号基本信息
    /etc/gshadow:保存组账号的密码信息

系统自带的/etc/group跟/etc/gshadow

添加组账号groupadd

  • groupadd命令
    groupadd [-g GID] 组账号名

在这里插入图片描述

添加删除组成员gpasswd

  • gpasswd命令
    设置组账号密码(极少用)、添加/删除组成员
    gpasswd [选项]… 组账号名
  • 常用选项
    -a:向组内添加一个用户
    -d:从组内删除一个用户成员
    -M:定义组成员列表,以逗号分隔
    -r: 删除密码
    -R:限制用户登入组

gpasswd -a:向组内添加一个用户
在这里插入图片描述 passwd -d:从组内删除一个用户成员
在这里插入图片描述
gpasswd -M:定义组成员列表,以逗号分隔
在这里插入图片描述

删除组账号groupdel

  • groupdel命令
    groupdel 组账号名
    例:
    在这里插入图片描述

查询账号信息

- groups命令

查询用户所属组
groups [用户名]
在这里插入图片描述

- id命令

查询用户身份标识
id [用户名]
在这里插入图片描述

finger命令

  • 查询用户账号的详细信息
    finger [用户名]
    ps:finger需要提前安装:yum install finger -y

  • w、who、users命令
    查询已登录到主机的用户信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

文件/目录的权限和归属

  • 访问权限
    读取r:允许查看文件内容、显示目录列表
    写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
    可执行x:允许运行程序、切换目录
  • 归属(所有权)
    属主:拥有该文件或目录的用户账号
    属组:拥有该文件或目录的组账号

例:
[root@localhost ~]#ls -l install.log
-rw-r–r-- 1 root root 34298 04-02 00:23 install.log
-rw-r–r--:文件类型、权限
root root:属主、属组

-rw-r–r--
在这里插入图片描述

设置文件和目录的权限chmod

  • chmod命令
    chmod [ugoa] [+ - =] [rwx] 文件或目录…

    chmod nnn 文件或目录…
    [ugoa]u、g、o、a分别表示属主、属组、其他用户、所有用户
    [+ - =]+、-、=分别表示增加、去除、设置权限
    [rwx]r、w、x分别表示读、写、运行权限
    nnn(3位八进制数)

  • 常用选项
    -R:递归修改指定目录下所有子项的权限

权限掩码umask

  • umask作用
    控制新建的文件或者目录的权限
    默认权限去除umask的权限为新建的文件或者目录的权限
  • umask设置:umask 022
  • umask查看:umask
  • 示例
    将umask设为000,新建目录或者文件,查看权限
    将umask设为022,新建目录或者文件,再查看权限

总结

  • 用户账号的管理(useradd、passwd、usermod、userdel)
  • 组账号的管理(groupadd、gpasswd、groupdel)
  • 用户账号文件于组账号文件
  • 查询账号相关信息的命令(groups、id、finger、w)
  • 设置目录与文件的权限(chmod)
  • 设置目录与文件的归属(shown)
  • 权限掩码(umask)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值