用户和权限

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
相关推荐
AOwhisky10 小时前
Kubernetes 学习笔记:集群管理、命名空间与 Pod 基础
linux·运维·笔记·学习·云原生·kubernetes
小龙在慢慢变强..11 小时前
目录结构(FHS 标准)
linux·运维·服务器
2035去旅行11 小时前
嵌入式开发,如何选择C标准库
linux·arm开发
刘延林.11 小时前
win11系统下通过 WSL2 安装Ubuntu 24.04 使用RTX 5080 GPU
linux·运维·ubuntu
CodeOfCC12 小时前
Linux 嵌入式arm64安装openclaw
linux·运维·服务器
宵时待雨13 小时前
linux笔记归纳3:linux开发工具
linux·运维·笔记
magrich13 小时前
安装NoMachine并解决无外接显示器桌面黑屏
linux·运维·服务器
fish_xk13 小时前
Linus基础指令
linux·服务器
宁波阿成14 小时前
在ubuntu22.04源码级安装sub2api
linux·运维·ubuntu·ai·api·token·中转站
charlie11451419114 小时前
嵌入式Linux驱动开发(7) 从虚拟设备到真实硬件 —— LED驱动硬件基础
linux·开发语言·驱动开发·内核·c