鸟哥的Linux私房菜——第十七章:Linux 账号与身份管理
视频链接:http://www.bilibili.com/video/av10669732/
1. Linux 的账号与群组
1.1 使用者识别: UID 与 GID
1.2 使用者账号:/etc/passwd, /etc/shadow (passwd里面存的是账号的相关信息,shadow里面存放的是账号的密码信息)
1.3 关于群组: 有效与初始群组、 groups, newgrp (groups群组信息,newgrp是切换有效群组的)
2. 账号管理:
2.1 新增与移除使用者: useradd, 相关设定档, passwd, usermod, userdel
2.2 使用者功能: chsh, chfn, finger, id (chsh是修改自己的shell的,chfn是修改自己的一些信息的)
2.3 新增与移除群组: groupadd, groupmod, groupdel, gpasswd, newgrp
2.4 密码管理: passwd
3. 使用者身份切换:
3.1 su
3.2 sudo, visudo (/etc/sudoers)
4. 使用者的特殊 shell 与 PAM 模块
4.1 特殊的 shell , /sbin/nologin
4.2 PAM 模块: /etc/nologin, /etc/securetty, /etc/security/* (PAM模块是验证登录的,环境相关的设置在/etc/security/* 内)
5. Linux 系统上使用者的对谈与 mail 的使用:
5.1 查询使用者: w, who, last, lastlog (w who使用者的相关数据,last可以看本月的记录,lastlog可以看每个账号的最近登录时间)
5.2 使用者对谈: talk, mesg, wall (和其他登陆者聊天...)
5.3 使用者邮件信箱: mail
6. 手动新增使用者: (不建议手动新增使用者,因为涉及到许多权限的问题,还是)
6.1 一些检查工具: pwck, pwconv, pwunconv, chpasswd (pwck检查passwd和shadow里面的信息是否一致。pwconv将passwd里面的密码转移到shadow里面。pwunconv将shadow里面的密码再写回passwd并删除shadow。chpasswd将passwd里面未加密的密码加密后写入shadow)
6.2 特殊账号,如纯数字账号的建立:
6.3 不开放终端机登入的账号 (ex>mail acccount)
6.4 一个大量建置账号的范例:
/etc/passwd的构造 有7个,以:进行分隔
1.账号名称 对应UID
2.密码 早期是在这里,后来为了安全转移到shadow里面,所以这里都是x
3.UID id范围:
id范围 | 该id使用者的特性 |
0 | 系统管理员 |
1~499 | 留给系统的 |
500~65535 | 给一般用户的 |
4.GID 和/etc/group有关
5.使用者信息说明栏 基本没啥用
6.家目录
7.shell 通常用户的shell都是bash 有一种特别的shell叫/sbin/nologin让账号无法登陆,也可以制作纯Pop邮件账号者的数据
/etc/shadow 放密码的地方 9个字段
1.账号名称
2.密码 经过加密编译的,如果第一个字符是 * 或者 ! 表示这个账号无法登陆,知道怎么玩了吧~嘻嘻^_^
3.最近改动密码的日期 以1970年1月1日作为1,1971年1月1日就是366...你自己的数字算去吧...无聊...
4.密码不可被更改的天数 如果是0就是随时可以更改,如果是20就是20天后才可以再次更改
5.密码需要重新变更的天数 你一直不改密码也不安全,所以设定一个时间让你强制性的更改密码
6.密码需要变更期限前的警告期限 如果是7就是7天前提醒你快要变更密码啦
7.密码过期的恕限时间 密码失效后,n天内你还能登陆,如果还延长,sorry...
8.账号失效日期 也是1970....为1
9. 保留...看看以后有没有啥新的功能...
如果root密码忘记了或者被入侵了
不需要重装系统,可以进去单人维护模式进入shadow清除root的密码
/etc/group 分为4栏
1.群组名称
2.群组密码 密码同样是X 密码存在了/etc/gshadow里面
3.GID 群组的id
4.加入这个群组的账号名称 以,进行分隔
每个用户账号都可以加入多个群组,所以群组分为有效群组和默认群组
passwd里面可以看到的GID就是默认群组,那我创建文档的时候这个文档是属于哪一个群组呢?
这就用到了有效群组,在当前账号下输入groups就可以看到我支持的所有群组,第一个显示的就是有效群组
那么怎么更换有效群组呢?newgrp 群组名 然后你在groups就会发现有效群组变了,原理是一个新的shell
要想切换群组,如果账号在群组里可以直接切换。如果不在群组里,那么群组必须满足两个条件
1.这个群组在/etc/gshadow里面的密码必须是正常的(不以!开头)
2.root或群组管理员必须加入这个群组
/etc/gshadow 4个栏目
1.群组名称
2.密码栏 以!开头表示无法接入
3.群组管理员的账号
4.该群组包含的账号(要和/etc/group的内容相同)
新增用户 useradd
参数:
-u :后面接的是 UID ,是一组数字。直接指定一个特定的 UID 给这个账号;
-g :后面接的那个群组名称就是我们上面提到的 initial group 啦~
该 group ID (GID) 会被放置到 /etc/passwd 的第四个字段内。
-G :后面接的群组名称则是这个账号还可以支持的群组。
这个参数会修改 /etc/group 内的相关资料喔!
-M :强制!不要建立使用者家目录
-m :强制!要建立使用者家目录!
-c :这个就是 /etc/passwd 的第五栏的说明内容啦~可以随便我们设定的啦~
-d :指定某个目录成为家目录,而不要使用默认值;
-r :建立一个系统的账号,这个账号的 UID 会有限制 (/etc/login.defs)
-s :后面接一个 shell ,预设是 /bin/bash 的啦~
useradd jim
passwd 给你的账号添加密码 root用户直接改任何用户 普通用户还要输入旧密码而且只能改自己的
passwd jim
usermod 修改账号的信息 useradd不合适想修改,当然可以去shadow和passwd这俩文件里面,也可以使用usermod命令
参数:
-c :后面接账号的说明,即 /etc/passwd 第五栏的说明栏,可以加入一些账号的说明。
-d :后面接账号的家目录,即修改 /etc/passwd 的第六栏;
-e :后面接日期,格式是 YYYY-MM-DD 也就是在 /etc/shadow 内的第八个字段数据啦!
-g :后面接 group name,修改 /etc/passwd 的第四个字段,亦即是 GID 的字段!
-G :后面接 group name,修改这个使用者能够支持的群组,修改的是 /etc/group 啰~
-l :后面接账号名称。亦即是修改账号名称, /etc/passwd 的第一栏!
-s :后面接 Shell 的实际档案,例如 /bin/bash 或 /bin/csh 等等。
-u :后面接 UID 数字啦!即 /etc/passwd 第三栏的资料;
-L :暂时将使用者的密码冻结,让他无法登入。其实仅改 /etc/shadow 的密码栏。
-U :将 /etc/shadow 密码栏的 ! 拿掉,解冻啦!
userdel 删除账号
-r 连同使用者的家目录一起删除
userdel -r jim
使用者功能 chfn chsh
useradd/usermod/userdel 这三个命令是管理员才能用的,那么普通用户呢就使用chfn和chsh吧
chsh 修改自己使用的shell 还有就是看自己的shell
-s 修改自己的shell
chfn 更改自己的相关信息的
-f 后面接完整的大名
-o 办公室的房间号码
-p 办公室的房间号码
-h 家里的电话号码
直接打个chfn 然后回车 按照提示去设置信息 目前还不知道怎么取消......
finger 查看你账号的信息,也就是查看chfn设定的那些东东
-s 使用长串数据输出格式
finger -s jim
id 可以查询某人或者自己的相关UID/GID的信息
自己的:id
别人的:id 小明
groupadd 新建群
-g 后面接GID,直接给予某个GID~
-r 建立系统群组
groupadd jim #新建一个组
sudo grep jim /etc/group /etc/gshadow #查看这两个文档
groupmod 和usermod差不多,是修改群组的相关信息的
-g 修改GID
-n 修改群组名称
#将 jim 这个群组的名字改成Vae GID改成514 groupmod -g -n Vae jim
然后你可以去grep一下group和gshadow文档看一下变化。提示!不要随意的更变GID,容易造成系统资源的错乱
groupdel 删除群组
groupdel jim #我删除了jim这个群组
这里需要注意一个地方,如果群组里面有用户的话,你是删除不了的,否则用户就找不到自己的GID那不是一脸懵逼...
这时的解决方法是
1.修改用户的GID 给他换到其他组
2.删除这个用户... 吃惊.jpg
gpasswd 给群组设定密码 还可以给群组设定团长....这个不讲了.....
su
参数:
- :如果执行 su - 时,表示该使用者想要变换身份成为 root ,且使用 root 的
环境设定参数档,如 /root/.bash_profile 等等。
-l :后面可以接使用者,例如 su -l dmtsai ,这个 -l 好处是,可使用欲变换身份者
他的所有相关环境设定档。
-m :-m 与 -p 是一样的,表示『使用目前的环境设定,而不重新读取新使用者的设定档。』
-c :仅进行一次指令,所以 -c 后面可以加上指令喔!
使用su的时候最好加上 - 就是因为环境的设定参数档,环境变量PATH也是一样的
su - #这是切换到root用户 su -l jim #这是切换到jim用户 其实没写用户的时候预设的就是root
sudo
su很简单是吧,但是有一个致命的缺点就是root的密码谁都知道...如此不安全的事情我选择狗带...
但是sudo可以帮助我们解决这个问题,嘻嘻,我不用狗带了~~
•当使用者执行 sudo 时,系统会主动的去寻找 /etc/sudoers 档案,判断该使用者是否有执行
sudo 的权限;
• 若使用者具有可执行 sudo 的权限后,便让使用者『输入使用者自己的密码』来确认;
• 若密码输入成功,便开始进行 sudo 后续接的指令;
• 不过, root 执行 sudo 时,不需要输入密码;
• 若欲切换的身份与执行者身份相同,那也不需要输入密码。
-u 后面可以接使用者账号名称,或者是 UID。例如 UID 是 500 的身份,可以: -u #500 来作为切换到 UID 为 500 的那位使用者
#创建一个test文件夹
sudo mkdir test #jim要把身份切换成tom来进行touch
sudo -u tom touch Vae
注意咯,上面我们说过要设定/etc/sudoers之后才可以使用sudo 不过我们最好不要用vim编译器,还是用visudo比较好(visudo需要root权限)
使用者的特殊shell与PAM模块
我想建立一个账号,只给他mail sever的权限
我们在/etc/shells和/etc/passwd里面可以看到,有一种shell的名字是/sbin/nologin 这种shell也就是单纯的接受信件而已,不能登录主机的
PAM模块 /etc/nologin /etc/securetty 这两个
talk mesg wall 和其他登陆者聊天
talk这个需要网络服务所以暂时不讲,我们可以write其他用户,这个用户的mesg必须是y 如果是n的话你是无法发给他的,按下mesg就可以看自己的状态
wall是群发的,只要在线的用户的mesg是y 那么都可以收到你发的消息
#write的格式
write tom
hi tom i am jj #wall的格式
wall "lalala"
mail 使用者邮件信箱
wall和write前提是对方需要在线是吧,我们可不可以在对方不在线的时候也给他发东西呢?就要用到mail啦
鸟哥的Linux私房菜——第十七章:Linux 账号与身份管理的更多相关文章
- 鸟哥的linux私房菜——第20章 启动流程、模块管理与loader
20.1 Linux启动流程分析 Linux启动过程: 按下开机电源后计算机硬件主动读取BIOS来加载硬件信息以及硬件系统的自我测试,之后系统会主动读取第一个可启动的设备(由BIOS设置),此时就可以 ...
- 鸟哥linux私房菜第6章笔记
鸟哥linux私房菜第6章笔记 文件权限 修改 chgrp [-R] groupname filename //修改文件所属组 chown [-R] ownername[:groupname] fil ...
- 鸟哥的linux私房菜——第五章学习(Linux的文件权限与目录配置)
******************第五章学习****************** 1.[重要的三个概念] 1).文件拥有者(使用者):User,该文件/文件夹只能我来读写: 2).群组:Group, ...
- 鸟哥的Linux私房菜——第十一章
视频链接: 土豆:http://www.tudou.com/programs/view/yT0PfIWU720 B站(推荐): http://www.bilibili.com/video/av9877 ...
- 鸟哥的linux私房菜---非常好的linux基础网址【转】
转自:http://linux.vbird.org/linux_basic/0320bash.php 在 Linux 的環境下,如果你不懂 bash 是什麼,那麼其他的東西就不用學了!因為前面幾章我們 ...
- 鸟哥的linux私房菜——第十三章学习(Linux 帐号管理与 ACLL 权限设置)
第十三章.Linux 帐号管理与 ACLL 权限设置 1.0).使用者识别码: UID 与 GID UID :User ID GID :group ID [root@study ~]# ll -d / ...
- 别人的Linux私房菜(14)Linux账号管理和ACL权限设置
用户标识符UID.GID 用户的账号信息,主要是指UID对应.组和GID对应 检查系统中是否存在用户bin:id bin 登录shell验证账号密码的步骤:找到/etc/passwd核对是否存在账号, ...
- 鸟哥私房菜--第1章 Linux 是什么
[只做搬运工,在搬运的时候窃看其中乐趣.] 历史渊源 Linus Torvalds(请记住这个名字)当年(1991)在写Linux的时候,初衷是针对386型机器的,当时只是一套裸露的操作系统并不包含任 ...
- 《鸟哥的Linux私房菜》学习笔记(5)——权限管理
一.权限的基本概念 权限:访问计算机资源或服务的访问能力. Linux中,每一个资源或者服务的权限, ...
随机推荐
- 架构师修炼 II - 表达思维与驾驭方法论
开篇之前我想先说说当年开发的那点事儿:大约10年前吧,我还是一个程序员的时候经常都是遇到这样的项目开发流程: 解决方案 :满足客户目的和投标用的一堆文档(不少还是互联网上抄的) ,是以Word为主的纯 ...
- QQ快速登录协议分析以及风险反思
前言 众所周知,Tencent以前使用Activex的方式实施QQ快速登录,现在快速登录已经不用控件了.那现在用了什么奇葩的方法做到Web和本地的应用程序交互呢?其实猜测一下,Web和本地应用进行交互 ...
- Redis介绍及Jedis基础操作
1.Redis简介 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes ...
- centos 7:network: 正在打开接口 ens33: 错误:激活连接失败:No suitable device found for this connection.
Mar :: localhost systemd: Starting LSB: Bring up/down networking... Mar :: localhost network: 正在打开环回 ...
- Vulkan入门流程
原文摘自Vulkan入门流程 Vulkan是Khronos Group(OpenGL标准的维护组织)开发的一个新API,它提供了对现代显卡的一个更好的抽象,与OpenGL和Direct3D等现有api ...
- 小程序swiper组件高度自适应【转载】
最近在做小程序开发,复制官方文档上的swiper组件实测后发现,图片不能自适应.网上找了几个版本测试都发现存在一些小问题,目前这个版本本人实测是最好用的.记录一下,方便日后使用. 感谢原创大神的帮助, ...
- beef局域网内模拟攻击
0x0环境 主机A win10:10.51.20.60(wifi) 主机A中的虚拟机kali(攻击者):192.168.110.129(NAT) 主机A中的虚拟机win2003(受害者):192.16 ...
- 在Ubuntu虚拟机上安装DVWA
学习资料来源:https://www.neddos.tech/?p=107 最后更新时间: 190122·17:41 1> 什么是DVWA(Damn Vulnerable Web Applica ...
- page = new String(request.getQueryString().getBytes("ISO-8859-1"),"GBK");解决前台传后台乱码问题
page = new String(request.getQueryString().getBytes("ISO-8859-1"),"GBK");解决前台传后台 ...
- Beta版本冲刺(三)
目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示 ...