Linux多用户操作

账户实质

  • 账户实质上就是一个用户在系统上的标识

    • 系统根据账户来区分每个用户的文件、进程、任务,给每个用户提供特定的工作环境(如用户的工作目录、shell版本、以及X-Window环境的配置等),使每个用户的工作都能独立不受干扰地进行。
  • Linux中的账户包括

    • 用户账户
    • 组账户

用户

  • Linux系统下的用户账户(简称用户)有三种:

    • 普通用户:在系统上的任务是进行普通工作,由系统管理员创建分配。
    • 超级用户(或管理员账户):在系统上的任务是对配普通用户和整个系统进行管理,可以访问所有文件
    • 系统用户:系统张昌工作内奸的用户,供内核使用
  • 每个用户都被分配了一个唯一的用户ID号(UID)

    • 超级用户:UID = 0,GID = 0
    • 普通用户:UID>=1000
    • 系统用户(伪用户,不可登录):0<UID<1000
  • 用户名和UID被保存在/ect/passwd文件中

  • 当用户登录时,他们被分配了一个主目录和一个运行的程序(通常时shell)

  • 若无适当权限,用户无法读取、写入或执行彼此的文件

  • 组是用户的集合
  • 每个组都被分配了一个唯一的组ID号(GID)
  • 组和GID被保存在/etc/group 文件中
  • 每个用户都有他们自己的私有组
  • 每个用户都可以被添加到其他组中来获得额外的存取权限
  • 组中的所有用户都可以共享属于该组的文件

标准组和私有组

  • 标准组

    • 每个用户可以属于多个标准组
    • 若使用标准组,在创建一个新的用户时就应该指定他所属于的组
  • 私有组

    • 每个用户只有一个私有组
    • 当在创建一个新用户时,若没有指定其所属的私有组,RHEL/CentOS默认建立一个和该用户同名的私有组,且用户被分配到这个私有组中。

用户和组的关系

  • 组是用户的集合
  • 一个标准组可以容纳多个用户
  • 同一个用户可以属于多个组,这些组可以是私有组,也可以是标准组
  • 当一个用户属于多个组时,将这些组分为:
    • 主组(初始组):用户登录系统时的组
    • 附加组:登录后可切换的其他组

账户管理

  • 默认启用shadow passwords功能

    • /etc/passwd文件对任何用户均可读,为了增加系统的安全性,用户的口令通常用shadow passwords保护。
    • 经过保护的账户密码和相关设置信息保存在/etc/shadow文件里。/etc/shadow只对root用户可读。
    • 默认使用sha512哈希算法存储用户的口令。
  • 一般不设置组口令。因为绝大多数应用程序不使用它

  • 建议尽量使用私有组来提高系统安全性

  • 管理工具由shadow-utils软件包提供

  • 不建议管理员直接编辑系统账户文件来维护账户

账户验证信息文件

  • 口令文件/etc/passwd

    • 文件权限(-re-r–r--)
  • 影子口令文件 /etc/shadow

    • 文件权限(-r--------)
  • 组账号文件 /etc/group

    • 文件权限(-rw-r–r--)
  • 组口令文件 /etc/gshadow

    • 文件权限(-r---------)

口令文件

  • 每一个用户一条记录
  • 每条记录由用分号间隔的七个字段组成
字段 说明
name 用户名
password 在此文件中的口令是x,这表示用户的口令是被/etc/shadow文件保护的
uid 用户的识别号,是一个数字。每个用户的UID都是唯一的
gid 用户的组的识别号,也是一个数字。每个用户账户在建立好后都会有一个主组。主组相同的账户其GID相同。
description 用户的个人资料,包括地址、电话等信息
home 用户的主目录,通常在/home下,目录名和账户名相同
shell 用户登录后启动的shell,默认是/bin/bash

影子口令文件 /etc/shadow

  • 每一个用户一条记录
  • 每条记录由用分号间隔的九个字段组成
字段 说明
用户名 用户登录名
口令 用户的密码,是加密过的(MD5)
最后一次修改的时间 从1970年1月1日起,到用户最后一次更改密码的天数
最小时间间隔 从1970年1月1日起,到用户应该更改密码的天数
最大时间间隔 从1970年1月1日起,到用户必须更改密码的天数
警告时间 在用户密码过期之前多少天提醒用户更新
不活动时间 在用户密码过期之后到禁用账户的天数
失效时间 从1970年1月1日起,到账户被禁用的天数
标志 保留位

组账号文件/etc/group

  • 每一个一条记录
  • 每条记录由用分号间隔的四个字段组成
字段 说明
组名 这是用户登录系统时的默认组名,它在系统中是唯一的
口令 组口令,由于安全性原因,已不使用该字段保存口令,用“x”占位
组ID 是一个整数,系统内部用它来标识组
组内用户列表 属于该组的所有用户名表,列表中多个用户间用“,”分隔

组口令文件/etc/gshadow

  • 每一个组一条记录
  • 每条记录由分号间隔的四个字段组成
