用户 创建流程模拟

总代码

[root@localhost ~]# vim /etc/passwd  #1

[root@localhost ~]# mkdir /home/rose

[root@localhost ~]# vim /etc/shadow  #2

[root@localhost ~]# vim /etc/group  #3
[root@localhost ~]# vim /etc/gshadow  #4
[root@localhost ~]# ls /var/spool/mail
bi egon rpc tom wushang
[root@localhost ~]# ls /var/spool/mail/
bi egon rpc tom wushang
[root@localhost ~]# touch /var/spool/mail/rose
[root@localhost ~]#
[root@localhost ~]# useradd new_user
[root@localhost ~]# ls /home/new_user/
[root@localhost ~]# ls -a /home/new_user/
. .. .bash_logout .bash_profile .bashrc .mozilla
[root@localhost ~]# rm -rf /home/rose/.[!.]* #清楚文件的所有内容(包含隐藏文件)
[root@localhost ~]# ls -a /home/rose/
. ..
[root@localhost ~]# cp -r /etc/skel/.[!.]* /home/rose/
[root@localhost ~]#
[root@localhost ~]# ls -a /home/rose/
. .. .bash_logout .bash_profile .bashrc .mozilla

#1注意是 :

#2

#3

#4

[root@localhost /]# useradd tom
[root@localhost /]# id tom
uid=1003(tom) gid=1003(tom) 组=1003(tom)
[root@localhost /]# usermod -G egon tom
[root@localhost /]# id tom
uid=1003(tom) gid=1003(tom) 组=1003(tom),1002(egon)

跟用户 有关的文件/etc/passwd   (关于用户的七段信息,每一段的意义)

和/etc/shadow文件(关于用户密码信息,前两段代表的意义)

1. 用户及passwd文件
1) 掌握/etc/passwd文件的功能:存储所有用户的相关信息,该文件也被称为用户信息数据库(Database)。
2) /etc/passwd文件每个字段的具体含义:
a) 第1个字段(列)记录的是这个用户的名字(在创建用户时root用户起的)。
b) 第2个字段(列)如果是x,表示该用户登录Linux系统时必须使用密码;如果为空,则该用户在登录时无须提供密码。
c) 第3个字段(列)记录的是这个用户的uid。
d) 第4个字段(列)记录的是这个用户所属群组的gid。
e) 第5个字段(列)记录的是有关这个用户的注释信息(如全名或通信地址)。
f) 第6个字段(列)记录的是这个用户的家目录的路径。
g) 第7个字段(列)记录的是这个用户登录后,第一个要执行的进程。

2. shadow文件

1) /etc/shadow文件的功能:存储所有用户的密码,每一个用户占用一行记录,该文件实际上就是存放用户密码的数据库(Database)。
2) /etc/shadow文件每个字段的具体含义:
a) 第1个字段(列)是用户名。
b) 第2个字段(列)是密码,这个密码是经过MD5加密算法加密过的密码。

组 创建流程

跟组 有关的文件/etc/group文件(关于用户组的信息,用户的主组和附加组)

和/etc/gshadow文件(用户密码的信息)

3. 群组及group文件(详见linux系统管理P135)
1) /etc/group文件的功能:存放了Linux系统中所有群组的信息,它实际上就是一个存放群组信息的数据库(Database)。
2) /etc/group文件每个字段的具体含义:
a) 第1个字段是这个群组的名字。
b) 第2个字段中的x表示这个群组在登录Linux系统时必须使用密码。
c) 第3个字段记录的是这个群组的gid。
d) 第4个字段记录的是这个群组里还有哪些群组成员。

[root@localhost /]# groupadd group1  增
groupadd:“group1”组已存在
[root@localhost /]# groupdel group1 删
[root@localhost /]# groupadd group1
[root@localhost /]# vim /etc/group
[root@localhost /]# groupmod -g 1205 group1 改地址
[root@localhost /]# vim /etc/group
[root@localhost /]# vim /etc/group
[root@localhost /]# groupmod -n group2_new group1 改组名
[root@localhost /]# vim /etc/group

在公司中用户和组用来标识权限,

文件详细信息  第一个 d (代表目录)如果第一个是-代表普通文件

每三个为一组 d  rwx  r-x  r-x  .

第一组表示文件类型d代表目录,-代表普通文件

第二组表示可读可写可执行,作用于文件的用户(属主)对文件的权限,即root用户对这个文件有可读可写可执行权限,

第三组表示可读没权限可执行,作用于属组对文件的权限,

第四组表示可读没权限可执行,作用于除了属主属组其他人(不是用户不是组成员,因为属组里头会包含一些成员)对文件的权限,

3表示硬链接数目

属主表示文件拥有者

属组表示文件属于哪个部门

74表示大小,后面是文件名

权限的一步到位(可以创建文件一类的了)

[root@localhost ~]#  chown  -R  rose.rose  /home/rose/

查看文件最后一行的内容   tail -1 /etc/passwd

邮箱的权限

[root@localhost ~]# chown -R rose.mail /var/spool/mail/rose
-R代表递归的改,将属主和属组都改成自己需要的文件权限

补充:

ll-s  等于ll  (字母l)

上面的 “.” 标识Linux的检测设备,

关掉一个Linux的检测设备,防止出现错误当时没事,过一会开机总动卡机

[root@localhost ~]# vim /etc/sysconfig/selinux

SELINUX=disabled

前面有 .的是隐藏文件,如果需要看 -a查看所有文件包含隐藏文件

