LINUX 学习笔记 账号与群组的管理
LINUX 账号与群组的管理
UID:UserID 保存文件:/etc/passwd
GID:GroupID 保存文件:/etc/group
/etc/passwd 文件结构
一行代表一个账号,里面还有系统账号,不能乱动
例如:
root:x:0:0:root:/root:/bin/bash
总共7部分,用:分割
1. 账号名称:就是账号,与UID对应
2. 密码:加密了 变成XXX 放到/etc/shadow文件中了
3. UID: 这个就是使用者标识码
4. GID:这个就是组ID /etc/group
5. 使用者信息说明:就是个介绍
6. 主文件夹:这是使用者的主文件夹
7. Shell:登录之后的Shell 如果设置为:
/sbin/nologin 就无法取得shell
/etc/shadow 文件结构
例如:
root:$6$CrPIw79nrmdxd4wo$MjJ5e9xuxJ49BjwxkWKKhZk1QZse03TVr8bJOWTHnq2A5x98tFDFxhtsMhMk4X/P4urrZWb4tb3Xv3yvkMqCK.:17345:0:99999:7:::
一共9个字段,用:分割
1. 账号名称:与/etc/passwd对应
2. 密码:真正的密码数据,经过加密的,反正 人看不懂
3. 最近改动密码的日期 以1970.1.1开始一天加一
4. 密码不可被更动的天数
5. 密码需要重新变更的天数
6. 密码需要变更期限前的警告天数
7. 密码过期后的账号宽限时间
8. 账号失效日期:起始日期为1970.1.1
计算公式
9. 保留字段
$(($(date--date=”2015/05/04” +%s)/86400+1))
/etc/group 文件结构
与GID对应
root:x:0:lixue
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
总共四部分 用:分割
1. 群组名称 与GID 对应
2. 群组密码 通常不需要设置
3. GID 群组ID
4. 该群组 名下的 账号
每个账号 可以 属于多个群组
初始群组 /etc/passwd 的群组
有效群组 groups命令
[lixue@localhost ~]$ groups
lixue root
第一个就是有效群组
touch 一个文件试试
-rw-rw-r--. 1 lixue lixue 0 7月 30 17:29 test.txt
通常有效群组的作用是在新建文件
有效群组的切换
newgrp 命令
可以切换群组 ,条件是 必须是你已经有支持的群组
而且 是以新的shell运行的,如果要回到之前的shell,exit命令
/etc/gshadow
使用:分割 为4部分
root:::lixue
bin:::bin,daemon
daemon:::bin,daemon
sys:::bin,adm
1. 群组名称
2. 密码栏 如果!或空 表示 不具有群组管理员
3. 群组管理员的账号
4. 该群组名下的 用户
账号管理
新增与移除用户
useradd,usermod,userdel,passwd
useradd
–u UID
–g 初始群组
-G 次要群组
-M 强制不要创建使用者主文件夹
-m 强制要创建使用者主文件夹
-c 说明栏 一些介绍
-d 指定某个目录为主文件夹 ,不用默认的,必须为绝对路径
-r 创建一个系统账号,这个账号的UID会有限制
-s 后面接一个shell 若没有指定,默认为/bin/bash
-e 账号失效日期,格式为:“YYYY-MM-DD”
-f 0为立刻失效 -1 为永远不会失效
默认 主文件夹的权限为 700
系统会默认帮我们处理几个项目:
1. 在/etc/passwd 里面创建一行与账号相关的数据,包括创建UID/GID/主文件夹等
2. 在/etc/shadow里面将此账号的密码相关参数填入,但是尚未有密码
3. 在/etc/group里面加入一个与账号名称一模一样的群组名称
4. 在/home 下面创建一个与账号同名的目录作为使用者主文件夹,且权限为700
还需要用passwd 给用户设置密码
系统账号 –r 不会创建用户目录
useradd –D 调出 默认信息的参考信息
位置在/etc/default/useradd
GROUP=100
HOME=/home 基准目录
INACTIVE=-1 密码过期后是否会失效的设置值,0 代表密码过期立刻失效,-1代表密码永远不会失效
EXPIRE= 账号失效日期
SHELL=/bin/bash 默认使用的shell程序文件名
SKEL=/etc/skel 使用者主文件夹参考基准目录 主目录的框架
CREATE_MAIL_SPOOL=yes 创建使用者的mailbox
/var/spool/mail/
但是实际上却是组名和用户名一致
两种机制
私有群组机制
忽略GROUP=100
只有用户自己能进入自己的主文件夹
700权限的原因
公共群组机制
使用GROUP=100 这个设置值作为新建账号群组,因此每个账号都属于users,默认主文件夹大家都可以访问
UID/GID 参考值
/etc/login.defs
passwd 命令
-l lock 会将 /etc/shadow 第二栏 最前面加上! 是密码失效
-u unlock 意思
-S 列出密码相关参数,亦即 shadow文件的大部分信息
-n 参数为天数,shadow的第4个字段,多久不可修改密码天数
-x 参数为天数,shadow的第5个字段,多久内必须要更改密码
-w 参数为天数,shadow的第6个字段,密码过期前的警告天数
-i 参数为天数,shadow的第7个字段,密码失效日期
chage 命令
-l 列出该账号的详细密码参数
-d 后面接日期,修改 shadow 第三字段,最近一次更改密码的日期,格式 YYYY-MM-DD
-E 后面接日期,修改shadow 第八字段,账号失效日期,格式 YYYY-MM-DD
-I 后面接天数,修改shadow 第七字段,密码失效日期
-m 后面接天数,修改shadow 第四字段,密码最短保留天数
-M 后面接天数,修改shadow 第五字段,密码多久需要进行变更
-W后面接天数,修改shadow第六字段,密码过期前警告日期
usermod
-c 账号说明栏的内容,更改
-d 账号的主文件夹,即修改 /etc/passwd的第六栏
-e 后面接日期,格式 YYYY-MM-DD 也就是 /etc/shadow 内的第八个字段数据
-f 后面接天数,为shadow的第七字段
-g 初始群组 修改/etc/passwd 的第四个字段
-G 次要群组 修改 /etc/group
-a 新增次要群组 而非 设置
-l 修改账号名称
-s 后面接shell 实际文件 例如:/bin/bash
-u 后面接UID
-L lock改的是/etc/shadow第三栏的数据
-U unlock
uerdel 删除用户的相关数据
账号密码相关:/etc/passwd,/etc/shadow
使用者群组相关:/etc/group,/etc/gshadow
使用者个人文件数据:/home/username,/var/spool/mail/username
userdel –r username
-r 连同使用者的主文件夹也一起删除
使用者功能:
Id
uid=501(lixue) gid=501(lixue) 组=501(lixue),0(root)
finger
-s 仅列出使用者的账号、全名、终端机代号与登录时间
-m 列出与后面接的账号相同者,而不是利用部分比对
Login: 账号
Name:全名
Directory:主文件夹
Shell:就是使用的Shell文件所在
Never logged in:账户登录情况
No mail :信箱数据
No Plan: ~user/.plan文件
chfn
-f:改全名
-o:改办公室的房间号码
-p 改办公室的电话号码
-h 家里的电话号码
chsh
-l 列出目前系统上面可用的shell,其实就是/etc/shells的内容
新增与移除群组
groupadd
-g 接GID
-r 创建系统群组 与/etc/login.defs内的GID_MIN有关
groupmod
-g 修改GID
-n 修改组名
groupdel
直接删 没什么说的 组里面别有人,再不就是 把那个人 所属的这个组给干掉
gpasswd
-A 将groupname的主控权交由后面的使用者管理
-M 将某些账号加入这个群组当中
-r 将groupname 的密码移除
-R 让groupname的密码栏失效
-a 将某位使用者加入到groupname 这个群组当中
-d 将某位使用者移除出 groupname 这个群组当中
LINUX 学习笔记 账号与群组的管理的更多相关文章
- linux学习笔记-5.用户和组
1.添加一个tom用户,设置它属于users组,并添加注释信息 分步完成: useradd tom usermod -g users tom usermod -c "hr tom" ...
- Linux学习笔记之1——文件和目录管理(硬连接和软连接)(连结档,相当于快捷方式)
在这节将要学习linux的连接档,在之前用"ls -l" 查看文件属性的命令时, 其中第二个属性是连接数.那么这个连接数是干什么的?这就要理解inode. 先说一下文件是怎么存储的 ...
- Linux学习笔记之磁盘与文件系统的管理
三.Linux磁盘与文件系统的管理 MBR扇区(512B) 磁盘的分区组成 Boot sector 扇区(用来装引导程序) Super block 记录inode与Block的信息 Inod ...
- Linux学习笔记(十四)磁盘管理(二):格式化、挂载以及Swap分区
一.格式化 第一种写法 mkfs.文件系统 [分区名称(设备文件路径)] 例如:对sdb硬盘的第一个分区以ext3文件系统进行格式化 第二种写法 mkfs -t 文件系统 [分区名称(设备文件路径) ...
- Linux学习之CentOS(十)----Linux 的账号与群组
Linux 的账号与群组 管理员的工作中,相当重要的一环就是『管理账号』啦!因为整个系统都是你在管理的, 并且所有一般用户的账号申请,都必须要透过你的协助才行!所以你就必须要了解一下如何管理好一个服务 ...
- Linux学习笔记(五) 账号管理
1.用户与组账号 用户账号:包括实际人员和逻辑性对象(例如应用程序执行特定工作的账号) 每一个用户账号包含一个唯一的用户 ID 和组 ID 标准用户是系统安装过程中自动创建的用户账号,其中除 root ...
- Linux 的账号与群组[转自vbird]
Linux 的账号与群组 管理员的工作中,相当重要的一环就是『管理账号』啦!因为整个系统都是你在管理的, 并且所有一般用户的账号申请,都必须要透过你的协助才行!所以你就必须要了解一下如何管理好一个服务 ...
- Linux学习之CentOS(四)----Linux文件属性、所有者、群组、其他组及文件权限操作简要总结
Linux文件属性.所有者.群组.其他组及文件权限操作简要总结 首先介绍一个重要的知识点:文件属性控制权限 [root@www ~]# ls -al total 156 drwxr-x--- 4 ro ...
- Linux学习笔记(一)2015.4.13
研究生由单片机转Linux学习 首先安装VMware虚拟机,用的是VMware 10.0 在VMware 10.0上安装视频上推荐的Red Hat Linux 5 安装后正式进入Linux学习 笔记1 ...
随机推荐
- Java多线程之volatile关键字《一》
关键字volatile的主要作用是使变量在多个线程间可见. 1.关键字volatile与死循环 如果不是在多继承的情况下,使用继承Thread类和实现Runnable接口在取得程序运行的结果上并没有什 ...
- Go语言学习之11 日志收集系统kafka库实战
本节主要内容: 1. 日志收集系统设计2. 日志客户端开发 1. 项目背景 a. 每个系统都有日志,当系统出现问题时,需要通过日志解决问题 b. 当系统机器比较少时,登陆到服务器上查看即可 ...
- 【转载】Java性能优化之JVM GC(垃圾回收机制)
文章来源:https://zhuanlan.zhihu.com/p/25539690 Java的性能优化,整理出一篇文章,供以后温故知新. JVM GC(垃圾回收机制) 在学习Java GC 之前,我 ...
- Element-ui框架checkbox复选框回显
先看下效果是不是你需要的..... 然后废话不多说,上代码,希望能够帮助到你... <template> <div class=''> <el-form label-wi ...
- yii依赖注入和依赖注入容器
依赖注入和依赖注入容器¶ 为了降低代码耦合程度,提高项目的可维护性,Yii采用多许多当下最流行又相对成熟的设计模式,包括了依赖注入(Denpdency Injection, DI)和服务定位器(Ser ...
- 【C语言】数组知识点总结
[C语言]数组知识点总结 标签: 数组 2018年04月12日 17:44:4481人阅读 评论(0) 收藏 举报 分类: C语言知识总结(4) 版权声明:本文为博主原创文章,未经博主允许不得转载 ...
- 复仇之路——我一定要学会linux系统
说起linux,我不知道大家对这几个字母有什么认识,是不是早已经对这个操作系统已经很熟悉了?还是不知道他是一个操作系统,只是知道他是一个英文单词?或是知道他是一个人的名字?亦或是一本叫做<Lin ...
- Android反编译apk并重新打包签名(Mac环境)
工具下载 apktool :https://ibotpeaches.github.io/Apktool/install dex2jar:https://github.com/pxb1988/dex2j ...
- python修炼第七天
第七天面向对象进阶,面向对象编程理解还是有些难度的,但是我觉得如果弄明白了,要比函数编程过程编程省事多了.继续努力! 1.面向对象补充: 封装 广义上的封装:把变量和函数都放在类中狭义上的封装:把一些 ...
- springboot 多端口启动
以eclipse(STS)为例, 选中项目右键Run Configurations 点击Spring Boot App,选中需要设定多端口项目,在启动参数一栏输入:-Dserver.port=7003 ...