Linux用户和权限学习笔记

news2024/10/6 2:13:13

认识root用户

什么是root用户

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

  • 在Linux系统中,拥有最大权限的账户名为:root(超级管理员)
  • 而在前期,我们一直使用的账户是普通账户:itheima

如果对Linux有所了解,那么提到root用户并不陌生,这是Linux的最高权限,Linux是一个多用户模式,那么必然有一个用户可管理这些用户,那么这个用户就是root

虽然Windows、MacOS也有这个功能,但是我不知道,我没用过。

我在Linux上的用户就是huan。

[huan@localhost home]$从这里就可以看出来。huan

root用户拥有最大的系统操作权限,而普通用户在许多地方的权限都是受限的

  • 普通用户的权限,一般在其HOME目录内是不受限的
  • 一旦出了HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限。
[huan@192 ~]$ mkdir /test
mkdir: 无法创建目录"/test": 权限不够

我用普通用户在根目录场景一个文件夹,会提示我权限不够

[root@192 ~]# mkdir /test
[root@192 ~]# ls /
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  test  tmp  usr  var

如果是管理员用户,那么就不会提示。

普通用户只能在自己的家目录内工作,那么就是/home/huan/

用户切换命令

在前面,我们接触过su没了来切换到root账户,

su没了就是用于账户切换的系统命令,其来源英文单词:Switch User

语法:su [-] [用户名]

  • -符号是可选的,表示是否在切换用户后加载环境变量(后续讲解),建议带上
  • 参数:用户名,表示要切换的用户,用户名可以也省略,省略表示切换到root
  • 切换用户后,可以通过exit命令退回到上一个用户,也可以使用快捷键:ctrl+d
  • 使用普通用户,切换到其他用户需要输入密码,如root用户
  • 使用root用户切换到其他用户,无需密码,可以直接切换
[huan@192 ~]$ su -
密码:
上一次登录:二 11月 15 14:27:03 CST 2022pts/0 上
[root@192 ~]#

切换到root用户,需要输入密码,注意输入密码时不显示,不要误以为自己没按上。

[root@192 ~]# exit
登出
[huan@192 ~]$

退出root用户,如果是快捷键ctrl+d,提示是这样的

[root@192 ~]# 登出

root切换到其他用户不需要密码,那我好奇,在以后的工作中管理员会不会通过root用户来查看下面的人都在干什么,那岂不是就没有隐私了。但是话又说回来,我们也就是用Linux进行开发把,不可能日常使用吧

sudo命令

在我们得知root密码的时候,可以通过su命令切换到root得到最大权限。

但是我们不建议长期使用root用户,避免带来系统损坏。

我们可以使用sudo命令,为普通的命令授权,临时以root身份执行

语法:sudo 其他命令

  • 在其他命令之前,带上sudo,即可以为这一条命令临时赋予root授权
  • 但是并不是所有的用户,都有权力使用sudo,我们需要为普通用户配置root认证

上一章节中提到一个删除的命令,一条命令就可以把这个Linux系统搞瘫痪。你说我不执行不就好了吗,可是万一呢,不小心哪一天就

使用root用户不要长期使用

sudo就是个临时授权,今天我有事,你帮我看一下。临时让你看一下。临时给命令一个权力

但不是每一个用户都有这个权力,需要root认证。

突然想起来,乌班图里面好像执行su命令会报错,我一直用的是sudo,这是为什么。

怎么授权root认证

  • 切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers

  • 在文件的最后添加

    itheima ALL=(ALL)	NOPASSWD:ALL
    
    • 其中最后添加的NOPASSWD:ALL表示使用sudo命令,无需输入密码
  • 最后通过wq保存

授权的事情一定是root用户干的

先看一下没有root授权会是什么结果

[huan@192 ~]$ mkdir /huan
mkdir: 无法创建目录"/huan": 权限不够

不加sudo,是直接告诉你权限不够。

[huan@192 ~]$ sudo mkdir /huan

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。

[sudo] huan 的密码:
huan 不在 sudoers 文件中。此事将被报告。

[huan@192 ~]$ ls /
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  test  tmp  usr  var

加上sudo,让我输入密码,发出一个警告,还是没有创建

现在授权

首先是打开这个文件,

[root@192 ~]# visudo
[root@192 ~]# vi /etc/sudoers

两种打开方式

然后在最后一行添加

huan ALL=(ALL)          NOPASSWD: ALL

huan是我的用户名

wq,现在就可以进行测试

ctrl+d退出root

[huan@192 ~]$ mkdir /huan
mkdir: 无法创建目录"/huan": 权限不够

如果不加sudo,还是回提示权限不够

[huan@192 ~]$ sudo mkdir /huan
[huan@192 ~]$ ls /
bin  boot  dev  etc  home  huan  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  test  tmp  usr  var

