Linux用户与权限

用户、用户组
概述

  • Linux是
    多用户多任务操作系统,支持多个用户在同一时间内登陆,不同用户执行不同的任务,并且互不影响。
  • 不同用户具有不同的操作权限
    ,每个用户在权限允许的范围内完成不同的任务。
  • 权限最高的用户叫做
    root,称之为超级管理员用户。
  • 用户组
    是具有相同特征用户的逻辑集合。基于用户组管理权限比直接基于用户管理权限效率要高。

文件归属:

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

文件权限
概述:

  • 文件权限总体上分为三类:

  • r

  • w
  • 执行
    x

查看:

  • 使用
    ls -l命令可以显示出文件的权限相关信息。
  • 第一列
    的信息就是跟权限相关的信息。

权限信息解读

  • 第1位表示文件类型:
    -文件 d文件夹 l链接;
  • 第2位开始每3位构成一组,总共3组,表示:所属用户user、所属用户组group、其他用户组other的权限详情。
  • 每组权限依次为:读、写、执行,用字母rwx表示,没有该类权限使用-表示。

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用户无约束
    3.通常来说相
    关性越高,权限越高
    用户组group管理命令
    概述:
  • groupadd
  • cat /etc/group
  • groupdel
  • chgrp
  • chown
    需要超级用户root的权限才能执行chown命令

1、增加一个新的用户组

groupadd 用户组
-g GID # 指定新用户组的组标识号(GID)。

groupadd group1

此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。

groupadd -g 101 group2

此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。

2、查看当前系统已有组信息

cat /etc/group
ange❌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
    切换使用者的用户身份
  • 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↓快速定位到编辑区域。

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 @ 2024-12-13 14:11  超越思想者  阅读(127)  评论(0)    收藏  举报