Linux用户与权限

Linux用户与权限

用户、用户组

概述

  • Linux是多用户多任务操作系统,支持多个用户在同一时间内登陆,不同用户执行不同的任务,并且互不影响。

  • 不同用户具有不同的操作权限,每个用户在权限允许的范围内完成不同的任务。

  • 权限最高的用户叫做root,称之为超级管理员用户

  • 用户组是具有相同特征用户的逻辑集合。基于用户组管理权限比直接基于用户管理权限效率要高。

image-20240310161948575

文件归属:

  • 根据用户、用户组管理理论划分,Linux上的文件(文件夹)的归属可以分为三类:
    • 拥有者(Owner user
    • 拥有者所在组(Group user
    • 其他用户组(Other users

image-20240310162137193

文件权限

概述:

  • 文件权限总体上分为三类:
    • read)权限
    • write)权限
    • 执行(execute)权限

image-20240310162353212

查看:

  • 使用ls -l命令可以显示出文件的权限相关信息。

  • 第一列的信息就是跟权限相关的信息。

image-20240310162515803

权限信息解读

  • 第1位表示文件类型: -文件 d文件夹 l链接;

  • 第2位开始每3位构成一组,总共3组,表示:所属用户user、所属用户组group、其他用户组other的权限详情。

  • 每组权限依次为:读、写、执行,用字母rwx表示,没有该类权限使用-表示。

image-20240310162707998

rwx真实含义:

对于文件

rwx权限 文件的作用
读权限(r) 表示可读取此文件中的实际内容。例如可以对文件执行cat、more、less、head、tail等文件查看命令。
写权限(w) 表示可以编辑、新增或者修改文件中的内容。例如,可以对文件执行 vim、echo 等修改文件数据的命令。
执行权限(x) 表示该文件具有被系统执行的权限。Window系统中查看一个文件是否为可执行文件,是通过扩展名(.exe、.bat 等),但在 Linux 系统中,文件是否能被执行,是通过看此文件是否具有 x 权限来决定的。也就是说,只要文件拥有 x 权限,则此文件就是可执行文件。但是,文件到底能否正确运行,还要看文件中的代码是否正确。执行权限是文件的最高权限

对于目录

rwx 权限 目录的作用
读权限(r) 表示具有读取目录结构列表的权限,也就是说,可以看到目录中有哪些文件和子目录。一旦对目录拥有 r 权限,就可以在此目录下执行 ls 命令,查看目录中的内容。
写权限(w) 对于目录来说,w 权限是最高权限。对目录拥有 w 权限,表示可以对目录做以下操作:在此目录中建立新的文件或子目录; •删除已存在的文件和目录(无论子文件或子目录的权限是怎样的); •对已存在的文件或目录做更名操作; •移动此目录下的文件和目录的位置。 一旦对目录拥有 w 权限,就可以在目录下执行 touch、rm、cp、mv 等命令。
执行权限(x) 目录是不能直接运行的,对目录赋予 x 权限,代表用户可以进入目录,也就是说,赋予 x 权限的用户或群组可以使用 cd 命令。
  • 文件能不能删除,跟文件本身的权限无关,跟文件的父目录有没有w权限有关

小结:

  1. 对于文件来说,x执行权限最高;对于文件夹来说,w权限最高,实际中授权需要谨慎。
  2. 权限管理对root用户无约束。主要是针对非root用户来设定的。
  3. 通常来说相关性越高,权限越高。正常的话:
    user权限 > group权限 > other权限

用户组group管理命令

概述:

  • groupadd:用于创建一个新的用户组,用户组相关信息会保存在/etc/group文件中。
  • cat /etc/group:查看当前系统用户组信息。
  • groupdel:用于删除用户组。
  • chgrp:用于变更文件或目录的所属群组。不同于chown命令,chgrp允许普通用户改变文件所属的组,只要该用户是该组的一员。
  • chown:用于设置文件所有者和文件关联组的命令,需要超级用户root的权限才能执行chown命令
#1、增加一个新的用户组
groupadd  用户组
-g GID # 指定新用户组的组标识号(GID)。

# groupadd group1
此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。
# groupadd -g 101 group2
此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。

#2、查看当前系统已有组信息
cat /etc/group
ange:x:1001:lisi,wangwu
ange #组名
x #密码口号 一般都没有密码
1001 #groupID  gid 组编号
lisi,wangwu #归属该组的用户

#3、删除组
groupdel 组名

#4、修改文件归属的组
chgrp 组名 文件/目录名  针对文件夹加上-R可以实现递归修改

用户user管理命令

概述:

  • useradd:用于建立用户帐号,帐号建好之后,再用passwd设定帐号的密码。

  • userdel:用于删除用户帐号。

  • cat /etc/passwd:查看当前系统用户信息。

#1、创建用户
useradd 选项 新建用户名
-g   #指定用户所属的群组。值可以是组名也可以是GID
-G   #指定用户所属的附加群组。

#2、设置密码  
[root@node1 linux02]# passwd 用户名
Changing password for user allen.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.  

#3、删除用户
userdel -r 用户名
#此命令删除用户sam在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。

#4、查看用户信息
cat /etc/passwd | grep 用户名

#5、修改文件所属的用户
chown allen 1.txt   #如果是文件夹及其下面的所有要修改 加上-R参数

su用户切换

概述:

  • su(英文全拼:switch user)命令:用于切换使用者的用户身份,除root外,切换时需要键入该使用者的密码。
  • su命令适合在知道用户密码情况下的快速用户切换。
  • 缺点是如果切换成root用户,需要root密码,容易泄露root密码。
[allen@node1 ~]$ whoami
allen
[allen@node1 ~]$ pwd
/home/allen
[allen@node1 ~]$ su root
Password:
[root@node1 allen]# whoami
root
[root@node1 allen]# su allen
[allen@node1 ~]$ whoami 
allen

sudo权限

概述:

  • 背景:普通用户需要root权限操作,但是又不能告知其root密码。可以通过sudo配置让普通用户具备某些root权限操作,同时又不会泄露root密码

  • sudo权限的控制是通过对/etc/sudoers文件编辑实现的。

  • 注意:不要轻易给别人配置sudo权限。

sudo权限配置使用

step1:root用户配置sudo

  • 只有root用户才可以为其他非root用户配置sudo权限。

  • 命令:visudo

  • 打开/etc/sudoers文件之后可以使用100↓快速定位到编辑区域。

image-20240311003904680

step2:普通用户申请sudo权限

  • 普通用户执行命令之前需要添加sudo关键字,表示申请sudo权限执行;

  • 到底是否具有sudo权限以及具备哪些权限,取决于/etc/sudoers中的配置

  • 如果检测发现具有sudo权限,会首先让用户输入自己的密码进行验证,验证成功之后执行,并获取一个为时5分钟的签证,在此期间执行sudo不需要再输入自己的密码;

[allen@node1 ~]$ whoami 
allen
[allen@node1 ~]$ ls /root/
ls: cannot open directory /root/: Permission denied
[allen@node1 ~]$ sudo ls /root 
[sudo] password for allen:   #输入allen的密码进行验证
1.txt  anaconda-ks.cfg  nohup.out   stopZk.sh  zookeeper.out
2.txt  hivedata         startZk.sh  test
[allen@node1 ~]$ sudo ls /root
1.txt  anaconda-ks.cfg  nohup.out   stopZk.sh  zookeeper.out
2.txt  hivedata         startZk.sh  test

sudo ls /root

posted @   七落安歌  阅读(238)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示