鸟哥Linux私房菜学习记录day7

发布时间 2023-08-02 17:48:15作者: Redamancy_03

第十三章   Linux账号管理与ACL权限设置

1.账号名称

2.密码,但已经不用,用x表示,密码放置到/etc/shadow
3.UID,0表示系统管理员,1-999表示系统账号,1000-60000表示可登录用户。
4.GID,与/etc/group有关。5.用户信息说明栏:只是用来解释这个账号的意义。
6.家目录:可以修改。
7.shell:当用户登录系统后就会获取一个shell来与系统的内核沟通以进行用户的操作任务。有一个shell可以使账号再登录时无法获得shell环境,那就是/sbin/nologin,可以用来制作纯pop邮件账号的数据。

1.账号名称,必须与/etc/passwd中的相同
2.密码
3.最近修改密码的日期,以1970年1月1日累加
4.密码不可修改的天数(与第三个字段相比):0为任意时间可修改,20的话就是20天后不能修改
5.密码需要重新修改的天数(与第三个字段相比):你必须要再这个天数内重新设置密码,否则这个账号的密码将会【变为过期特性】。
6.密码需要修改期前的警告天数(与第5个字段相比)
7.密码过期后的账号宽限时间(密码失效日):密码有效期为3字段和5字段相加。
8.账号失效日期:收费服务中使用
9.保留

 

  • 1.组名
  • 2.用户组密码
  • 3.GID
  • 4.此用户支持的账号名称:要让dmtsai与alex加入root组,可以再第一行后加入【dmtsai,alex】,注意不要有空格

账户管理

新增与删除用户useradd相关配置文件passwd,usermod,userdel

useradd [-u UID] [-g 初始用户组] [-G 次要用户组] [-mM] \
userdel [-r] username  -r:连同使用者的家目录也删除。

 passwd
passwd [--stdin] [账号名称] #所有人均可使用来改自己的密码
passwd [-l] [-u] [--stdin] [-S] \
> [-n 日数] [-x 日数] [-w 日数] [-i 日期] 账号  #root功能

 usermod提供相关命令对账号相关数据进行微调。
usermod [-cdegGlsuLU] username

 

 

用户功能

id [username] 查询某人或自己的UID/GID
finger [-s] username
-s:仅列出使用者的账号、全名、终端代号与登录时间等


chsh [-ls] #change shell的意思
-l:列出系统上可用的shell,其实就是/etc/shells的内容
-s:修改自己的shell

groupadd [-g GID] [-r] 用户组名称
新建一个用户组
groupadd group1
新建与用户私有用户组无关的其他用户组时,使用小于1000的GID为宜。
groupmod [-g GID] [-n group_name] 用户组名
groupdel [groupname]
如果硬要删除一个groupname需要确定/etc/passwd里的账号没有任何人使用该用户组作为初始用户组。
可以先修改这个用户的GID再输出这个用户。
gpasswd groupname
gpasswd [-A user1,...] [-M user3,..] groupname
gpasswd [-rR] groupnmae

ACL设置技巧:getfacl setfacl

getfacl:取得某个文件/目录的 ACL 设置项目;
setfacl:设置某个目录/文件的 ACL 规范

setfacl [-bkRd] [{-m|-x} acl 参数] 目标文件名
1.针对特定使用者的方式。
#设置规范【u:[使用者账号列表]:[rwx]】,例如针对vbird1的权限规范rx。
touch acl_test1
ll acl_test1
setfacl -m u:vbird1:rx acl_test1
ll acl_test1
#权限部分多了个+,且与原本的权限644看起来差异很大,但要如何查看?
setfacl -m u::acl acl_test1
ll acl_test1
#设置值中的u后面无使用者列表,代表设置该文件拥有者,所以上面root的权限成了rwx。
一个文件设置了ACL参数后,它的权限部分就会多出一个+号,但是此时你看到的权限与实际权限可能有点误差。利用getfacl查看。

ACL的权限设置被子目录继承。
#针对默认权限的设置
#设置规范【d:[ug]:使用者列表:[rwx]】
【针对目录来设置的默认ACL权限设置值】的选项,我们可以让这些属性继承到子目录下。
setfacl -b 文件名 取消ACL的属性。
#开始让pro3这个用户无法使用该目录。
setfacl -m u:pro3:- /srv/projecta
#在设置一个用户或用户组没有任何权限的ACL语法中,权限的字段不可留白,而是应该加上一个减号。

 


使用者身份切换


【su -】 直接转变成root
【sudo 命令】执行root的命令串

su [-lm] [-c 命令] [username]
-m:-m与-p是一样的,表示【使用目前的环境设置,而不读取新使用者的配置文件】。
-c:仅进行一次命令
# 单纯使用【su】切换成为root的身份,读取的变量设置方式为非登录shell的方式,这种方式很多原本的变量不会被修改。要加上【-】可以转换环境。

用户特殊的shell和PAM认证模块

特殊的shell:/sbin/nologin    可以建立/etc/nologin.txt提示用户不可登录

统计passwd中各shell出现的次数

 

 

Linux主机上的用户信息传递

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

  w或who 查询目前登录在系统上的主机
  lastlog 查询每个账号最近登录的时间,即读取/var/log/lastlog

用户对谈:write、mesg、wall

  write 使用者账号 [使用者所在的终端界面]
  mesg n  #不接受他人的消息
  mesg y  #接受他人的消息
  wall “话”  #广播消息

用户邮箱mail

 

 

 

第十四章 

磁盘配额管理

quota指令基本的基本分类:
一种是查询功能(quota ,quotacheck,quotastats,warnquota,repquota)

另一种则是编辑quota的内容(edquota,setquota)

 

磁盘配额步骤

1.设定分区的文件系统支持磁盘配额参数:支持度最好的是ext2/ext3,启动文件系统支持磁盘配额,编译/etc/fstab,是要开放的磁盘可以支持磁盘配额

2.建立磁盘记录文件:整个磁盘配额进行磁盘限额配置记录的档案是aquota.user/aquota.group,这两个档案必须用quotacheck扫描,接下来使用quotacheck扫描磁盘

3.编辑磁盘配额限制值数据:使用edquota来编辑每个使用者或群主的可使用空间

4.重新扫描与启动磁盘配额

 

quota [-uvsl] [username]

quota [-gvsl] [groupname]

quotacheck [-avug] [/mount_point]

edquota [-u username] [-g groupname]

edquota -t

edquota -p usename_demo -u username

quotaon [-avug]

quotaon [-vug] [/mount_point]

quotaoff [-a]

quotaoff [-ug] [/mount_point]

repquota [-avug]

 

 

 

 

 

2.格式化

格式化本质上是创建文件系统,当然在创建新的文件系统的时候也会顺便把之前的文件删除掉,因此一般人就认为格式化意味着删除所有文件。

将刚才分配好的4号分区格式化为xfs文件系统。

格式化使用mkfs(make file system)指令。当要格式化为xfs文件系统的时候就是用mkfs.xfs,这里直接使用默认参数进行格式化

 

3.挂在文件系统

挂载文件系统就是将一个空的目录映射到某一个磁盘的分区上面。

在图形界面下,可以使用无脑的挂载方式,直接双击那个磁盘就行当于挂载了它,应该是被挂载到了media下面。

为了能挂载到指定的目录下,就必须使用mount这些比较麻烦的挂载方式。mount基本使用非常直观,下图显示了如何将已经格式化的xfs文件系统挂载到/data/xfs上。首先要使用blkid查询/dev/sda4的UUID(其实直接使用/dev/sda4也可以成功挂载)。最后用df指令查看/data/xfs是否成功挂载