Linux多用户操作基础
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多用户操作基础相关推荐
- Linux(debian7)操作基础(十二)之文件加密使用指南
⑴ 普通文件加密 ① OpenSSL ② GnuPG 缺点:只适合加密保存,不适合运行. 请参考原文:https://blog.gtwang.org/linux/how-to-encrypt-data ...
- Linux(debian7)操作基础(四)之CPU频率调整
在Linux中,内核的开发者定义了一套框架模型来完成CPU频率动态调整这一目的,它就是CPU Freq系统.如下为CPU的几种模式(governor参数): ondemand:系统默认的超频模式,按需 ...
- Linux(debian7)操作基础(三)之PCI/PCI-E设备配置空间
⑴ 概念 PCI和PCI Express,是计算机常使用的一种高速总线.操作系统中的PCI/PCI-E设备驱动以及操作系统内核,都需要访问PCI及PCI-E配置空间.PCI/PCI-E设备的正常运行, ...
- Linux(debian)操作基础(一)之压缩、解压缩
tar命令 使用详解 (1) 参数: -c :建立一个压缩文件的参数指令(create 的意思): -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 特别注意,在参数的 ...
- Linux系统操作基础——虚拟化部署
目录 一.KVM安装条件 二.手动安装虚拟机 三.虚拟机管理命令 四.虚拟机快照 1.更改虚拟机名称 2.创建虚拟机快照并使用 一.KVM安装条件 Inter CPU VMX ADM ...
- Linux(debian7)操作基础(十五)之systemd下lightdm免密登录
继上一篇lightdm详解中介绍了如何免密登陆之后, 最近由于系统把启动方式升级成了systemd方式, 突然发现不能使用该方式进行自动登陆了, 然后上网查资料, 发现根本没有, 自己经过研究后发现, ...
- Linux(debian7)操作基础(十四)之文本搜索命令grep使用方法
一.简介 grep(global search regular RE ) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它只能使用基本的正则 ...
- Linux(debian7)操作基础(十三)之shell脚本同时执行多个应用程序
(1) 使用&符号让应用程序在后台运行即可 ./myapp1 & ./myapp2 & ./myapp
- Linux(debian7)操作基础(十)之字符界面使用指南
(1) 字符界面下如何免密登陆? ① 使用命令:sudo vim /etc/inittab ② 在/etc/inittab下更改54行中为"1:2345:respawn:/bin/login ...
最新文章
- P2P之UDP穿透NAT的原理
- LA3177 - Beijing Guards(二分+贪心【更优美的解法)
- 一个成功的系统很容易重复过去从而僵化,从而被取代
- 如何更改CPropertySheet的背景色
- 深入浅出学Hive:Hive优化
- scapy 安装及简单测试
- 【结论】游戏(jzoj 5536)
- 不带头节点的链表有哪些缺点_14. 删除链表中重复的结点
- c语言截图代码,截图代码 哪位大神帮我找一下错,截出来的图是这样子的
- python泰坦尼克号数据预测_机器学习入门之Python机器学习:泰坦尼克号获救预测一...
- 智能行业热点速览(2019.7.15)
- matlab2c使用c++实现matlab函数系列教程-fft函数
- python入门书?
- Hadoop家族学习路线图v
- vs2013 MFC入门
- 彼得林奇投资策略精髓
- 本人已搬至博客园,感谢CSDN的一路陪伴
- 山石防火墙--飞塔防火墙间GRE配置
- 平板触控笔要原装的吗?时下最火的平替苹果笔测评
- 基于django的轻量级CMS Mezzanine搭建笔记
热门文章
- Pandas-常用命令行-速查
- php json schema,JSON Schema Validation介绍
- SSL证书与Https应用部署小结
- 礼品代发云仓API接口,云仓批量同步接口文档
- 分类决策树考虑了经验风险吗_分类决策树与去还是不去
- 社区团购|生鲜团购|基于Springboot+Vue实现前后端分离社区团购
- 计算机无线网络怎么连接,Win7电脑如何连接无线网络
- 抽象语法树 c语言,AST抽象语法树
- mysql 5.7 多个_mysql5.7多实例
- arcgis/core学习实践(二)