目录
一.Linux基于用户身份对资源访问进行控制
1.用户账户
超级用户、普通用户、程序用户
2.组账号
基本组(私有组) 相当于人的大名,必须有
附加组(公共组)
3.UID和GID
UID(User IDentity,用户标识号)
0是超级用户 程序用户范围1-999 普通用户1000-60000
GID(Group IDentity,组标识号)
0是超级用户组 没有程序组,直接1000-60000特殊组wheel具有管理员权限
二.用户账户文件
保存用户名称、宿主目录、登录Shell等基本信息
文件位置/etc/passwd
每一行对应一个用户的账号记录
[root@localhost opt]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
用户账号文件
保存用户的密码,账号有效期等信息
文件位置:/etc/shadow
每一行对应一个用户的密码记录
[root@localhost opt]# cat /etc/shadow
root:$6$NIFttjt.W9JEIT5a$jTmdSCG2eLcfucxPP4ibFIJk6srGqHsTmOUt05FEL5zbHPmvgWfo44sM3TaxzMuAvaOXbDubuElxWp//ka13X.::0:99999:7:::
account:password:UID:GID:GECOS:directory:shell
(帐号:密码:用户ID:组ID:一般的信息:目录:shell)
以冒号分隔
第一列:账户名
第二列:存放真正加密的密码,采用SHA512散列算法,更加安全
!!和*表示没有密码不能登陆,新创建用户也是!!,如果密码前面显示双感叹号表示该账户被锁定了
第三列:上一次修改密码的时间,从1970年1月1日开始算的,因为1970年是linux的诞生日,date -d "1970-01-01 15775 days"可以查看哪一天改过
第四列:多久之后才可以修改密码,如果是 0,则密码可以随时修改
第五列:密码有效期,默认99999,表示永久生效
第六列:密码到期前的第几天发出告警信息,默认是7天,每次登录系统都会向该账户发出 "修改密码" 的警告信息
第七列:密码过期后多少天禁用
第八列:账号失效时间,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间
普通用户密码修改,用root输入 passwd 用户名修改
三.用户账号管理
1.添加用户账号
useradd命令
useradd [选项]... 用户名
-u指定UID
-d手工指定用户的主目录。主目录必须写绝对路径,而且如果需要手工指定主目录,则一定要注意权限
-e指定失效时间 useradd -e 2021-09-04 用户名
-g 基本组 新建的组必须存在
-G附加组
-M 不创建家目录,默认在home里 useradd -M 用户名
-s指定bash环境 useradd -s 地址 用户名
/sbin/nologin 不能登入系统
[root@localhost opt]# useradd -u 2000 user1
[root@localhost opt]# id user1
uid=2000(user1) gid=2000(user1) 组=2000(user1)
批量增加user1-user10用户
[root@localhost etc]# echo user{1..10}|xargs -n1 useradd
2.设置/更改用户密码
passwd命令
passwd [选项].... 用户名
常用选项
没有选项,改密码
没有选项没有用户名,就是改当前用户密码
-d清空当前账户密码
-l 锁定用户
-S当前用户状态
-u 解锁
3.修改用户账号的属性usermod
usermod命令
usermod [选项]... 用户名
-l修改登录名 新名字在前,旧用户名在后
[root@localhost opt]# usermod -l user1 yan
usermod:用户“yan”不存在
[root@localhost opt]# usermod -l yan user1
[root@localhost opt]# id yan
uid=2000(yan) gid=2000(user1) 组=2000(user1)
-L锁定用户
[root@localhost opt]# usermod -L yan
[root@localhost opt]# passwd -S yan
yan LK 2021-09-04 0 99999 7 -1 (密码已被锁定。)
-U解锁用户
以下选项与useradd命令中的含义相同
-u -d -e -g -G -s
4.删除用户账号
userdel命令
userdel [-r] 用户名
添加 -r 选项时,表示连用户的宿主目录一并删除
id zhangsan
userdel -r zhangsan
ls -ld /home/zhangsan
5.用户账号的出事配置文件
文件来源
新建用户帐号时,从/etc/skel目录中复制而来
主要的用户初始配置文件
~/.bash_profile
~/.bashrc
~/.bash_logout
四.组账号文件
与用户帐号文件相类似
/etc/group:保存组帐号基本信息
/etc/gshadow:保存组帐号的密码信息
[root@localhost ~]# grep "adm"/etc/group
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
1.添加组账号命令groupadd
groupadd命令
groupadd [-g GID] 组账号名
例如添加market组
[root@localhost ~]# groupadd -g 1000 market
[root@localhost ~]# tail -1/etc/group
market:x:1000
2.添加删除组成员gpasswd
gpasswd命令
设置组帐号密码(极少用)、添加/删除组成员
gpasswd [选项]..组帐号名
常用选项
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-M:定义组成员列表,以逗号分隔
3.删除组账号groupdel
groupdel命令
groupdel 组帐号名
删除组账号groupdel
示例:删除组帐号market
[root@localhost ~]# grep "market'" /etc/group
[root@localhost ~]# groupdel market
五.查询账号相关信息命令
1.groups命令
查询用户账号所属的组
groups [用户名]
例:groups adm
[root@localhost yum.repos.d]# groups root
root : root
2.id
查询用户账号的身份标识
id [用户名]
例:id adm
[root@localhost yum.repos.d]# id root
uid=0(root) gid=0(root) 组=0(root)
3.finger命令
查询用户账号的详细信息
finger [用户名]
例:finger root
[root@localhost yum.repos.d]# finger root
Login: root Name: root
Directory: /root Shell: /bin/bash
On since 六 9月 4 07:41 (CST) on pts/0 from 192.168.133.1
1 second idle
No mail.
No Plan.
4.w、who、users命令
查询已登录到主机的用户信息
[root@localhost opt]# w
13:50:02 up 7:05, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.133.1 07:41 2.00s 0.10s 0.02s w
[root@localhost opt]# who
root pts/0 2021-09-04 07:41 (192.168.133.1)
[root@localhost opt]# users
root
六.文件/目录的权限和归属
1.访问权限
读取r:允许查看文件内容、显示目录列表
写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行x:允许运行程序、切换目录
2.归属(所有权)
属主:拥有该文件或目录的用户帐号
属组:拥有该文件或目录的组帐号
lrwxrwxrwx. 1 root root 14 9月 2 08:42 cc -> /root/aa/bb/cc
权限项 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 | 执行 |
字符表示 | r | w | x | r | w | x | r | w | x |
数字表示 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
权限分配 | 文件所有者 | 文件所属组 | 其他用户 |
r | w | x | r | w | x | x | ||
4 | 2 | 0 | 4 | 0 | 0 | 4 | 0 | 0 |
6 | 4 | 4 |
只对看文件夹权限如果有删除就可以删除文件有效,不看文件权限
对文件的权限
1.r可使用文件查看类工具,比如:cat,可以获取其内容
2.w可修改其内容
3.x可以把此文件提请内核启动为一个进程,即可以执行(运行)此文件(此文件的内容必须是可执行)
对目录的权限
1.r可以使用ls查看此目录中文件列表
2.w可在此目录中创建文件,也可删除此目录中的文件,而和此被删除的文件的权限无关
3.x可以cd进入此目录,可以使用Is-l查看此目录中文件元数据(须配合r权限),属于目录的可访问的最小权限
七.设置文件和目录的权限chmod
chmod命令
chmod [ugoa] [+-=] [rwx] 文件或目录
u标识属主 g表示属组 o其他用户 a所有用户
如果没有ugoa 是给所有用户设置权限
或者
chmod nnn 文件或目录 n=为7、6、4、2、1
常用选项
-R 递归修改指定目录下所有子项的权限,只要设置最开始的目录名就可以了
八.设置文件和目录的归属chown
chown命令
chown 属主 文件或目录
chown 属组 文件或目录
chown 属主:属组 文件或目录
常用选项
-R:递归修改指定目录下所有文件、子目录的归属
九.权限掩码umask
umask作用
控制新建的文件或者目录的权限
默认权限去除umask的权限为新建的文件或者目录的权限
umask设置:umask 022
umask查看:umask
文件666.文件夹777
1示例
将umask设为000,实际就是777,rwxrwxrwx
将umask设为022,实际就是755,rwxr-xr-x
总结
用户账号管理(useradd、 passwd.usermod. userdel)
组账号管理(groupadd、gpasswd、 groupdel)
用户账号文件与组账号文件
查询账号相关信息的命令(groups、id、finger.w)
设置目录与文件权限(chmod)
设置目录与文件归属(chown)