跟目录有关的需要操作 -r  -d (看文件的单个信息eg:-dL)

.[!.]*  包含文件夹下的隐藏文件

不带提示取执行命令

[root@localhost /]# ls /etc/passwd^C
[root@localhost /]# ls /etc/shadow
/etc/shadow
[root@localhost /]# ls /etc/group^C
[root@localhost /]# ls /etc/gshadow^C
[root@localhost /]# ls /home/rose/ #cp -r /etc/skel/.[!.]* /home/rose/^C
[root@localhost /]#
[root@localhost /]# ls /var/spool/mail/rose

用户创建的流程

1. 先建立所需要的群组 ( vi /etc/group );
2. 将 /etc/group 与 /etc/gshadow 同步化 ( grpconv );
3. 建立账号的各个属性 ( vi /etc/passwd );
4. 将 /etc/passwd 与 /etc/shadow 同步化 ( pwconv );
5. 建立该账号的密码 ( passwd accountname );
6. 建立使用者家目录 ( cp -a /etc/skel /home/accountname );

7. 更改使用者家目录的属性 ( chown -R accountname.group /home/accountname )。

 

林海峰老师博客

http://www.cnblogs.com/linhaifeng/articles/6045600.html#_label2

 

小白的python之路Linux部分10/27&28的更多相关文章

  1. 小白的python之路Linux部分10/28&29

    属主属组其他人对文件的rwx权限 1.userdel删东西不全,会有残留,

  2. 小白的Python之路 day1

    Python之路,Day1 - Python基础1 本节内容 Python介绍 发展史 Python 2 or 3? 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van ...

  3. 小白的Python之路 day1 变量

    Python之路,Day1 - Python基础1 变量 变量用于存储在计算机程序中引用和操作的信息.它们还提供了一种用描述性名称标记数据的方法,这样我们的程序就能更清晰地被读者和我们自己理解.将变量 ...

  4. 小白的Python之路 day2 文件操作

    文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 ...

  5. 小白的Python之路 day5 configparser模块的特点和用法

    configparser模块的特点和用法 一.概述 主要用于生成和修改常见配置文件,当前模块的名称在 python 3.x 版本中变更为 configparser.在python2.x版本中为Conf ...

  6. 小白的python之路10/30磁盘分区

    总结:fdisk   mkfs  mount 1.磁盘分区 硬盘分区有三种,主磁盘分区.扩展磁盘分区.逻辑分区. 一个硬盘主分区至少有1个,最多4个,扩展分区可以没有,最多1个.且主分区+扩展分区总共 ...

  7. 小白的python之路10/30 vim编辑器

    1.vim进入命令行之后的编辑过程

  8. 小白的python之路10/22 day1

    一.操作系统 操作系统就是一个协调.管理和控制计算机硬件资源和软件资源的控制程序.操作系统所处的位置如下图

  9. 小白的python之路10/31&11/1文件操作系统

    文件操作系统的介绍 ext4的superblock块是超级快,innode 块是专门存放文件信息的, block count将硬盘做成block块,对操作系统而言写在block块上就可了,eg:文件1 ...

随机推荐

  1. Yii1操作phpexcel

    Yii::import('application.vendors.phpexcel.*'); Yii::import('application.vendors.phpexcel.PHPExcel.*' ...

  2. Ubuntu 无界面使用selenium chrome + headless

    1. 安装 selenium : sudo pip install selenium 2. 安装 chromdriver: 进入 淘宝镜像源 下载 chromdriver, 可以查看 notes.tx ...

  3. python操作MongoDB、MySQL、Postgres、Sqlite、redis实例

    总结:除了MongoDB.redis,其他三个数据库用python来操作其实是差不多的.所有例子都很简单,实际生产环境中的数据库操作远比这复杂得多,命令也比我例子中的多得多,我这里高级一点的用法就是批 ...

  4. vue-自主研发非父子关系组件之间通信的问题

    相信很多人都知道解决组件间通信:vuex,今天的主角不是它. element-ui里解决组件间通信的思路:emitter.js ,但是如果你拿来你会发现它解决的是父子组件之间的通信问题.如果我们通信的 ...

  5. UIPresentationController - iOS自定义模态弹出框

    参考: https://developer.apple.com/library/archive/featuredarticles/ViewControllerPGforiPhoneOS/Definin ...

  6. return -1 、return 1 、 return 0 的区别

    根据所定义函数的需求返回不同的值. 一般0和-1或者0和1使用 0和-1使用时: 0一般表示成功执行 -1一般表示不成功 0和1使用时: 1真 0假

  7. rem的在vue项目中使用配置,,浏览器的兼容性之Mate标签

    在vue中配置rem 位置:在APP.vue的script中,在export default之外 (()=>{ let winW = document.documentElement.clien ...

  8. ubuntu学习笔记

    Linux操作系统 locale –a查看支持语言 ls查看目录 ls .l / 查看根目录 apt-get –h 安装软件看帮助信息 sudo apt-get inatall packge 安装包 ...

  9. 我的第一篇博客。(JavaScript的声明和数据类型的一些笔记)

    这是我的第一篇博客,务必请大家多多关照. 下面是前端js的变量和数据类型的一些笔记,不是很全请多多包涵. 1.变量 变量的声明 var 变量名 变量这个容器中放的是数据 变量的赋值 变量名 = 数据 ...

  10. jmeter 学习笔记

    beanshell内置对象 vars是针对单线程,使用${varName}访问var变量值 props是所有线程共享,使用${__P(propName,)}访问prop变量值 如何让variable在 ...