用户和权限

Linux的root用户

无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理

  • 超级管理员: root用户拥有最大的系统操作权限(不建议长期使用root用户,避免带来系统损坏)
  • 普通用户的权限: 一般在其HOME目录内是不受限的,在HOME目录外仅有只读和执行权限,无修改权限

su和exit命令

su [-] [用户名]: su(Switch User)命令用于账户切换的系统命令

  • -表示是否在切换用户后加载环境变量(建议带上)
  • 用户名表示要切换的用户,省略用户名默认切换到root
  • 普通用户切换到其它用户需要输入密码,root用户可以直接切换到其它用户

exit:退回上一个用户(快捷键ctrl + d)

sudo 其他命令: 为普通的命令授权即临时以root身份执行

普通用户想要使用sudo命令,需要在root用户中为普通用户配置sudo认证

  • 第一步: 切换到root用户执行visudo命令会自动通过vi编辑器打开/etc/sudoers文件增加配置

  • 第二步: 在文件的最后一行添加: 用户名 ALL=(ALL) NOPASSWD: ALL

  • 第三步: 执行:wq命令保存

用户和用户组

Linux系统中可以配置多个用户和用户组,并且一个用户可以加入多个用户组中

  • Linux中关于文件/文件夹权限的管控级别有2个级别: 针对用户的权限控制,针对用户组的权限控制
  • Linux中创建用户和用户组时需要保证在root用户下

用户、用户组相关管理命令

groupadd 用户组名: 创建用户组

groupdel 用户组名: 删除用户组

useradd [-g -d] 用户名: 创建用户

  • -g选项:指定用户所在的组(必须存在),不指定会创建同名组并自动加入该用户
  • -d选项:指定用户HOME路径,不指定HOME目录默认在/home/用户名

userdel [-r] 用户名: 删除用户

  • -r选项:删除用户的HOME目录,默认保留用户的HOME目录

id [用户名]: 查看用户所属组

  • 用户名表示被查看的用户,如果不提供用户名表示查看当前用户

usermod -aG 用户组 用户名: 将指定用户加入指定用户组(增加用户所在的组不是改变用户所在的组)

getent passwd: 查看当前系统中有哪些用户

  • 显示格式: 用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:用户执行的终端(默认bash)

getent group: 查看当前系统中有哪些用户组

  • 显示格式: 组名称:组认证(显示为x):组ID

Linux文件的权限管控信息

通过 ls -l 可以以列表形式查看内容,并显示权限细节

文件、文件夹的权限控制信息

  • r表示读权限: 针对文件/文件夹表示可以查看文件/文件夹内容,如ls命令
  • w表示写权限: 针对文件表示可以修改此文件,针对文件夹表示可以在文件夹内创建、删除、改名等操作
  • x表示执行权限: 针对文件表示可以将文件作为程序执行,针对文件夹表示可以更改工作目录到此文件夹(即cd进入该目录)

修改权限控制

chmod [-R] 权限 文件/文件夹: 修改文件、文件夹的权限信息(只有文件、文件夹的所属用户或root用户可以修改权限)

  • -R选项: 对文件夹内的全部内容应用同样的操作
  • 权限: u表示user所属用户权限,g表示group组权限,o表示other其它用户权限
shell 复制代码
#表示将文件权限修改为rwxr-x--x
chmod u=rwx,g=rx,o=x hello.txt 

#文件夹test以及文件夹内全部内容权限设置为:rwxr-x--x
chmod -R u=rwx,g=rx,o=x test

权限可以用3位数字来代表: 第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限

  • r记为4,w记为2,x记为1,rwx的相互组合可以得到从0到7的8种权限组合
shell 复制代码
#751表示rwx(7),r-x(5),--x(1)
chmod 751 hello.txt

#将hello.txt的权限修改为: r-x--xr-x
chmod 515 hello.txt

chown [-R] [用户][:][用户组] 文件/文件夹: 修改文件、文件夹的所属用户和用户组(只有root用户可以修改)

  • -R选项: 对文件夹内全部内容应用相同规则
  • 用户表示修改所属用户
  • 用户组表示修改所属用户组
  • : 用于分隔用户和用户组
shell 复制代码
#将hello.txt所属用户修改为root
chown root hello.txt
#将hello.txt所属用户组修改为root
chown :root hello.txt
#将hello.txt所属用户修改为root,用户组修改为itheima
chown root:itheima hello.txt
#将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则
chown -R root test
相关推荐
李少兄3 小时前
CentOS系统下前后端项目部署攻略
linux·运维·centos
Two_brushes.5 小时前
【Linux】线程机制深度实践:创建、等待、互斥与同步
linux·运维·服务器·多线程
设计师小聂!7 小时前
Linux系统中部署Redis详解
linux·运维·数据库·redis
kfepiza7 小时前
Debian-10编译安装Mysql-5.7.44 笔记250706
linux·数据库·笔记·mysql·debian·bash
努力做小白9 小时前
Linux驱动11 --- buildroot&杂项驱动开发方法
linux·运维·驱动开发·单片机·嵌入式硬件
帽儿山的枪手9 小时前
追踪网络流量就这么简单 | 进阶篇 | conntrack
linux·windows·网络协议
哈哈浩丶10 小时前
Linux驱动开发1:设备驱动模块加载与卸载
linux·运维·驱动开发
Bulestar_xx10 小时前
20250711_Sudo 靶机复盘
linux·安全·web安全
一位搞嵌入式的 genius10 小时前
暑期自学嵌入式——Day01(C语言阶段)
linux·嵌入式c语言
胡耀超12 小时前
Umi-OCR 的 Docker安装(win制作镜像,Linux(Ubuntu Server 22.04)离线部署)
linux·深度学习·ubuntu·docker·容器·nlp·ocr