第一章 linux帐号管理与acl权限控制   
不同的用户拥有不同的权限    可以通过user/group的特殊权限设定,来规范不同的群组开发
一 linux帐号与群组
A 使用者的识别码:
UID和GID   每个用户都拥有这两个属性  一个是人属性,另一个是群组属性
/etc/passwd  文件中记录个人属性
/etc/group中记录群组属性
例子:id  dazhenzhong中的id命令可以查看某用户的id信息
用户登陆的时候  系统流程
1.读取/etc/passwd   查看用户名是否正确   如果正确则将uid和gid都读出来   并且读取该用户家目录与shell的环境设定
2.核对密码表,进入/etc/shadow找出对应的帐号 uid   然后核对输入的密码是否正确  md5函数
3.如果正确   就进入shell控管的阶段
passwd  文件    分隔符为:
帐号名称
密码(设置为x   原因为真正的密码在etc/shadow里面)   
UID 用户id号码 0为管理员    1-999为系统保留的ID   其中1-200有发行版自己建立的系统帐号   201-999为如果系统有帐号需求时,可以使用的UID    通常这些帐号是不可以登陆的  所以才会有   /sbin/nologin这个特殊的shell的文件的存在
1000-(2^32-1)为普通个人用户使用的id
4.GID /etc/group    群组
5.用户信息说明
6.家目录
7.shell    ./bashrc***
B /etc/shadow  文件结构
分隔符  同样为 :
1.帐号名称
2.密码 真正的密码   早期为des   md5   当前为sha   长度更长  即相对更加安全
3.最后变更密码的时间
     4.密码不可被修改的天数
5.密码需要重新变更的天数
6.密码需要修改的期限前的警告天数
7.密码过期后的帐号宽限时间  密码失效日
8.帐号失效日期
9.保留
普通用户密码忘记的解决办法  passwd即可  root用户下操作
如果是root密码忘记  则需要开机进入单人模式   修改etc/shadow文件    也可以用livecd开机后mount根目录去修改etc/shadow文件。将里面的root的密码晴空   再重新不用密码登陆   
确认密码加密的算法:authconfig -test | grep hashing
C 群组   groups   newgrp
 
/etc/group
1.群组名称
2.群组密码
3.GID
4.此群组支持的帐号名称
有效群组 effective group  与初始群组  initial group
1.groups   命令列出当前用户的群组
2.第一个出现的就是有效群组   新创建的文件归有效群组的权限
3.newgrp  有效群组的切换
想要切换的群组  必须是已经支持的群组   命令为:newgrp 群组名
切换到新的shell环境下执行  
4.加入群组的方法
a  root   通过usermod命令加入
b 群组管理员  而非root    通过gpasswd将用户加入到群组当中   
/etc/gshadow   群组管理员      
 
