linux学习(九)鸟叔第十三章:账号管理

         每个用户都会有自己的UID(就像ID一样独一无二),并且每个用户组也会有自己独一无二的GID。系统是通过这些UID和GID来识别用户和用户组。

1 账号和用户组

  一些基础概念


  • 有效用户组:建立文件时的用户组
  • 初始用户组:一开始用户所拥有的用户组
  • 其他用户组:需要在/etc/group中直接加入,非初始用户组的其他用户组

    UID:

  • 0表示系统管理员,root;

  • 1~999 系统账号使用ID,权限和特性与0之外的没什么不一样,朱但是没有家目录;

  • 1000~   一般用户使用,会创建家目录。


    两种建立用户组机制:

  • 私有用户组机制:建立与账号一样的用户组作为初始用户组,权限是700

  • 公共用户组机制:所有的新建账号的初始用户组都是由useradd变量GROUP决定的同一个组。


有关文件作用文件结构
用户账号/etc/passwd管理UID/GID账户名称:密码(x):UID:GID:说明栏:家目录:shell
/etc/shadow管理密码相关数据账户名称:密码(加密):最近修改日期:不可修改天数:需要重新修改天数:需要修改前警告天数:过期后宽限天数:失效日期:保留功能
用户组/etc/group记录GID与组名的对应组名:用户组密码:GID:该用户组支持的账号
/etc/gshadow密码以及用户组管理员组名:密码栏(!表示无密码无管理员):用户组管理员账号:用户组支持的账号

        本来密码会在passwd中显示的,但是为了安全将密码放到了shadow中,并且以加密的形式显示出来,这样原来的passed中只剩下有个x占位置。

/etc/passwd /etc/shadow /etc/group 查询方式:

  1. 在/etc/passwd中找到UID/GID
  2. 根据GID在/etc/group中其数据,找到其组名
  3. 根据UID在/etc/shadow中查找其密码相关数据,如下

 

 

shadow里文件结构说明:

一些管理命令
命令作用参数模板一些说明

useradd新增用户

-u:后跟UID

-g:后跟初始用户组

-G:次要用户组

-M:强制不建立家目录(系统账号默认)

-m:强制建立家目录(一般账号默认)

-c:说明栏内容

-d:家目录

-s:shell

-D:查看默认值 (使用:useradd -D)

useradd [-u UID] [-g 初始用户组] [-G 次要用户组] [-mM] [-c 说明栏] [-d 家目录] [-s shell] 账号名

①如果已经设置了初始用户组那么就不会建立同名用户组了

②没有密码,需要用passwd设置密码才算建立完成

③若不设置UID会自动在现有用户最大UID+1作为自己的UID

passwd设置密码

-l :锁住密码(密码前加上!)

-u:解锁

-S:列出密码相关参数

-n:不可修改密码天数

-x:多久必须要修改密码

-w:过期前警告天数

-i:密码失效日期

passwd [--stdin] [账号名称]

从管道输入作为设置的密码

passwd [-l] [-u] [--stdin] [-S] [-n 天数] [-x 天数] [-w 天数] [-i 日期] 账号

①root设置的密码可以无视密码长度等要求

②帮别的账号修改【passwd 账号】修改自己的【passwd】

③--stdin 会保存在命令历史中,可能有安全隐患

chage修改或详细列出密码参数

-l:详细列出参数

-d:跟日期 修改最近修改密码日期

-E:跟日期 修改密码失效日

-I(大写):跟天数 修改过期后宽限天数

-m:跟天数 修改不可修改天数

-M:跟天数 修改需要重新修改天数

-W:跟天数 修改过期前警告天数

chage [ ] 账号名称

①如果想第一次登录强制修改密码:chage -d 0  用户名

usermod将账号相关数据进行微调

-u:后跟UID

-g:后跟初始用户组

-G:次要用户组

-c:说明栏内容

-d:家目录

-s:shell

-e:修改失效日期

-f:修改宽限天数

-a:与-G合用 为增加次要而非设置

-l:修改账号名称

-L:冻结密码

-U:解锁

