鸟哥的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中,每一个资源或者服务的权限, ...
随机推荐
- opencv配置(转)
1. 下载安装Opencv,去官网http://opencv.org/即可下载最新版本的Opencv,此处用的是Opencv 2.4.10 安装时傻瓜式的,最新版本的安装就是相当于解压到你指定的安装目 ...
- ASP.NET Core分布式项目实战-目录
前言 今年是2018年,发现已经有4年没有写博客了,在这4年的时光里,接触了很多的.NET技术,自己的技术也得到很大的进步.在这段时光里面很感谢张队长以及其他开发者一直对.NET Core开源社区做出 ...
- android 一些常用的功能方法代码块
我们这些苦逼的程序员在工作中,每一个老板都希望我们都能把手头的工作做好的,而且是越快越好,那我们要怎么样才能快起来呢?对于开发中常用的代码块无限复做是我们工作中简省时间最有效的途径之一,而下面的这些代 ...
- Git 命令简单罗列
源教程出自 廖雪峰的官方网站 https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 整 ...
- [T-ARA][내가 너무 아파][我很痛]
歌词来源:http://music.163.com/#/song?id=5402882 作曲 : 新沙洞老虎/崔圭成 [作曲 : 新沙洞老虎/崔圭成] 作词 : 新沙洞老虎/崔圭成 [作词 : 新沙洞 ...
- [2017BUAA软工助教]学期总结
一.表 学号 第0次 week1 week2 week3 个人项目 附加1 结对项目 附加2 a团队得分 a贡献分 b团队得分 b贡献分 阅读作业 提问回顾 总分1 总分2 14011100 8 8 ...
- 《Linux内核分析》 之 计算机是如何工作的
[李行之原创作品 转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] <Linux内 ...
- 跟踪分析Linux内核的启动过程小解
跟踪分析Linux内核的启动过程 “20135224陈实 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029 ...
- 完善好的web项目(校园包车)
- Visual Studio 2015的安装和简单的测试
首先是Visual Studio 2015的安装 Visual Studio是微软开发的一套基于组件的软件开发工具,目前最新的版本是2015. 在 I Tell you 网站下载Visual Stud ...