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:yj9TAPDNnZbsDU68JivVhQc790fYFKnIqBQqzf8Sth1DpLl5odb90HnUrGU5CpOW60LwB:20026:0:99999:7:::

解释

:为分隔符

lisi 用户账号

yj9TAPDNnZbsDU68JivVhQc790fYFKnIqBQqzf8Sth1DpLl5odb90HnUrGU5CpOW60LwB为加密的密码信息字符串

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

#显示欢迎语

相关推荐
牧以南歌〆3 小时前
在Ubuntu主机中修改ARM Linux开发板的根文件系统
linux·arm开发·驱动开发·ubuntu
互联网搬砖老肖4 小时前
运维打铁: MongoDB 数据库集群搭建与管理
运维·数据库·mongodb
Antonio9154 小时前
【音视频】HLS简介与服务器搭建
运维·服务器·音视频
夜月yeyue4 小时前
设计模式分析
linux·c++·stm32·单片机·嵌入式硬件
kfepiza5 小时前
Debian的`/etc/network/interfaces`的`allow-hotplug`和`auto`对比讲解 笔记250704
linux·服务器·网络·笔记·debian
艾伦_耶格宇5 小时前
【docker】-1 docker简介
运维·docker·容器
R.X. NLOS5 小时前
VS Code远程开发新方案:使用SFTP扩展解决Remote-SSH连接不稳定问题
运维·服务器·ssh·debug·vs code
cuijiecheng20186 小时前
Ubuntu下布署mediasoup-demo
linux·运维·ubuntu
独行soc8 小时前
2025年渗透测试面试题总结-2025年HW(护网面试) 33(题目+回答)
linux·科技·安全·网络安全·面试·职场和发展·护网
java龙王*8 小时前
开放端口,开通数据库连接权限,无法连接远程数据库 解决方案
linux