usermod [ ] 用户名①-U -L 其实和passwd的-l -u一样
userdel删除账号-r:连同家目录一起删除userdel [ ] 用户名 要想全部删除可以先find / -user 用户名 将文件全部删除在用本命令
id查找GID UIDid [用户名]
finger显示用户相关信息:住址电话等finger [ ] 用户名
chfn修改个人属性chfn [ ] [账号名]

change finger

该命令设置了SUID所以一般用户才可以去修改/etc/passwd

chsh改变使用的shellchsh [ ]

change shell

该命令设置了SUID所以一般用户才可以去修改/etc/passwd

groupadd添加用户组

-g GID

-r:建立系统用户组

groupadd [ ] 用户组名类似useradd
groupmod修改参数

-g GID

-n :修改名称

groupmod [ ] 用户组名类似useradd
groupdel删除用户组

类似userdel

没有任何用户以此作为初始用户组才可以删

gpasswd用户管理员功能(相当于QQ群管理员)

没有参数:设置密码

-A:将用户甚至成管理员

-M:将某些用户加入用户组中

-r:将密码删除

-R:将密码栏失效

-a:(管理员)将用户加入用户组中

-d:(管理员)将用户从用户组中删除

gpasswd 用户组名

gpasswd [-A 用户1,用户2...] [-M 用户A,用户B...] 用户组名

gpasswd [-rR]  用户组名

gpasswd [-ad] 用户 用户组名

管理员的操作

 

账号管理实例:

        当我们想让某个用户无法登录系统,可以将其的shell设置成/sbin/nologin这个shell。

        如果我们想让user1、user2、user3同时开发一个项目,这三个人可以同时在一个目录下工作,并且还拥有自己的家目录和基本的私有用户组

        要将这三个人放到同一个用户组里,例如project,并且设置好工组目录例如/srv/projecta,将这个目录的用户组换成project,并且将权限设置成2770(不允许其他人进入,并且设置SGID这单个用户所创立的文件的用户组都会是project,每个人都会有权限)

 如果我们想让文件针对某个用户单独设置权限要怎么做呢??

 用ACL来设置。主要有两个setfacl(设置)getfacl(查看)。

命令模板acl参数作用例子
getfcalgetfcal 文件名查看acl参数
setfcal

setfcal [-bkRd] [-{-m | -x} acl参数]

-m:添加

-x删除

u:[使用者账号列表]:[rwx]特定用户权限设置

setfcal -m u::rwx 文件

给自己对于文件rwx的权限

g:[用户组列表]:[rwx]特定用户组权限基本同上
m:权限【有效权限】,所有设置的权限要在这个范围内,范围外的会忽略setfcal -m m:r 文件
d:[u|g]:[账号|用户组]:权限设置目录,未来的子目录都会按照这个权限来继承acl权限setfcal -m d:u:user1:r 目录
同上所有删除setfcal -x u:user1 文件

 2 用户身份切换

2.1 su

         身份切换成可以用【su + 用户名】,没有用户名会切换成root,但是【su】是non-login shell很多环境变量并不会改变,【su -】或者【su -l】是login shell会将环境变量都改成root的环境变量。

2.2 sudo

        sudo可以让其他身份也使用root的命令,但是只有在/etc/sudoers中的用户才可以执行。将用户添加sudo的方法是用【visudo】,在root ALL=(ALL)   ALL 下一行加上 用户名 ALL=(ALL)  ALL。最后一列ALL是可执行的命令,如果想限制某些命令,则将ALL改成对应的绝对路径的命令,如果想免密使用 则在第四列前加上【NOPASSWD: 】 例如 用户名 ALL=(ALL)  NOPASSWD: ALL。

        如果想将用户组实现上面的功能,可以在%whell ALL=(ALL) ALL 后加上类似的一行。注意,用户组名前是%。

        还可以用别名的方式将很多的用户名或者命令等分别设置成一个别名,用别名一起设置。【用户别名:User_Alias】【命令别名:Cmnd_Alias】。

3 PAM模块

        linux用这个模块提供一连串的验证机制,返回用户的验证结果。PAM中有很多重要模块。具体的可以查看书P456.

4 用户信息传递

4.1 查询用户 w、who、last、lastlog

