鸟哥的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中,每一个资源或者服务的权限, ...
随机推荐
- cocos2d-x学习记录3——CCTouch触摸响应
游戏不同于影音,强交互性是其一大特色,在游戏中主要体现为接受用户的输入并响应.智能手机触摸是其重要的输入方式. 在cocos2d-x中,触摸分为单点触摸和多点触摸. 单点触摸:主要继承CCTarget ...
- Siki_Unity_2-9_C#高级教程(未完)
Unity 2-9 C#高级教程 任务1:字符串和正则表达式任务1-1&1-2:字符串类string System.String类(string为别名) 注:string创建的字符串是不可变的 ...
- 高可用Kubernetes集群-15. 部署Kubernetes集群统一日志管理
参考文档: Github:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsear ...
- 无前趋的顶点优先的拓扑排序方法(JAVA)(转载http://128kj.iteye.com/blog/1706968)
无前趋的顶点优先的拓扑排序方法 该方法的每一步总是输出当前无前趋(即人度为零)的顶点,其抽象算法可描述为: NonPreFirstTopSort(G){//优先输出无前趋的顶点 w ...
- 转发npm发布包的过程
老板,来个npm账号! 因为你的包是要放在npm上的,所以,没有npm的账号,根本什么活都干不了. 在npm上注册一个账号是很简单的,随便填一下用户名密码邮箱,然后人家就会发个邮件给你,然后就注册成功 ...
- SMS
SMS:(Short Messaging Service)手机短信服务 . 一种存储和转发服务,短消息并不是直接从发送人发送到接收人,而始终通过 SMS 中心进行转发的.如果接收人处于未连接状态(可能 ...
- Alpha冲刺——day4
Alpha冲刺--day4 作业链接 Alpha冲刺随笔集 github地址 团队成员 031602636 许舒玲(队长) 031602237 吴杰婷 031602220 雷博浩 031602634 ...
- BUG报告
Bug1 1.看到的现象:如果在注册时使用中文作为密码,并不会报错,但是登陆过程中的密码框却不能输入中文导致无法登陆. 2.期待的现象:登陆也能支持中文或在注册功能中添加输入约束. 3.二者的差异 在 ...
- PAT 甲级 1078 Hashing
https://pintia.cn/problem-sets/994805342720868352/problems/994805389634158592 The task of this probl ...
- [转帖]LNMP组件安装
https://lnmp.org/install.html 系统需求: CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian/Deepin/Aliyun/Amazon/M ...