Linux系统用户和权限
文章目录
- Linux系统用户和权限
- 1 用户管理
- 1.1 用户分类
- 1.2 切换用户
- 1.3 用户相关文件
- 1.3.1 /etc/passwd
- 1.3.2 /etc/shadow
- 1.4 用户的创建、删除、修改
- 1.4.1 创建用户
- 1.4.2 删除用户
- 1.4.3 修改用户密码
- 1.4.4 修改用户
- 1.5 组的相关命令
- 1.6 系统配置文件
- 1.7 补充命令
- 2 权限管理
- 2.1 修改权限
- 2.2 修改文件所属关系
- 2.3 小实验
Linux系统用户和权限
1 用户管理
1.1 用户分类
uid:Linux系统根据uid号来确定账号的身份信息
超级管理员:拥有最高权限,超级管理员在系统中是唯一的
普通用户:是权限受限的用户,但是在自己的家目录中拥有完整的权限
程序用户:在Linux安装时,或者是安装第三方的软件时,需要运行的账户,但是这些账户不需要登录系统,仅作为程序启动时的依赖账户或者是维持某个程序正常运行的账户。
命令行:
格式:
root@test1:~#
含义:
root:表示当前的登录用户
test1:当前的主机名
~:当前所在的目录
#:表示当前用户时管理员
$:表示当前用户是一个普通用户
1.2 切换用户
从管理员切换到普通用户时不需要输入密码
su - 用户名 完全切换
su 用户名 不完全切换
su 刷新功能 # 仅限于root用户
hostnamectl set-hostname 主机名 永久修改主机名 # su刷新立即生效,无需重启
vim /etc/hostname 修改配置文件(只有第一行生效) # 必须要重启
hostname 主机名 临时修改 # 重启失效
1.3 用户相关文件
1.3.1 /etc/passwd
/etc/passwd
存放用户信息
格式:
root:x:0:0:root:/root:/bin/bash
含义:
root: 用户名,账号名称
x: 密码的占位符,无实义
0: uid号 0 就是管理员
0: gid号
root: 用户账号
/root: 该用户的家目录的位置
/bin/bash: 用户登录系统的shell 默认都是bash
程序用户的 uid:1-999
普通用户的 uid: 从1000 开始
1.3.2 /etc/shadow
/etc/shadow
存放用户密码信息
格式:
root:$j9TIrCg4bG4xZ6UMRELr7hnJ11chsPjlHkaFRIs/ZZIYLX5DnydflaQswZYkHdcsYA615:20025:0:99999:7::
含义:
root: 用户名
$j9TIrCg4bG4xZ6UMRELr7hnJ11chsPjlHkaFRIs/ZZIYLX5DnydflaQswZYkHdcsYA615: md5 加密的密码信息字符串
20025:上次修改密码的时间,1970 年 1 月 1 号到修改密码过了多少天
0:密码的最短有效天数,0 表示不限制
99999:密码的最长有效期,99999 表示不限制
7:提前 7 天告知用户,密码即将过期
第二位如果为!或*:表示用户的密码为空,伪空(普通用户登录时依然需要输入密码)
1.4 用户的创建、删除、修改
1.4.1 创建用户
创建普通用户一定要创建密码
useradd [选项] 用户名 创建用户
-m 创建用户时创建家目录(只针对Ubuntu)
-s 指定用户登录的shell(只针对Ubuntu)
-u 创建用户时指定uid
-d 指定用户家目录的位置
-M 不创建用户的家目录(创建程序用户时使用)
1.4.2 删除用户
userdel 删除用户
-r 删除用户时一并删除家目录
1.4.3 修改用户密码
passwd 用户名 创建用户的密码
-d 清空用户的密码(登录时才不需要密码,/etc/shadow第二位什么都不显示)
-l 锁定用户
-u 解锁用户
-S 查看账号是否被锁定
命令行修改密码(用于脚本,减少交互)
CentOS:
echo 密码 | passwd --stdin 用户名
Ubuntu:
echo "用户名:密码" | chpasswd #密码(有复杂性检测,长度最少8位,字母和数字,大写字符,特殊符号)
1.4.4 修改用户
usermod 修改账户信息
-u 修改用户的 uid 号
-d 修改用户的家目录位置
-e 修改用户的账户有效时间
-g 修改用户的所在组
-G 修改用户的附加组
-s 修改用户的登陆 shell
-L 锁定用户
-U 解锁用户
1.5 组的相关命令
/etc/group存放组信息
groupadd 组名 创建组
gpasswd 修改组成员
-a 向组内添加用户
-d 删除组内的成员
-M 添加多个组内的成员,以","分开
groupdel 组名 删除组
1.6 系统配置文件
-
全局配置------对所有用户生效
/etc/profile
source /etc/profile 读取配置文件当中的可运行的代码,立即生效,新开终端即可
-
用户配置------只对当前用户生效
用户家目录下的隐藏文件
.bashrc
和.profile
,只对某个用户有效.profile
优先级高于.bashrc
1.7 补充命令
id 用户名 查询用户的身份标识
w 查询当前登录到主机的用户信息
who w的缩减版
2 权限管理
2.1 修改权限
chmod 权限 文件/目录
4:r
2:w
1:x
u:所有者
g:所属组
o:其他人
a:所有人
+:增加权限
-:去除权限
=:设置权限
-R 递归设置权限(对于目录)
umask:反掩码/权限码
文件的默认权限是666,目录的默认权限是777
umask设定了文件和目录创建时的默认权限
文件默认没有执行权限,只能手动添加
目录默认有执行权限
2.2 修改文件所属关系
chown
同时修改文件/目录的所有者和所属组:
chown nginx.nginx 文件名/目录名
chown nginx:nginx 文件名/目录名
只改所有者:
chown nginx 文件名/目录名
只改所属组:
chown .nginx 文件名/目录名
chown :nginx 文件名/目录名
chown -R nginx.nginx 目录名 递归修改
2.3 小实验
第一步:编写脚本文件
第二步:给脚本文件添加执行权限
第三步:切换到某用户家目录,编辑用户配置文件,将脚本路径写在最后一行保存退出
第四步:切换用户