用户和权限

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
相关推荐
hello_ world.26 分钟前
RHCA10NUMA
linux
神秘人X7071 小时前
Linux高效备份:rsync + inotify实时同步
linux·服务器·rsync
轻松Ai享生活1 小时前
一步步学习Linux initrd/initramfs
linux
轻松Ai享生活1 小时前
一步步深入学习Linux Process Scheduling
linux
绵绵细雨中的乡音3 小时前
网络基础知识
linux·网络
Peter·Pan爱编程3 小时前
Docker在Linux中安装与使用教程
linux·docker·eureka
kunge20134 小时前
Ubuntu22.04 安装virtualbox7.1
linux·virtualbox
清溪5494 小时前
DVWA中级
linux
Sadsvit5 小时前
源码编译安装LAMP架构并部署WordPress(CentOS 7)
linux·运维·服务器·架构·centos
xiaok5 小时前
为什么 lsof 显示多个 nginx 都在 “使用 443”?
linux