字段 说明
组名 组名称,该字段与group文件中的组名称对应
加密的组口令 用于保存已加密的口令
组的管理员账号 管理员有权对该组添加删除账号
组内用户列表 属于该组的用户成员列表,列表中多个用户间用“,”分隔

用户和组管理工具

  • 用户管理

    • useradd
    • usermod
    • userdel
  • 组管理

    • groupadd
    • groupmod
    • groupdel

添加用户账号(useradd)

  • 格式

    # useradd [<选项>] <用户名>
    
  • 常用选项

    -g group 指定新用户的主(私有)组。
    -G group 指定新用户的附加组。
    -d directory 指定新用户的自家目录。
    -s shell 指定新用户使用的Shell,默认为bash。
    -e expire 指定用户的登录失效时间,例如:08/10/2001
    -M 不建立新用户的自家目录。

添加用户时系统的处理过程

  • 编辑账户验证信息文件,写入新用户记录

    • /etc/passwd,/etc/shadow
    • /etc/group,/etc/gshadow
  • 创建主目录 /home/

  • 设置权限和拥有者

设置用户密码(口令)

  • 命令格式

    • passwd [<用户账号名>]
  • 使用举例

    • 设置用户自己的口令

    • $ passed
      
    • # passwd
      
    • root 用户设置他人的口令

    • # passwd user1
      

修改用户账号

  • 格式

    # usermod [<选项>] <用户名>
    
  • 选项与useradd命令基本相同

删除用户账户

  • 格式

    # userdel [<-r>] <用户名>
    
    • 选项-r用于删除用户的主目录

添加组账号

  • 格式

    # groupadd [<参数>] <组账户名>
    
  • 常用命令

    • 参数-r用于创建系统组账号(GID小于500)
    • 参数-g用于指定GID

修改组账号

  • 格式

    # groumod [<参数>] <组账号名>
    
  • 常用参数

    • 参数-g改变组账号的GID,组账号名保持不变
    • 参数-n改变组账号名

删除组账号名

  • 格式

    # groupdel <组账号名>
    
  • 注意

    • 被删除的组账号必须存在
    • 当有用户使用组账号作为私有组时不能删除
    • 与用户名同名的私有组账号在使用userdel命令删除用户时被同时删除,无需使用groupdel命令。

组成员管理

  • 向标准组中添加用户

    • gpasswd -a <用户账号名> <组账号名>

    • usermod -G <组账号名> <用户账号名>

      # gpasswd -a user1 staff
      
  • 从标准组中删除用户

    • gpasswd -d <用户账号名> <组账号名>
# gpasswd -d user1 staff

用户切换命令

  • su

    • 直接切换为超级用户
    • 普通用户要切换为超级用户必须知道超级用户的口令
    • 适用于系统中只有单个管理员的情况
  • sudo

    • 直接使用sudo命令前缀执行系统管理命令
    • 执行系统管理命令时无需知道超级用户的口令,使用普通用户自己的口令即可。
    • 由于执行系统管理命令时无需知晓超级用户口令,所以适用于系统中有多个系统管理员的情况,因为这样就不会泄露超级用户口令。当然系统只有单个系统管理员时也可以使用。

账户相关命令

id 显示用户当前的uid、gid和用户所属的组列表
groups 显示指定用户所属的组列表
whoami 显示当前用户的名称
w/who 显示登录用户及相关信息
newgrp 用于转换用户的当前组到指定的组账号,用户必须属于该组才可以正确执行该命令

权限概述

  • Linux是多用户的操作系统,允许多个用户同时在系统上登录和工作。
  • 为了确保系统和用户的安全采取了如下安全措施
    • 通过UID/GID确定每个用户在登录系统后做些什么
    • 通过UID/GID来区别不同用户所建立的文件或目录
    • 每个文件或目录都属于一个UID和一个GID
    • 每个进程都使用一个UID和一个或多个GID来运行
    • 通常由被运行进程的用户决定
    • 超级用户具有一切权限,无需特殊说明
    • 普通用户只能操作自己主目录及其子目录下的所有文件,对系统中其他目录/文件的访问受到限制
权限 描述字符 对文件的含义 对目录的含义
读权限 r 可以读取文件的内容 可以列出目录中的文件列表
写权限 w 可以修改或删除文件 可以在该目录中创建或删除文件或子目录
执行权限 x 可以执行该文件 可以使用cd命令进入该目录
  • 9 个字符每 3 个一组,组成 3 套 权限控制

    • 第一套控制文件所有者的访问权限
    • 第二套控制所有者所在用户组的其他成员的访问权限
    • 第三套控制系统其他用户的访问权限

每个用户都拥有自己的专属目录(主目录),通常放置在/home目录下,这些专属目录的默认权限通常为:drwx------

与权限相关的命令

  • chmod

    • 改变所属文件或目录的权限
  • chown

    • 改变文件或目录的属主(所有者)
  • chgrp

    • 改变文件或目录所属的组

chmod的文字设定法

chmod [操作对象] [操作符号] [访问权限] 文件或目录名

在一个命令行中可给出多个权限模式,其间用逗号间隔

chmod的数字设定法