创建成功

用户、用户组管理

用户、用户组的概念

Linux系统中可以:

  • 配置多个用户
  • 配置多个用户组
  • 用户可以加入到多个用户组中

这个没有什么可解释的,多用户操作系统

但是用户一多,就采用组的方式管理比较舒服,一个团队有开发组、项目组、销售组等等,一个人也可以在多个组,可能是多劳多得。

Linux中关于权限的管控级别有2个级别,分别是:

  • 针对用户的权限控制
  • 针对用户组的权限控制

比如,针对某文件,可以控制用户的权限,也可以控制用户组的权限

所以,我们需要学习在Linux中进行用户、用户组管理的基础命令,为后面学习权限控制打下基础

用户是在组里面的,管理用户是管理一个人,对个人有用,为了方便,可以同时管理多个人,这是就需要多个组了,

权限,那就是你有没有这个权限去干这件事,打开文件、下载东西

这个我就想到了一个例子,比如发朋友圈,我可以想让谁看就让谁看,不让老师看见,那么因为我加了好几个老师的微信,所以送可以给是老师的好友加上标签,直接给这个标签设置一个权限,就可以了。

用户、用户组管理的命令

执行这些命令肯定需要root权限啦

用户组管

  • 创建用户组:groupadd 用户组名
  • 删除用户组:groupdel 用户组名
[root@192 ~]# groupadd testgr
[root@192 ~]# groupdel testgr

这是一个最基本的用户组添加与删除操作

[root@192 ~]# groupadd gop

为了学习,我创建一个用户组gop

