linux的用户账号与权限管理
一、用户账号
- root 和zhang 表示当前的登录用户
- test1 表示当前的主机名
- /home: 表示当前所在的目录为/home
- ~: 表示当前所在的目录为~
- #: 表示当前用户是管理员
- $: 表示当前用户是普通用户
1.切换用户
-
su - 用户名 (完全切换)
-
su 用户名 (不完全切换)
从超级管理员切换到普通用户不需要密码,以上两种方法无明显区别,只是显示有所不同
-
su 有刷新的功能,仅限于root用户。
2.修改主机名
-
hostnamectl set-hostname 主机名
#永久修改主机名,配合su刷新立即生效,无需重启系统。
-
修改配置文件
vim /etc/hostname #修改配置文件,必须要重启
-
hostname 主机名
#临时修改,重启失效。
3.用户种类
-
超级管理员
拥有最高权限,超级管理员在系统中是唯一的。
-
普通用户
是权限受限制的用户,但在自己的家目录中拥有完整的权限。
-
程序用户
在linux安装时,或者是安装第三方软件时,需要运行的账户,但是这些账户不需要登录系统,仅仅作为程序启动时的依赖账号或者是维持某个程序正常运行的账号。
4.uid
-
作用
linux系统根据uid来确定账号的身份信息
-
特点
所有账号的uid都是唯一的,不能重复;
在创建用户时,系统会自动分配(根据用户创建账号时的配置来进行分配)
-
/etc/passwd保存用户的信息
例
root:x:0:0:root:/root:/bin/bash
解释
:为分隔符
root:用户名,账号名称
x 密码的占位符,无实义
0 uid号0 就是管理员
0 gid 号0 就是组账号
root 用户账号
/root 该用户的家目录的位置
/bin/bash 用户登录系统的shell,默认都是bas
程序用户的uid 从1到999
普通用户的uid 从1000开
-
/etc/shadow用户的密码信息
例
nginx:!:20025:0:99999:7:::
lisi:$y$j9T$APDNnZbsDU68JivVhQc790$fYFKnIqBQqzf8Sth1DpLl5odb90HnUrGU5CpOW60LwB:20026:0:99999:7:::解释
:为分隔符
lisi 用户账号
$y$j9T$APDNnZbsDU68JivVhQc790$fYFKnIqBQqzf8Sth1DpLl5odb90HnUrGU5CpOW60LwB为加密的密码信息字符串
20026 上次修改密码的时间
0 密码的最短有效天数,0表示不限制
99999 密码的最长有效天数,99999表示不限制
7 提前7天告知用户密码即将过期
!或者* 表示用户的密码为空,伪空
5.创建用户
centos: uesradd 用户名 会自动生成该用户的家目录
ubuntu: useradd 选项 用户名
如useradd -m -s /bin/bash nginx
选项 | 功能 |
-m | 创建用户时创建家目录(只针对ubuntu) |
-s | 指定用户的登录shell(只针对ubuntu) |
-u | 创建用户时指定uid |
-d | 指定用户家目录的位置 |
-M | 创建程序用户时使用,不创建用户的家目录 |
6.删除用户
userdel 用户名
userdel -r 用户名 #删除用户时一并删除家目录
7.用户修改密码
-
直接用passwd修改
passwd 选项 用户名
选项 | 功能 |
-d | 清空用户的密码,就不需要密码了 |
-l | 锁定用户 |
-u | 解锁用户 |
-S | 查看账号是否被锁定 |
-
用命令行修改
centos
echo 密码 | passwd --stdin 用户名
ubuntu
echo "用户名:密码" | chpasswd
# ubuntu的密码:长度最少8位,且是数字字母组合(要有一定的复杂性)
8.修改账户信息
usermod 选项 用户名
选项 | 功能 |
-s | 修改用户的登录shell |
-u | 修改用户的uid号 |
-d | 修改用户的家目录位置 |
-e | 修改用户的账户有效时间 |
-g | 修改用户的所在组 |
-G | 修改用户的附加组 |
-L | 锁定用户 |
-U | 解锁用户 |
9.用户配置文件
-
全局配置 --> 对所有用户生效
/etc/profile
-
用户自定义 ---> 只对当前用户生效
在用户的家目录中,是一个隐藏的文件。
.bashrc 和 .profile 都是用户的配置文件,区别在于用户登录后会优先读取.profile里面的配置,然后才会读取.bashrc的配置。
-
配置生效方法
重启 (不推荐);
source /etc/profile ; 再新开一个终端读取配置文件
#source的作用:读取配置文件中的可运行的代码,立即生效。
二、权限管理
id 用户名 #查询用户的身份标识
w #查询当前登录到主机的用户信息
1.权限的种类与表示
三种权限:读、写、执行
表示
权限 | 表示方式 | 八进制表示 |
读 | r | 4 |
写 | w | 2 |
执行 | x | 1 |
符号表示
符号 | 含义 |
u | 所有者 |
g | 所在组 |
o | 其他用户 |
a | 默认为a,表示所有用户 |
+ | 增加权限 |
- | 减少权限 |
= | 设置权限 |
2.chmod
chmod 权限 目录名/文件名
chmod -R 权限 目录名 #-R 递归赋权,主要用于目录
3.chown
chown 修改所有者和所在组
chown -R 所有者和所在组 目录名 #-R递归
-
同时修改文件的所有者和所在组
chown 所有者:所在组 文件名/目录名
chown 所有者.所在组 文件名/目录名
-
只改所有者
chown 所有者 文件名/目录名
-
只改所在组
chown .所在组 文件名/目录名
chown :所在组 文件名/目录名
实验
用户登录时,提示一个欢迎语“开心一分钟,快乐六十秒”
root用户下
cd /opt
vim test.sh #创建一个shell脚本
#!/bin/bash
echo "开心一分钟,快乐六十秒"
保存退出
chmod 777 test.sh #所有用户都可以用,但是要修改该用户的配置文件才能生效
vim /home/zhang/.profile #修改用户zhang的配置文件
/opt/test.sh
source .profile #读取shell脚本
#显示欢迎语
su - zhang #切换到用户zhang
#显示欢迎语