二 帐号管理
A.新增和删除用户
useradd  /passwd   即如帐号  建立uid gid  家目录等   
/shadow 将密码参数填入   
/group 加入与帐号名称相同的群组名称
/home 建立一个同名目录  做家目录  权限为700
useradd  -D 来查看预设值     
文件为/etc/default/useradd    群组分为私有群组和公共群组两类   前者group=100  家目录权限值设定为700 只有自己可以进入自己的家目录 代表发行版有rhel   fedora centos等      公共群组   将group=100这个设定值  作为新建帐号的初始群组   ,因此每个帐号都属于users这个群组   代表发行版有suse等
除了基本的帐号设定   UID/GID还有密码参数设定文件   /etc/login.defs   和etc/skel/*
passwd 通常会使用pam模组来检验密码     修改密码
change   查看密码详细的参数   
usermod 对用户信息进行修改
userdel 删除用户   涉及到的文件
/etc/passwd    /etc/shadow
/etc/group     /etc/gshadow
/home/username     /var/spool/mail/username
-r    连同家目录一起删除
如果想暂时停止某用户的使用  可以将/etc/shadow  第8位设置为0就可以了
如果想要将系统内某用户的所有资料删除    在userdel -r username  之前   先运行find / -user username  查找出整个系统内属于username的文件  再删除
id      普通用户的账户信息修改命令    查询某人    修改自己   
chsh change shell的简写   可以修改/etc/passwd此系统文件   SUID功能
新增与删除群组
groupadd
groupmod
groupdel
gpasswd   群组管理员使用的命令
ACL
权限细化       unix-like作业系统额外项目
查询     dmesg | grep -i acl
设定
getfacl   取得某个文件或者目录的acl设定项目
setfacl 设定某个目录或文件的acl规范
用户切换
使用一般帐号:用较低权限启动系统服务:软件本身的限制
su    切换到root   需要root的密码   su -  为直接切换到root
注意login-shell   变量改变    和non-login shell   变量不变  两个设定文件    
切换身份的时候   尽量使用login shell的方式    
所以   如果希望完整的切换用户及其环境需要使用
su - username   或者 su -l username    才会连同PATH/USER/MAIL等变量都转换成新使用者的环境
如果只是向要执行一次root的指令  可以利用   su --c  指令串   的方式来处理
使用root切换成为任何用户的时候   并不需要输入新用户的密码
sudo 执行root的指令串     需要输入用户自己的密码   所以更加安全
env      显示shell环境变量

第四部分 linux使用者管理的更多相关文章

  1. Linux使用者管理(1)---用户账号

    linux很重要的应用就是作为服务器的操作系统.服务器的作用是给多用户提供各种“服务”(可能是读服务器上的文件,或者是利用服务器进行数值计算)那么如果多用户共同拥有一台服务器,就需要对服务器上的用户进 ...

  2. linux 使用者管理

    1.用户标识符 UID  用户ID GID  用户组ID 2./etc/passwd 文件结构 id范围:0系统管理员|1~499 (系统账号)|500~65535 可登录账号

  3. [Linux]第四部分-Linux用户管理

    登陆过程:1.从etc/passwd中查找账号,没有则退出,然后在etc/shadow中读出uid与密码表passwd中内容格式 用户名:密码:UID:GID:用户信息说明:家目录:用户所用Shell ...

  4. 【原创】(十四)Linux内存管理之page fault处理

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...

  5. Linux使用者管理(2)---账号管理

    用户添加 新增用户 sudo useradd -m username 这里必须使用sudo 因为需要对/etc/shadow进行读写,在ubuntu环境下,必须使用-m设置,否则不会创建主文件夹. 在 ...

  6. Linux(3)- 用户管理、文件与目录权限、常用命令、Linux软件包管理

    一.用户管理 现代操作系统一般属于多用户的操作系统,也就是说,同一台机器可以为多个用户建立账户,一般这些用户都是为普通用户,这些普通用户能同时登录这台计算机,计算机对这些用户分配一定的资源. 普通用户 ...

  7. 笔记:Linux用户管理(补充)、权限管理、内存管理、网络管理、渗透常用命令

    一.用户管理(补充) 添加用户:useradd [选项] 用户名 useradd -u 5000 -g demogroup -G root -d /home/demo -s /bin/bash dem ...

  8. 第十四章、Linux 账号管理与 ACL 权限配置

    1. Linux 的账号与群组 1.1 使用者标识符: UID 与 GID 1.2 使用者账号:/etc/passwd 文件结构, /etc/shadow 文件结构 1.3 关于群组: /etc/gr ...

  9. Linux内存描述之内存页面page–Linux内存管理(四)

    服务器体系与共享存储器架构 日期 内核版本 架构 作者 GitHub CSDN 2016-06-14 Linux-4.7 X86 & arm gatieme LinuxDeviceDriver ...

随机推荐

  1. 织梦channel标签内调用子栏目内容

    文件:include\taglib\channel.lib.php 把代码 SELECT id,typename,typedir,isdefault,ispart,defaultname,nameru ...

  2. 并发教程--JAVA5中 计数信号量(Counting Semaphore)例子

    并发教程--JAVA5中 计数信号量(COUNTING SEMAPHORE)例子 本文由 TonySpark 翻译自 Javarevisited.转载请参见文章末尾的要求. Java中的计数信息量(C ...

  3. 网站被K怎么办?

    网站被K怎么办? 网站被K有几种状况,一种是网站的主页被删去或许网站悉数内容被删去就剩主页,还有一种是内容也在第“一”页,主页在后面,这种状况对初学者来讲是不会去留意的,他们会觉得这是正常的,其实这个 ...

  4. 生成gt数据出问题

    使用cout打印uchar类型数据时,打印出来是其相应的ascii码

  5. 《毛毛虫组》【Alpha】Scrum meeting 1

    第一天 日期:2019/6/14 1.1 今日完成任务情况以及遇到的问题. 今日完成任务情况: (1)根据数据库设计时的E-R图将创建的表进行检查确保功能的正确实现. (2)进行公共类的设计,设计出程 ...

  6. javaweb基础(1)_入门

    一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源( ...

  7. 在Linux下安装redis

    http://www.cnblogs.com/xiaohongxin/p/6854095.html 追加: 通过配置文件启动最好先./redis.cli shutdown ,再到当前目录在./redi ...

  8. 从输入URL到页面加载完成的过程中都发生了什么事情?

    为了便于理解,我将整个过程分为了六个问题来展开. 第一个问题:从输入 URL 到浏览器接收的过程中发生了什么事情? 从触屏到 CPU 首先是「输入 URL」,大部分人的第一反应会是键盘,不过为了与时俱 ...

  9. iOS中的数据存储方式_Plist

    plist文件只能存储OC常用数据类型(NSString.NSDictionary.NSArray.NSData.NSNumber等类型)而不能直接存储自定义模型对象; 我们拿NSData举例: /* ...

  10. on() 和 click() 的区别

    on() 和 click() 的区别: 二者在绑定静态控件时没有区别,但是如果面对动态产生的控件,只有 on() 能成功的绑定到动态控件中. 以下实例中原先的 HTML 元素点击其身后的 Delete ...