用户管理

  • 创建用户:user [-g -d] 用户名

    • 选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
    • 选项:-d指定用户的HOME路径,不指定,HOME目录默认在:/home/用户名
    [root@192 ~]# useradd u2
    

    在没有指定任何选项的时候,一起默认创建。会先创建一个u2的用户组,然后他的工作目录是/home/u2

    [root@192 ~]# ll /home/
    总用量 4
    drwx------. 16 huan huan 4096 11月 16 13:21 huan
    drwx------.  3 u1   u1     78 11月  4 20:02 u1
    drwx------.  3 u2   u2     78 11月 16 14:14 u2
    

    我想起来了我之前创建过一个u1,所以现在home里有三个,当然肯定有我们刚刚创建的u2

    [root@192 ~]# useradd -g gop -d /home/uesr/ u3
    

    这样,我指定了参数,指定的的用户组是gop,就是刚刚创建的,目录是/home/uesr/ u3

    我们也可以看一下

    [root@192 ~]# su - u3
    [u3@192 ~]$ pwd
    /home/uesr/
    

    切换到u3这个用户,看看当前位置,如果不指定目录,应该是/home/u3。

    可以对比一下我的家目录

    [huan@192 ~]$ pwd
    /home/huan
    [u2@192 ~]$ pwd
    /home/u2
    

    可以看出来指定了用户的家目录就是不一样

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

    • 选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
    [root@192 ~]# userdel u3
    [root@192 ~]# ls /home/
    huan  u1  u2  uesr
    

    不指定-r,用户已经被删除了。但是u3的家目录user还没有被删除

    [root@192 ~]# userdel u3
    [root@192 ~]# ls /home/
    huan  u1  u2  uesr
    

    用户已经被删除了,那么他的家目录留着也没有用了,这时需要手动删除

    [root@192 ~]# userdel -r u2
    [root@192 ~]# ls /home/
    huan  u1
    

    带上-r,家目录连用户一起删除

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

    参数:用户名,被查看的用户,如果不提供查看自身

    [root@192 ~]# id
    uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
    

    不写任何参数,查看自己,uid应该是用户id,gid应该是组id

    [root@192 ~]# useradd u -g gop
    [root@192 ~]# su - u
    [u@192 ~]$ id
    uid=1003(u) gid=1002(gop) 组=1002(gop) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
    

    我又创建了一个用户u,指定了用户组为gop,会发现有明显的变化,用户id是1003,组id是1002,是gop组的

    [root@192 ~]# id u
    uid=1003(u) gid=1002(gop) 组=1002(gop)
    

    也可以在root下查看其他id

  • 修改用户所属组:usermod [-aG 用户组 用户名]

    将指定用户加入指定组

    `[root@192 ~]# useradd u4
    [root@192 ~]# id u4
    uid=1004(u4) gid=1004(u4) 组=1004(u4)
    [root@192 ~]# usermod -aG gop u4
    [root@192 ~]# id u4
    uid=1004(u4) gid=1004(u4) 组=1004(u4),1002(gop)
    

    创建一个用户u4,没有指定组,那么就会自动创建一个同名组,通过id也可以查到

    id是1004,组id是1004,在u4组

    然后我把u4添加到了gop组,

    用户id没有变,组id也没有没变化,唯独组里面是有两个组,一个用户可以在两个组

getent

使用getent命令,可以查看当前系统中有哪些用户

语法:getent passwd

[root@192 ~]# getent passwd

输入这个命令,会出来一大堆内容,这个就是系统中的所有用户。

我一开始打开会有一个疑问,为什么一下子这么多用户,我感觉加上root用户、我自己的用户,还有一些练习时创建的也就不超过10个呀。

这样是系统自己创建的

共有7份信息

用户名;密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)

我们随便摘出来一个,就以我的用户为例把

huan:x:1000:1000:huan:/home/huan:/bin/bash

可以看出来用户名是huan,密码是X,密码都是X,密码不可以明文显示等等

[root@192 ~]# getent group

查看系统中有哪些组

huan:x:1000:huan

包括2分信息,组名称:组认证(显示为X):组ID

查看权限控制

掌握查看Linux文件的权限管控信息

ls -l这个命令不陌生把,他是把文件的内容以一个列表展开,展示了详细信息。

image

这里展示了部分信息,

在前面我们用这个只是看了这个文件的小大,

接下来,我们要知道其余几个表达的什么含义

  • 序号1:文件、文件夹的权限控制信息
  • 序号2:文件、文件夹所属用户
  • 序号3:文件、文件夹的所属用户组

在这里要注意一个问题,有两个huan,但是他们表达的含义不一样,第一个代表所属用户,第二代表所属组。

至于为什么有两个huan,前面说到过,在创建用户指定组时,会自动创建一个同名组。正好huan这个 用户时系统创建的所以也就出来一个huan的用户组

接下来,我们分析一下这部分是什么drwxrwxr-x

权限细节总共分为10个槽位

举例:-drwxr-xr-x,表示

  • 这是一个文件夹,首字母d表示
  • 所属用户的权限是:有r有w有x,rwx
  • 所属用户组的权限是:有r无w有x,r-x(-表示无此权限)
  • 其他用户的权限是:有r无w有x,r-x

image

一共有10个槽位,我怎么看呢,

一个字母,有很多变化

  • -:表示文件
  • d:表示文件夹
  • -l:软连接
  • b:设备文件
  • c:字符设备文件
  • p:管道文件

这么多可能记不住,目前我们的重点应该放在文件与文件夹的区分上,文件(-);文件夹(d)

drwxrwxr-x. 4 huan huan  26 11月  9 15:00 test1

drwxrwxr中d开头,那么表示一个文件夹

-rw-rw-r--. 1 huan huan   0 11月 13 12:22 test.txt

-rw-rw-r--中-开头,那么是一个文件

一共是个槽位,第一个槽位已经知道了,还剩下9个,正好,他们3个一组。

image

三个一组,分别对应了不同的权限,用户、用户组,其他用户。

image

权限控制信息刚好与ls -l展开的信息有呼应。

所属用户权限对应序号2,所属用户组权限对应序号3

image

现在举个例子说明

drwxr-xr-x. 4 huan huan  94 11月 17 09:01 桌面

这是个目录,第一个huan表示用户,可以看出huan这个用户对这个目录有rwx权限,

第二个huan表示用户组,有r-x权限,

其他用户,那就是不在huan这个用户组里面的用户,只有r-x权限

dr-xr-x---.  16 root root 4096 11月 17 18:16 root

root用户有r-x权限,root组用户也是有r-x权限,其他用户没有权限

drwxr-xr-x. 2 u1 gop 6 11月 18 17:32 test

这个呢,用户名和用户组名不一样了。

u1是用户,对这个文件夹有rwx权限,用户组gop对这个文件有r-x权限,其他用户也只有r-x权限

在这里要说一下用户和用户组的关系,用户组包括这个用户,

那么就是u1所在的用户组就是rop

huan所在的用户组就是huan

掌握读、写、执行三种权限的含义

那么,rwx到底代表什么呢

  • r表示读权限
  • w表示写权限
  • x表示执行权限

针对文件、我文件夹的不同,rwx的含义有细微差别

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

Linux说起来很难,其实就这个一个权限,就只有三种,可读、可写、可执行。

drwxr-xr-x. 4 huan huan  94 11月 17 09:01 桌面

huan这个用户对文件夹可读可写可执行,而huan用户所在的用户组huan对这个文件是可读可执行不可写;其他用户也是,可读可执行不可写。

dr-xr-x---.  16 root root 4096 11月 17 18:16 root

这个呢,root用户和root用所在的组可以对文件夹进行可读可执行,但是不可以写,其他用户没有权限

drwxr-xr-x. 2 u1 gop 6 11月 18 17:32 test

u1用户可以对这个文件夹可读可写可执行,而u1所在的gop用户组里的成员和其他用户可以对这个文件夹可读可执行,不可写

root这个文件夹是root用户家目录的文件夹,其他用户没有任何权限,那么我现在用我的用户huan进入这个文件夹,看看会怎么样

[huan@192 /]$ cd root
-bash: cd: root: 权限不够

权限不够

修改权限控制 - chmod

使用chmod修改权限信息

我们可以使用chmod命令,修改文件、文件夹的权限信息。

注意,只有文件、文件夹的所属用户或root用户可以修改。

语法:chmod [-R] 权限 文件或文件夹

  • 选项:-R,对文件夹内部的全部内容应用同样的操作。

权限不是一成不变的。可以修改,可以让别人对这个文件有可读可写可执行的权限。

但是修改的时候,必须是文件、文件夹的所属用户和root用户可以修改。

[huan@192 桌面]$ ll
总用量 0
drwxrwxr-x. 2 huan huan 6 11月 19 10:17 test
-rw-rw-r--. 1 huan huan 0 11月 19 10:17 test.txt

为了方便学习,我在桌面创建了一个文件夹test和一个文件test.txt,

先分析一下他们现在的权限

  • test文件夹,用户huan和huan所在的用户组都是可读可写可执行,其他用户可读可执行不可以写
  • test.txt文件,用户huan和huan所在的用户组都是可读可写不可执行,其他用户可读不可写不可执行

现在,改变他们的权限。

[huan@192 桌面]$ chmod u=rwx,g=r,o=r test.txt

chmod命令,可以修改权限,根据语法,我们可以看到要修改成的权限是u=rwx,g=r,o=r 要进行权限修改的文件是test.txt

现在我们分析一下u=rwx,g=r,o=r是什么意思, rwx不必多说,对应读、写、执行。那么u、g、o呢

  • u:user,表示用户,所属用户权限
  • g:group,表示组,是所属用户组权限
  • o:other,表示其他。其他用户权限

那么对应这条命令就是

我要修改这个test.txt文件,让这个文件的所属用户有可读可写可执行的权限,让用户组和其他用户,只有可读权限

-rwxr--r--. 1 huan huan 0 11月 19 10:17 test.txt

也可以查看一下,刚好对应

修改文件夹权限。

在修改文件夹权限之前,我在文件夹里面有创建了一个文件和一个文件夹

[huan@192 桌面]$ ll test
总用量 0
drwxrwxr-x. 2 huan huan 6 11月 19 10:35 test1
-rw-rw-r--. 1 huan huan 0 11月 19 10:35 test1.txt

重点放在权限上。

然后修改test文件夹权限

[huan@192 桌面]$ chmod u=rwx,g=rwx,o=rwx test

这条命令,对所属用户、所属用户组和其他用户都有可读可写可执行。

drwxrwxrwx. 3 huan huan 36 11月 19 10:35 test

改过来了,然后我们再查看一下文件夹里面的内容,权限有没有改变

[huan@192 桌面]$ ll test
总用量 0
drwxrwxr-x. 2 huan huan 6 11月 19 10:35 test1
-rw-rw-r--. 1 huan huan 0 11月 19 10:35 test1.txt

文件夹里面的文件和文件夹的权限是没有有=改变的

这是因为我们没有加上-R选项

-R选项就是对这个文件夹内部的文件都赋予同一个权限

[huan@192 桌面]$ chmod -R u=rwx,g=rwx,o=rwx test
[huan@192 桌面]$ ll test
总用量 0
drwxrwxrwx. 2 huan huan 6 11月 19 10:35 test1
-rwxrwxrwx. 1 huan huan 0 11月 19 10:35 test1.txt

文件夹里面的内容和文件夹都是一个权限了。

总结

  • chomd命令就是起到了一个修改权限的目的,但是在修改权限之前要明白只有文件的所属用户或者管理员可以修改,其他用户和用户组里的成员不可以修改,要是可以修改,那岂不是乱了套,你的钱我可以花?
  • 在修改权限的时候,u(user 用户)、r(group 组)、o(other 其他)需要更改谁的控制权限,就直接在=后面加上对应得rex权限,没有权限可以不写
  • 如果是文件夹,那么就要考虑带不带-R,是否要让里面的内容都用同一个权限。

使用数字序号标记权限

权限可以用3未数字来表示,第一位数字表示用户权限,第二位数字表示用户组权限,第三位数字表示其他用户权限。

数字的细节如下:r记为4,w记为2,x记为1,可以有:

  • 0:无任何权限,即—
  • 1,仅有x权限,即–x
  • 2,仅有w权限,即-w-
  • 3,有w和x权限,即-wx
  • 4,仅有r权限,即r–
  • 5,有r和x权限,即r-x
  • 6,有r和w权限,即rw-
  • 7,有全部权限,即rwx

这个的出现就是为了方便我们偷懒,

[huan@192 桌面]$ chmod u=rwx,g=r,o=r test.txt

这是我们在刚才修改权限用的方法,一大长串。那么有没有更方便的,那就是数字序号

如果把上面的这段代码改成数字序号,那就是

[huan@192 桌面]$ chmod 744 test.txt

744,那就是rwx(7) r–(4) r–(4)

这么一看,代码量一下子少了

现在我创建一个1.txt文件,

-rw-rw-r--. 1 huan huan  0 11月 19 11:13 1.txt

采用数字的方法修改权限

[huan@192 桌面]$ chmod 744 1.txt

我们看一下修改后的权限

-rwxr--r--. 1 huan huan  0 11月 19 11:13 1.txt

rwx(7) r–(4) r–(4)一一对应

案例

将hello.txt的权限修改为:r-x–xr-x,数字序号为:

chmod 515 hello.txt

将hello.txt的权限修改为:-wx-w-rw-,数字序号为:

chmod 326 hello.txt

序号123代表的权限是:

--x-w--wx

总结

  • 数字权限就是为了偷懒,三位数字对应的三种用户的权限控制。
  • r记为4,w记为2,x记为1,会有8中变化。

修改权限控制命令 - chown

使用chown命令,可以修改文件、文件夹的所属用户和用户组

普通用户无法修改所属为其他用户或组,所以此命令只适用于root用户执行

语法:chown [-R] [用户] [:] [用户组] 文件或文件夹

  • 选项,-R,同chmod,对文件夹内部全部内容对用相同规则
  • 选项,用户,修改所属用户
  • 选项,用户组,修改所属用户组
  • :用于分隔用户和用户组

chmod命令可以修改文件的权限信息,谁可以访问,谁不可以访问,

那么chown命令可以修改文件的所属信息,这个文件改成你的,或者改成他的。

这项操作只能说只有root用户可以操作

  • 仅修改所属用户

    [root@192 桌面]# chown root 1.txt
    

    修改1.txt文件的所属用户为root。

    -rwxr--r--. 1 root huan  0 11月 19 11:13 1.txt
    
  • 仅修改用户组

    [root@192 桌面]# chown :root 1.txt
    

    单独修改文件的所属用户组。修改为root

    注意:要加上,作为用户和用户组的区分

  • 修改所属用户和用户组

    [root@192 桌面]# chown u1:gop 1.txt
    

    所属用户和用户组都修改

    -rwxr--r--. 1 u1   gop   0 11月 19 11:13 1.txt
    
  • -R选项

    [root@192 桌面]# chown -R u1:gop test
    

    那就是文件夹连同文件夹里面的内容都被修改

    [root@192 桌面]# ll test
    总用量 0
    drwxrwxrwx. 2 u1 gop 6 11月 19 10:35 test1
    -rwxrwxrwx. 1 u1 gop 0 11月 19 10:35 test1.txt
    

总结

  • 这条命令起到了什么作用,就是这个文件本来是我的,现在,我通过命令可以把这个文件夹改成是你的,提前说我必须是管理员
  • 注意:,如果要写改组,那么必须要加上:,作为用户个组的分隔。

总结

以上就是全部内容,这部分主要在说Linux多用户是如何使用的

用户的创建、删除等操作,组的操作

权限的修改。

但是这篇笔记都在演示记录,并没有具体的是如何操作他们。我想试着把课上老师给我们演示的方法我复现一遍。具体看看权限改了,这个用户是不是访问不了了。

我先把我系统中创建的用户和组全部删除了。

getent passwd命令可以查看当前系统中有哪些用户

...
huan:x:1000:1000:huan:/home/huan:/bin/bash
u1:x:1001:1002::/home/u1:/bin/bash

huan是系统中第一个普通用户,那么,huan下面的用户应该都是我创建的用户。

userdel删除

getent group查看有哪些组,

...
huan:x:1000:huan
gop:x:1002:

同样我把huan以下的全部删除

然后我重新创建一个组group1和用户user1,然后user1应该在group1组里面。

创建用户useradd、创建组groupadd,为了方便,先创建组,然后用useradd的-g选项直接把用户创建进去

在这里,我在用默认参数创建一个用户uesr2,然后用usermod添加到group1里面把。我也想看看所属用户组真的有这些权限?

[root@192 桌面]# id
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

[root@192 桌面]# id huan
uid=1000(huan) gid=1000(huan) 组=1000(huan)

[root@192 桌面]# id user1
uid=1001(user1) gid=1001(group1) 组=1001(group1)

[root@192 桌面]# id user2
uid=1002(user2) gid=1002(user2) 组=1002(user2),1001(group1)

现在是4个用户,三个组。

[root@192 /]# mkdir test

我现在是root用户,我在根目录创建了一个test文件夹

drwxr-xr-x.   2 root root    6 11月 19 14:19 test

他的权限是root用户可读可写可执行,root组用户和其他用户只能读和执行,那就是不能写,除了root用户,所有人都不可以在这个文件夹里面创建、删除、改名等操作,可以读,那就是可以ls,那我在往里面创建几个文件

可以执行,那就是可以cd到里面,

[root@192 test]# ll
总用量 0
drwxr-xr-x. 2 root root 6 11月 19 14:25 a
drwxr-xr-x. 2 root root 6 11月 19 14:25 b
drwxr-xr-x. 2 root root 6 11月 19 14:25 c

我又在test里面创建了三个文件夹,都是root。现在我们开始实验

[huan@192 /]$ ll test/
总用量 0
drwxr-xr-x. 2 root root 6 11月 19 14:25 a
drwxr-xr-x. 2 root root 6 11月 19 14:25 b
drwxr-xr-x. 2 root root 6 11月 19 14:25 c

现在我用的是huan这个用户,我可以ll查看文件夹里面的内容,这也就是读。

[huan@192 /]$ cd test/
[huan@192 test]$ pwd
/test

cd可以进入到这个文件夹,

[huan@192 test]$ mkdir d
mkdir: 无法创建目录"d": 权限不够

我想创建一个d文件夹,提示我权限不够,

那我现在修改这个文件的放权限,让其他用户可以对这个文件进行可读可写可执行,现在可以可读可写了,

[root@192 /]# chmod 757 test/

这里我用的是权限数字,757对应的7(rwx) 5(r-x) 7(rwx),让其他的用户有读写执行的能力

drwxr-xrwx.   5 root root   33 11月 19 14:25 test

现在的权限。

[huan@192 test]$ mkdir d
[huan@192 test]$ ls
a  b  c  d

huan这个用户一开始是不能在test文件夹里面创建文件,现在有权限了,

证明,权限生效了。

drwxrwxr-x. 2 huan huan 6 11月 20 09:40 d

这是我创建的文件夹,他的权限是我自己和我的组成员都可以可读可写可执行,其他用户不能写。

[user1@192 d]$ mkdir e
mkdir: 无法创建目录"e": 权限不够

这个是情理之中。

那如果我把这个文件的所属组改成group1,那是不是user1和user2进行可读可写可执行了。试试

chown命令,修改文件所属信息,如果修改组,要有:,

[root@192 test]# chown :group1 d

对应这条命令,

drwxrwxr-x. 2 huan group1 6 11月 20 09:40 d

这是我们想要的结果,现在文件夹d的属于group1组,group1组对文件夹有可读可写可执行的权限。

[user1@192 d]$ mkdir 1
[user1@192 d]$ ll
总用量 0
drwxr-xr-x. 2 user1 group1 6 11月 20 10:06 1

果不其然,修改了所属组,现在这个组里的成员都可以对这个文件夹访问了。

但是这个文件夹其他用户没有写的权限,同组用户也没有写的权限

[huan@192 1]$ mkdir 111
mkdir: 无法创建目录"111": 权限不够
[huan@192 1]$ [user1@192 d]$ mkdir 1

用户huan权限不够,

[user2@192 1]$ mkdir 2
mkdir: 无法创建目录"2": 权限不够

也是权限不够。

现在我们修改权限,

[user1@192 d]$ chmod o=rwx 1
[user1@192 d]$ ll
总用量 0
drwxr-xrwx. 2 user1 group1 6 11月 20 10:06 1

修改完,看权限

[huan@192 1]$ mkdir 111
[huan@192 1]$ ll
总用量 0
drwxrwxr-x. 2 huan huan 6 11月 20 10:16 111
[huan@192 1]$ pwd
/test/d/1

huan用户可以创建文件了。

[user2@192 1]$ mkdir 2
mkdir: 无法创建目录"2": 权限不够

user2还是没有权限,我们看一下现在1文件夹的权限

drwxr-xrwx. 3 user1 group1 17 11月 20 10:16 1

虽然其他用户的权限是rwx,但是可以看成user2算作用户组的权限,不能写,现在我把文件夹的所属用户改成user2,那就可以了

[root@192 d]# chown user2 1
[root@192 d]# ll
总用量 0
drwxr-xrwx. 3 user2 group1 17 11月 20 10:16 1

修改后,现在,文件夹属于user2,user2可以进行rwx,但是user1安照group1对待,r-x

[user2@192 1]$ mkdir 222
[user2@192 1]$ ll
总用量 0
drwxrwxr-x. 2 huan  huan  6 11月 20 10:16 111
drwxrwxr-x. 2 user2 user2 6 11月 20 10:23 222
[user1@192 1]$ mkdir 333
mkdir: 无法创建目录"333": 权限不够
[user1@192 1]$

end

这篇的学习总结有点多。

权限还是有些难度的。因为目前处于学习阶段,这个Linux就只是我一个人用的。如果在工作,那是不是就是管理

主要还是要理清楚,我在实验的时候也是翻前面的笔记,然后做的。

好了,我的笔记到此结束。

里面肯定有许许多多的bug,欢迎大家指出!毕竟这样成长更快。

也感谢大家可以看到这样,如果帮到了你,是我的荣幸。

谢谢大家!
er1@192 d]$ ll
总用量 0
drwxr-xrwx. 2 user1 group1 6 11月 20 10:06 1


修改完,看权限

[huan@192 1]$ mkdir 111
[huan@192 1]$ ll
总用量 0
drwxrwxr-x. 2 huan huan 6 11月 20 10:16 111
[huan@192 1]$ pwd
/test/d/1


huan用户可以创建文件了。

[user2@192 1]$ mkdir 2
mkdir: 无法创建目录"2": 权限不够


user2还是没有权限,我们看一下现在1文件夹的权限

drwxr-xrwx. 3 user1 group1 17 11月 20 10:16 1


虽然其他用户的权限是rwx,但是可以看成user2算作用户组的权限,不能写,现在我把文件夹的所属用户改成user2,那就可以了

[root@192 d]# chown user2 1
[root@192 d]# ll
总用量 0
drwxr-xrwx. 3 user2 group1 17 11月 20 10:16 1


修改后,现在,文件夹属于user2,user2可以进行rwx,但是user1安照group1对待,r-x

[user2@192 1]$ mkdir 222
[user2@192 1]$ ll
总用量 0
drwxrwxr-x. 2 huan huan 6 11月 20 10:16 111
drwxrwxr-x. 2 user2 user2 6 11月 20 10:23 222


[user1@192 1]$ mkdir 333
mkdir: 无法创建目录"333": 权限不够
[user1@192 1]$


end

这篇的学习总结有点多。

权限还是有些难度的。因为目前处于学习阶段,这个Linux就只是我一个人用的。如果在工作,那是不是就是管理

主要还是要理清楚,我在实验的时候也是翻前面的笔记,然后做的。

> 好了,我的笔记到此结束。 
>
> 里面肯定有许许多多的bug,欢迎大家指出!毕竟这样成长更快。
>
> 也感谢大家可以看到这样,如果帮到了你,是我的荣幸。
>
> 谢谢大家!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/20456.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《Android Studio开发实战 从零基础到App上线(第3版)》出版后记

2018年11月,经过熬夜写作的《Android Studio开发实战 从零基础到App上线(第2版)》正式出版面世。承蒙众多读者的厚爱,第2版的图书在此后的三年多时间,一直保持在移动开发图书的销量排行榜前列,迄今为止京东对该书的评价已达8000多…

设计模式基础-概括

目录 一、设计原则 二、设计模式分类 1、创建型模式:创建对象 2、结构型模式:更大的结构 3、行为型模式:交互以及职责分配 4、对象模式与类模式区别 三、各类型模式简介 1、创建型模式 2、结构型模式 3、行为型模式 一、设计原则 …

JAVA中Function的使用

JAVA中Function的使用一、方法介绍参数类型方法介绍源码二、demo参考: https://blog.csdn.net/boyan_HFUT/article/details/99618833 一、方法介绍 表示接受一个参数并产生结果的函数。 参数类型 T - 函数输入的类型R - 函数的结果类型 方法介绍 R apply(T t) …

【毕业设计】45-基于单片机的智能温度/超温报警计的系统设计(原理图工程+仿真工程+源代码+答辩论文+答辩PPT)

【毕业设计】45-基于单片机的智能温度/超温报警计的系统设计(原理图工程仿真工程源代码答辩论文答辩PPT) 文章目录【毕业设计】45-基于单片机的智能温度/超温报警计的系统设计(原理图工程仿真工程源代码答辩论文答辩PPT)资料下载链…

Vue 路由

参考文献:Vue中的路由 目录:一、路由理解:二、路由管理器理解:三、路由的使用:四、嵌套路由:五、路由传参:1.query传参:2. params传参:六、编程式路由导航:七、响应路由参…

数字孪生技术有没有真正的实用价值?

作为一个数字孪生领域的技术公司负责人,我尽可能用比较直白的话来描述一下我对数字孪生行业以及数字孪生价值的理解。 纵观数字孪生相关的公司,主要有两个流派,一派是具有互联网基因的数字孪生创业公司,一派是在工业软件领域实力…

ConfigurableListableBeanFactory和BeanDefinitionRegistry关系

前言 :在查看springBoot源码的过程中,遇到了这个问题,上网查了一些资料,理解了一些,这里顺便把这个问题给记录一下。 在springBoot调用Refresh方法里面 ,有一个叫invokeBeanFactoryPostProcessors的方法【…

HIve数仓新零售项目ODS层的构建

HIve数仓新零售项目 注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等,Spark Flink Kaf…

WindowsPE(二)空白区添加代码新增,扩大,合并节

空白区添加代码 在 PE 中插入一段调用 MessageBox 的代码。 获取MessageBox地址,构造ShellCode代码 利 OD 定位出 MessageBoxA 函数的地址为 0x77D507EA 。 构造 shellcode : unsigned char shellcode[] {0x6A, 0x00, // pus…

ORB-SLAM2 ---- Initializer::ReconstructF函数

目录 1.函数作用 2.函数解析 2.1 调用函数解析 2.2 Initializer::ReconstructF函数总体思路 2.2.1 代码 2.2.2 总体思路解析 2.2.3 根据基础矩阵和相机的内参数矩阵计算本质矩阵 2.2.4 从本质矩阵求解两个R解和两个t解,共四组解 2.2.5 分别验证求解的4种…

准备面试题【面试】

前言 写作于 2022-11-13 19:27:08 发布于 2022-11-20 16:34:44 准备 程序员囧辉 我要进大厂 面试阿里,HashMap 这一篇就够了 Java 基础高频面试题(2022年最新版) 问遍了身边的面试官朋友,我整理出这份 Java 集合高频面试题…

【mysql】mysql 数据备份与恢复使用详解

一、前言 对一个运行中的线上系统来说,定期对数据库进行备份是非常重要的,备份不仅可以确保数据的局部完整性,一定程度上也为数据安全性提供了保障,设想如果某种极端的场景下,比如磁盘损坏导致某个时间段数据丢失&…

什么是Spring,Spring的核心和设计思想你了解吗?

目录 1.初识Spring 1.1 什么是容器 1.2 什么是IoC 2.什么是IoC容器. 2.1 什么是DI 哈喽呀,你好呀,欢迎呀,快来看一下这篇宝藏博客吧~~~ 1.初识Spring Srping指的是Spring Framework(Spring 框架).我们经常会听见框架二字,其中java中最最主流的框架当属Spring.Spring是一…

SAP S4 FI后台详细配置教程- PART4 (科目及税费相关配置篇)

目录 1、总帐科目 1.1编辑科目表清单 1.2 科目表分配给公司代码 1.3 定义科目组 1.4 定义留存收益科目 2、销售/购置税 2.1 维护销售/购置税务代码税率 2.2 配置销项/销项税会计科目 大家好本篇是:SAP S4 FI后台详细配置教程- PART4 (科目及税…

Fiddler的安装和使用

文章目录1、Fiddler的安装2、Fiddler的使用3、抓包工具的原理1、Fiddler的安装 官网链接:https://www.telerik.com/fiddler 进入官网首页 页面跳转后 2、Fiddler的使用 下载好后直接安装,安装后打开,它就会自动抓取HTTP包,在左…

[附源码]SSM计算机毕业设计-东湖社区志愿者管理平台JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

力扣113题引发的关于DFS和回溯的一点思考

最近刚学回溯和DFS&#xff0c;刷力扣遇到一道题&#xff08;113题&#xff09;&#xff0c;如下&#xff1a; 我们不细究回溯和DFS的区别联系。关于这道题的2种写法&#xff0c;我把第一种称为回溯。 class Solution {List<List<Integer>> res new LinkedList&l…

29.Nacos的简介与安装(springcloud)

1.Nacos 简介官网&#xff1a; https://nacos.io/zh-cn/Nacos 致力于发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集&#xff0c;帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是…

【Android Studio Gradle】发布aar到私有Artifactory仓库

1. 前言 在【Android Studio Gradle】使用Artifactory构建本地仓库中介绍了如何利用工具配置一个maven私有库&#xff0c;那么在开发library的时候为了方便难免会用到需要将该库发布到这个仓库的功能。经过测试和配置&#xff0c;确实在Artifactory仓库中也可以通过gradlew命令…

【MySQL基础】为什么大部分人选择使用MySQL数据库?

目录 一、为什么大部分人选择使用MySQL数据库&#xff1f; 二、MySQL简介 1.MySQL介绍 2.MySQL的特点 3. MySQL的版本 从用户的角度&#xff0c;针对不同的用户 从单纯的版本数字区分 &#x1f49f; 创作不易&#xff0c;不妨点赞&#x1f49a;评论❤️收藏&#x1f49…