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 学习笔记 账号与群组的管理的更多相关文章

  1. linux学习笔记-5.用户和组

    1.添加一个tom用户,设置它属于users组,并添加注释信息 分步完成: useradd tom usermod -g users tom usermod -c "hr tom" ...

  2. Linux学习笔记之1——文件和目录管理(硬连接和软连接)(连结档,相当于快捷方式)

    在这节将要学习linux的连接档,在之前用"ls -l" 查看文件属性的命令时, 其中第二个属性是连接数.那么这个连接数是干什么的?这就要理解inode. 先说一下文件是怎么存储的 ...

  3. Linux学习笔记之磁盘与文件系统的管理

    三.Linux磁盘与文件系统的管理 MBR扇区(512B) 磁盘的分区组成 Boot sector    扇区(用来装引导程序) Super block   记录inode与Block的信息 Inod ...

  4. Linux学习笔记(十四)磁盘管理(二):格式化、挂载以及Swap分区

    一.格式化 第一种写法 mkfs.文件系统 [分区名称(设备文件路径)] 例如:对sdb硬盘的第一个分区以ext3文件系统进行格式化 第二种写法 mkfs -t 文件系统  [分区名称(设备文件路径) ...

  5. Linux学习之CentOS(十)----Linux 的账号与群组

    Linux 的账号与群组 管理员的工作中,相当重要的一环就是『管理账号』啦!因为整个系统都是你在管理的, 并且所有一般用户的账号申请,都必须要透过你的协助才行!所以你就必须要了解一下如何管理好一个服务 ...

  6. Linux学习笔记(五) 账号管理

    1.用户与组账号 用户账号:包括实际人员和逻辑性对象(例如应用程序执行特定工作的账号) 每一个用户账号包含一个唯一的用户 ID 和组 ID 标准用户是系统安装过程中自动创建的用户账号,其中除 root ...

  7. Linux 的账号与群组[转自vbird]

    Linux 的账号与群组 管理员的工作中,相当重要的一环就是『管理账号』啦!因为整个系统都是你在管理的, 并且所有一般用户的账号申请,都必须要透过你的协助才行!所以你就必须要了解一下如何管理好一个服务 ...

  8. Linux学习之CentOS(四)----Linux文件属性、所有者、群组、其他组及文件权限操作简要总结

    Linux文件属性.所有者.群组.其他组及文件权限操作简要总结 首先介绍一个重要的知识点:文件属性控制权限 [root@www ~]# ls -al total 156 drwxr-x--- 4 ro ...

  9. Linux学习笔记(一)2015.4.13

    研究生由单片机转Linux学习 首先安装VMware虚拟机,用的是VMware 10.0 在VMware 10.0上安装视频上推荐的Red Hat Linux 5 安装后正式进入Linux学习 笔记1 ...

随机推荐

  1. 使用PsPing测试Azure虚拟机的连通性

    Azure虚拟机启动后,如果在个人的PC上ping该虚拟机的public IP,会出现Request time out的信息,无法ping通.这是因为在 Azure 中,ICMP 包无法通过防火墙和负 ...

  2. win2012R2 的IIS报错HTTP404,报错在计算机上找不到服务W3SVC等等

    一.背景 今天远程给客户解决IIS的默认网页浏览找不到文件夹,报错HTTP404,找了很多原因,而且也报错在计算机上找不到服务W3SVC等等,如图所示: 二.原因 试了很多方法都不可以重装IIS都不行 ...

  3. 记录下自己VUE项目用Hbuider打包后启动白屏问题

    刚用VUE做项目,之前测试时vue创建的自身项目打包都是启动OK没问题.今天打包自己的时,启动一直白屏.折磨了好久,百度了一堆.终于找到了方法. 首先是在config/index.js里面 build ...

  4. React文档(二十三)Web Components

    React和web components是为了解决不同问题而创立的.web components为可重用组件提供了健壮的封装,而React提供了声明式的库来保持DOM和数据同步.这两点是互相补充的.作 ...

  5. line-height:150%与line-height:1.5的区别

    今天看到一篇文章,说的是CSS学习中的瓶颈,我最近也发现自己css很薄弱,写的样式总是有兼容性问题,要写很久,发现了一个问题,我从来没有用过line-height:150和line-height:1. ...

  6. idea使用eclipse 代码format风格

    为了保证大家代码格式一样,避免在合代码时很出现大面积冲突.针对eclipse和idea两种开发工具进行了代码风格统一. Eclipse 使用方法:Windows → Preferences → Jav ...

  7. PHP的openssl_encrypt方法的Java实现

    <?php class OpenSSL3DES { /*密钥,22个字符*/ const KEY='09bd821d3e764f44899a9dc6'; /*向量,8个或10个字符*/ cons ...

  8. Maven 插件打包部署项目

    clean install -Dmaven.test.skip=true:打包工具 clean package  

  9. 【C/C++】数组 & 指针

    int main() { ]; ]; ][]; ]; ]; ]; ][]; cout << sizeof(a) << endl; cout << sizeof(pa ...

  10. zzw原创_mysql脚本打印出提示信息

    批量执行大量数据库脚本的时候,数据库脚本报错,要定位到哪个脚本,如果数据库脚本中不主动打印脚本信息比较困难 一.ORACLE 在oracle数据库脚本,可以借助prompt比如脚本中放如下语句: pr ...