chmod n1n2n3 文件或目录名
  • 使用三个数字来表示,分别表示用户(n1)、同组用户(n2)和其他用户(n3)的访问权限
  • 每个数字模式(n1|n2|n3)由不同权限所对应的数字相加得到一个表示访问权限的八进制数字
权限 对应数字
r 4
w 2
x 1
- 0

改变文件/目录属主或组

  • 只有root用户才能改变文件的所有者
  • 只有root用户或所有者才能改变文件所属的组
  • 用 chown 命令改变属主 和/或 组
    chown [-R] <用户名[<.|:>组名]> <文件|目录>
  • chgrp 被用来改变所属组
    chgrp [-R] <组名> <文件|目录>

Linux多用户操作基础相关推荐

  1. Linux(debian7)操作基础(十二)之文件加密使用指南

    ⑴ 普通文件加密 ① OpenSSL ② GnuPG 缺点:只适合加密保存,不适合运行. 请参考原文:https://blog.gtwang.org/linux/how-to-encrypt-data ...

  2. Linux(debian7)操作基础(四)之CPU频率调整

    在Linux中,内核的开发者定义了一套框架模型来完成CPU频率动态调整这一目的,它就是CPU Freq系统.如下为CPU的几种模式(governor参数): ondemand:系统默认的超频模式,按需 ...

  3. Linux(debian7)操作基础(三)之PCI/PCI-E设备配置空间

    ⑴ 概念 PCI和PCI Express,是计算机常使用的一种高速总线.操作系统中的PCI/PCI-E设备驱动以及操作系统内核,都需要访问PCI及PCI-E配置空间.PCI/PCI-E设备的正常运行, ...

  4. Linux(debian)操作基础(一)之压缩、解压缩

    tar命令 使用详解 (1) 参数: -c :建立一个压缩文件的参数指令(create 的意思): -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 特别注意,在参数的 ...

  5. Linux系统操作基础——虚拟化部署

    目录 一.KVM安装条件 二.手动安装虚拟机 三.虚拟机管理命令 四.虚拟机快照 1.更改虚拟机名称 2.创建虚拟机快照并使用 一.KVM安装条件 Inter        CPU VMX ADM   ...

  6. Linux(debian7)操作基础(十五)之systemd下lightdm免密登录

    继上一篇lightdm详解中介绍了如何免密登陆之后, 最近由于系统把启动方式升级成了systemd方式, 突然发现不能使用该方式进行自动登陆了, 然后上网查资料, 发现根本没有, 自己经过研究后发现, ...

  7. Linux(debian7)操作基础(十四)之文本搜索命令grep使用方法

    一.简介 grep(global search regular RE ) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它只能使用基本的正则 ...

  8. Linux(debian7)操作基础(十三)之shell脚本同时执行多个应用程序

    (1) 使用&符号让应用程序在后台运行即可 ./myapp1 & ./myapp2 & ./myapp

  9. Linux(debian7)操作基础(十)之字符界面使用指南

    (1) 字符界面下如何免密登陆? ① 使用命令:sudo vim /etc/inittab ② 在/etc/inittab下更改54行中为"1:2345:respawn:/bin/login ...

最新文章

  1. P2P之UDP穿透NAT的原理
  2. LA3177 - Beijing Guards(二分+贪心【更优美的解法)
  3. 一个成功的系统很容易重复过去从而僵化,从而被取代
  4. 如何更改CPropertySheet的背景色
  5. 深入浅出学Hive:Hive优化
  6. scapy 安装及简单测试
  7. 【结论】游戏(jzoj 5536)
  8. 不带头节点的链表有哪些缺点_14. 删除链表中重复的结点
  9. c语言截图代码,截图代码 哪位大神帮我找一下错,截出来的图是这样子的
  10. python泰坦尼克号数据预测_机器学习入门之Python机器学习:泰坦尼克号获救预测一...
  11. 智能行业热点速览(2019.7.15)
  12. matlab2c使用c++实现matlab函数系列教程-fft函数
  13. python入门书?
  14. Hadoop家族学习路线图v
  15. vs2013 MFC入门
  16. 彼得林奇投资策略精髓
  17. 本人已搬至博客园,感谢CSDN的一路陪伴
  18. 山石防火墙--飞塔防火墙间GRE配置
  19. 平板触控笔要原装的吗?时下最火的平替苹果笔测评
  20. 基于django的轻量级CMS Mezzanine搭建笔记

热门文章

  1. Pandas-常用命令行-速查
  2. php json schema,JSON Schema Validation介绍
  3. SSL证书与Https应用部署小结
  4. 礼品代发云仓API接口,云仓批量同步接口文档
  5. 分类决策树考虑了经验风险吗_分类决策树与去还是不去
  6. 社区团购|生鲜团购|基于Springboot+Vue实现前后端分离社区团购
  7. 计算机无线网络怎么连接,Win7电脑如何连接无线网络
  8. 抽象语法树 c语言,AST抽象语法树
  9. mysql 5.7 多个_mysql5.7多实例
  10. arcgis/core学习实践(二)