4.2 在线用户对谈:write、mesg、wall

  •  write:可以直接将信息传送给接受者。【write 使用者账号 [使用者所在终端界面]】,界面信息等可以用w、who来查看
  • mesg:可以用来屏蔽接受信息(root信息不能屏蔽)【mesg n】屏蔽 ;【mesg y】不屏蔽
  • wall:广播。所有的用户都可以接受到消息。甚至别人直接回复的文字会显示到命令行上。

4.3 邮件:mail

        mail寄邮件,【mail -s "主题" 用户@localhost】如果是本机用户@localhost也可以不用。

查看方式可以参考下面两个链接:

Linux mail命令查看邮箱邮件_51CTO博客_linux发邮件mail命令icon-default.png?t=N176https://blog.51cto.com/leomars/1159785#:~:text=linux%E4%B8%8Bmail%20%E9%82%AE%E4%BB%B6%E6%9F%A5%E7%9C%8B%E5%91%BD%E4%BB%A4%20%E7%B3%BB%E7%BB%9F%E6%8F%90%E4%BE%9B%E4%BA%86%E7%94%A8%E6%88%B7%E4%B9%8B%E9%97%B4%E9%80%9A%E4%BF%A1%E7%9A%84%E9%82%AE%E4%BB%B6%E7%B3%BB%E7%BB%9F%EF%BC%8C%E5%BD%93%E7%94%A8%E6%88%B7%E6%89%93%E5%BC%80%E7%BB%88%E7%AB%AF%E6%B3%A8%E5%86%8C%E7%99%BB%E5%BD%95%E6%97%B6%E5%8F%91%E7%8E%B0%E7%B3%BB%E7%BB%9F%E7%BB%99%E5%87%BA%E5%A6%82%E4%B8%8B%E4%BF%A1%E6%81%AF%EF%BC%9A%20you%20have,mail.%20%E8%BF%99%E6%97%B6%E7%94%A8%E6%88%B7%E5%8F%AF%E9%80%9A%E8%BF%87%E9%94%AE%E5%85%A5mail%E5%91%BD%E4%BB%A4%E8%AF%BB%E5%8F%96%E4%BF%A1%E4%BB%B6%EF%BC%9A%20%24%20mail%20mail%E7%A8%8B%E5%BA%8F%E5%B0%86%E9%80%90%E4%B8%AA%E6%98%BE%E7%A4%BA%E7%94%A8%E6%88%B7%E7%9A%84%E4%BF%A1%E4%BB%B6%EF%BC%8C%E5%B9%B6%E4%BE%9D%E7%85%A7%E6%97%B6%E9%97%B4%E9%A1%BA%E5%BA%8F%EF%BC%8C%E6%98%BE%E7%A4%BA%E6%9C%80%E6%96%B0%E7%9A%84%E4%BF%A1%E4%BB%B6%E3%80%82 如果报错:

(3条消息) Linux CentOS7 命令错误:send-mail: fatal: parameter inet_interfaces: no local interface found for ::1_祢听的到丶的博客-CSDN博客icon-default.png?t=N176https://blog.csdn.net/yy150122/article/details/106179803#:~:text=Linux%20CentOS7%20%E5%91%BD%E4%BB%A4%E9%94%99%E8%AF%AF%EF%BC%9Asend-mail%3A%20fatal%3A%20parameter%20inet_interfaces%3A%20no%20local,3%20%E7%AC%AC%E4%B8%89%E6%AD%A5%EF%BC%9A%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%E9%82%AE%E4%BB%B6%E6%9C%8D%E5%8A%A1%20%E8%BE%93%E5%85%A5%E5%91%BD%E4%BB%A4%EF%BC%9Asystemctl%20restart%20postfix%204%20%E7%AC%AC%E5%9B%9B%E6%AD%A5%EF%BC%9A%E8%BF%99%E6%97%B6%E5%80%99%E5%86%8D%E4%BD%BF%E7%94%A8mail%20%E5%8F%91%E9%80%81%E9%82%AE%E4%BB%B6%EF%BC%8C%E4%BD%A0%E4%BC%9A%E6%83%8A%E5%96%9C%E7%9A%84%E5%8F%91%E7%8E%B0%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E4%BA%86%E3%80%82

 5 创建大量账号

        具体方法见P461。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值