第一章 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很重要的应用就是作为服务器的操作系统.服务器的作用是给多用户提供各种“服务”(可能是读服务器上的文件,或者是利用服务器进行数值计算)那么如果多用户共同拥有一台服务器,就需要对服务器上的用户进 ...
- linux 使用者管理
1.用户标识符 UID 用户ID GID 用户组ID 2./etc/passwd 文件结构 id范围:0系统管理员|1~499 (系统账号)|500~65535 可登录账号
- [Linux]第四部分-Linux用户管理
登陆过程:1.从etc/passwd中查找账号,没有则退出,然后在etc/shadow中读出uid与密码表passwd中内容格式 用户名:密码:UID:GID:用户信息说明:家目录:用户所用Shell ...
- 【原创】(十四)Linux内存管理之page fault处理
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...
- Linux使用者管理(2)---账号管理
用户添加 新增用户 sudo useradd -m username 这里必须使用sudo 因为需要对/etc/shadow进行读写,在ubuntu环境下,必须使用-m设置,否则不会创建主文件夹. 在 ...
- Linux(3)- 用户管理、文件与目录权限、常用命令、Linux软件包管理
一.用户管理 现代操作系统一般属于多用户的操作系统,也就是说,同一台机器可以为多个用户建立账户,一般这些用户都是为普通用户,这些普通用户能同时登录这台计算机,计算机对这些用户分配一定的资源. 普通用户 ...
- 笔记:Linux用户管理(补充)、权限管理、内存管理、网络管理、渗透常用命令
一.用户管理(补充) 添加用户:useradd [选项] 用户名 useradd -u 5000 -g demogroup -G root -d /home/demo -s /bin/bash dem ...
- 第十四章、Linux 账号管理与 ACL 权限配置
1. Linux 的账号与群组 1.1 使用者标识符: UID 与 GID 1.2 使用者账号:/etc/passwd 文件结构, /etc/shadow 文件结构 1.3 关于群组: /etc/gr ...
- Linux内存描述之内存页面page–Linux内存管理(四)
服务器体系与共享存储器架构 日期 内核版本 架构 作者 GitHub CSDN 2016-06-14 Linux-4.7 X86 & arm gatieme LinuxDeviceDriver ...
随机推荐
- 多线程-Thread-Runnable
一.多线程 1.基本概念 进程:正在运行中的程序,一个进程中至少包含一个线程 线程:进程的任务,执行任务的一个通道,一个进程中可以包含多个线程 2.多线 ...
- <Android HAL 之路> HAL 简介
HAL层概述 名称: HAL, Hardware Abstracting Layer,中文名字:硬件抽象层. 作用:对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节.向上衔接Andro ...
- Word通配符
通配符模式下: ^13表示回车,^32表示空格 第一步,使用通配符替换掉无关文本 M?G-C??[A-Z]{1,20}_[A-Z]{1,20}_201?????_?? VirtualTrial[0-9 ...
- 利用C#脚本来处理Excel
废不多,直入正题. 所需环境:安装了Windows操作系统和Office软件的电脑一台. 开发语言:C# 开发需求:1.利用C#脚本读取Excel .xlsx文件 2.将程序中的数据存储到.csv文件 ...
- 手机安全卫士——在设置中心 自定义view和自定义属性
自定义组合控件 1. 自定义一个View, 继承ViewGroup,比如RelativeLayout,此文中是SettingItemView 2. 编写组合控件的布局文件,在自定义的View中加载 ...
- Python + selenium之unitest(1)
单元测试负责对最小的软件设计单元(模块)进行验证,它使用软件设计文档中对模块的描述作为指南,对重要的程序进行测试以发现模块中的错误. 下面演示不用测试框架的单元测试: # 计算器类 class Cou ...
- 影响一个UIView是否能正常显示的几个因素
在使用代码实现UIView及其子类的对象的时候,经常会遇到创建的某个view没有显示在屏幕上.以下总结了本人遇到过的几种情况.可能还有些其它的原因也会导致view不能正常显示,限于个人经历有限,无法全 ...
- java基础—哈希编码
- VMware的centos的配置分区
/ ext3 8189 固定大小空 swap 509 固定大小/boot ext3 100 固定大小/home ext3 全部(使用全部可用空间) 利用的工具 AMFTP ...
- Linux - 后台运行 ctrl + z , jobs , bg , fg
一.& 最经常被用到 这个用在一个命令的最后,可以把这个命令放到后台执行 二.ctrl + z 可以将一个正在前台执行的命令放到后台,并且暂停三.jobs查看当前有多少在后台运行的命令四.fg ...