Linux权限不理解?看完这篇就够用了
- Linux关于用户
- Linux的用户分类
- Linux用户的切换
- su的使用
- 扩展
- sudo的使用
- Linux权限的概念
- 文件的的权限
- 文件的后缀名
- 文件权限
- 更改文件权限
- chmod
- chown
- chgrp
- 创建文件的默认权限
- 目录文件读写执行权限的解释
- 粘滞位
- 文件的的权限
Linux关于用户
Linux的用户分类
用户的分类可分为两种:
1.超级用户:root基本不受权限的限制
2.普通用户:我们在home下新建的用户
这两种用户如何切换呢?
Linux用户的切换
su的使用:
su [用户名]:1.实现普通用户和普通用户之间的切换 2.实现普通用户和root用户之间的切换
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
如下操作:[wufan@wf bit_wf]$ su bit_wf
密码:
[bit_wf@wf ~]$
[bit_wf@wf ~]$ su root
密码:
[root@wf bit_wf]#
如何退出root用户呢?
输入exit 或者 ctrl + D
如下操作:[root@wf bit_wf]# exit
>[bit_wf@wf ~]$
扩展:
当只输入su时,会默认进入root用户
如下操作:[bit_wf@wf ~]$ su
密码:
[root@wf bit_wf]#
当输入su -时,也会进入root用户,那么指令su -和su的区别是什么呢?
操作如下:
[bit_wf@wf ~]$ su -
密码:
上一次登录:六 5月 27 22:21:02 CST 2023pts/1 上
[root@wf ~]# pwd
/root操作如下:
[bit_wf@wf ~]$ su
密码:
[root@wf bit_wf]# pwd
/home/bit_wf
su指令只是将身份进行变化,而su -指令是以root的身份重新登陆
我们也可以看到su -后,我们跳转到了root目录下;而su后任然在当前目录下
sudo的使用
sudo [command]:以root身份去执行指令
操作如下:
[bit_wf@wf ~]$ sudo ls
[sudo] bit_wf 的密码:
bit_wf 不在 sudoers 文件中。此事将被报告。
问:为什么是输入bit_wf(也就是普通用户)的密码,而不是输入root的密码,那这样岂不是任何一个普通用户在没有root密码的情况下进行root的操作了?
如果我们的普通用户没有添加到系统的信任白名单里,我们是没办法进行sudo的操作的;而进入系统白名单是需要root密码的。
Linux权限的概念
什么叫做权限?
通俗点讲 就是一件事情是否允许被你做。
那么权限和什么有关呢?
1.权限与“角色”和“身份”有关。–角色和身份是什么?后面会解释
2.权限也和事物的“属性”有关。如一个文件test.c 它不具有可执行的功能,它只有通过编译器编译后成为test.exe可执行文件才可以执行,所以这种文件天生就不具备可执行的权限(尽管我们强加给他可执行权限也无法执行)
Linux文件的权限
文件的后缀名
在Linux中系统中的文件后缀没有直接意义
Linux中只将文件分为普通文件,目录文件,块设备文件,字符设备文件,管道文件等
windows中却有MP3文件MP4文件,jpg文件,png文件,docx文件等等繁多的文件类型
如下操作:
[bit_wf@wf ~]$ vim test.c
[bit_wf@wf ~]$ ls
test.c
[bit_wf@wf ~]$ gcc test.c
[bit_wf@wf ~]$ ls
a.out test.c
如下操作:
[bit_wf@wf ~]$ vim test.txt
[bit_wf@wf ~]$ ls
a.out test.c test.txt
[bit_wf@wf ~]$ gcc test.txt
test.txt: 文件无法辨识: 文件被截断
collect2: 错误:ld 返回 1
为什么gcc能编译test.c而不能编译test.txt文件?不是说在Linux中系统中的文件后缀没有直接意义吗?
是在Linux系统中确实没有意义,但gcc是一款编译器,软件,不代表其它软件不需要后缀
文件权限
drwxrwxr-x. 2 bit_wf bit_wf 6 5月 27 23:11 dir1
drwxrwxr-x. 2 bit_wf bit_wf 6 5月 27 23:11 dir2
-rw-rw-r--. 1 bit_wf bit_wf 90 5月 27 23:05 test.c
-rw-rw-r--. 1 bit_wf bit_wf 0 5月 27 23:06 test.txt
r/-(read):是否为读权限
w/-(write):是否为写权限
x/-(execute):是否为执行权限
拥有者:这个文件是谁的
所属组:假设张三(资源创始人)想和李四,王五,三人想共享资源,可以将他们三个用户设置为一组,所属组权限
其他人:既不是拥有者也不是所属组
可以将这三个分类看为角色,而root和普通用户可以看为具体的人
具体的人和角色两者毫无关系(张三可以当警察,护士,老师)
操作如下:
-rw-rw-r--. 1 bit_wf bit_wf 90 5月 27 23:05 test.c
当root来访时,既不是bit_wf 也不属于bit_wf,则root归为other类
当用户来访问文件时,用户先看自己是不是拥有者,再看自己是不是所属组,若都不是自己就是其他人(先后顺序很重要)
这个访问过程类似于
if(用户 == 拥有者)
{}
else if(用户 == 所属组)
{}
else
{}
更改文件权限
更改权限的人只有两种人:拥有者和root
chmod:
chmod语法一:
chmod u+rwx,g+rwx,o+rwx [文件名]
chmod u-rwx,g-twx,o-rwx[文件名]
操作如下:-rw-rw-r--. 1 bit_wf bit_wf 0 5月 27 23:06 test.txt
[bit_wf@wf ~]$ chmod u+x,g+x,o+wx test.txt
[bit_wf@wf ~]$ ls -l test.txt
-rwxrwxrwx. 1 bit_wf bit_wf 0 5月 27 23:06 test.txt
操作如下:[bit_wf@wf ~]$ chmod u-x,g-x,o-wx test.txt
[bit_wf@wf ~]$ ls -l test.txt
-rw-rw-r--. 1 bit_wf bit_wf 0 5月 27 23:06 test.txt
chmod语法二:chmod 777 [文件名]
该数字是八进制的数字rwx rwx rwx分别可以对应七个二进制位
有则为1 无则为0
这里的权限为664
chown
chown [用户名] [文件名]:更改文件的拥有者
当更改拥有者的时候,如果是普通用户需要征求更改者用户的同意
操作如下:-rw-rw-r--. 1 bit_wf bit_wf 0 5月 28 09:44 test.txt
[bit_wf@wf shared]$ chown wufan test.txt
chown: 正在更改"test.txt" 的所有者: 不允许的操作
如果是管理员改文件拥有者就不需要征求别人同意
操作如下:-rw-rw-r--. 1 bit_wf bit_wf 0 5月 28 09:44 test.txt
[root@wf shared]# chown wufan test.txt
[root@wf shared]# ll
总用量 0
-rw-rw-r--. 1 wufan bit_wf 0 5月 28 09:44 test.txt
chgrp
chgrp [所属组] [文件名]:更改文件所属组
操作如下:
-rw-rw-r--. 1 wufan bit_wf 0 5月 28 09:44 test.txt
[wufan@wf shared]$ chgrp wufan test.txt
[wufan@wf shared]$ ll
总用量 0
-rw-rw-r--. 1 wufan wufan 0 5月 28 09:44 test.txt
创建文件的默认权限
为什么我们创建文件的默认权限是我们所看到的样子?
为什么普通文件的权限是:664
为什么目录文件的权限是:775
Linux系统默认
给普通文件的起始权限其实是666
给目录文件的起始权限其实是777
但是有umask(权限掩码)的存在,使他们的权限发生了变化
操作如下:[wufan@wf shared]$ umask
0002
权限掩码:凡是在umask中出现的权限,不会最终的文件权限中出现
我们可以看到
普通文件的权限为110 110 100
目录文件的权限为111 111 101
操作如下:
drwxrwxr-x. 2 bit_wf bit_wf 6 5月 27 23:11 dir1
drwxrwxr-x. 2 bit_wf bit_wf 6 5月 27 23:11 dir2
-rw-rw-r--. 1 bit_wf bit_wf 90 5月 27 23:05 test.c
-rw-rw-r--. 1 bit_wf bit_wf 0 5月 27 23:06 test.txt
最终权限 = 起始权限 & (~umask)
目录文件读写执行权限的解释
读权限:查看改目录下文件列表
写权限:在当前目录下进行创建,更改,删除
执行:进入目录
读操作
操作如下:d------r--. 2 root root 22 5月 28 10:17 dir
[wufan@wf shared]$ ls -l dir/
ls: 无法访问dir/test.txt: 权限不够
总用量 0
-????????? ? ? ? ? ? test.txt虽然有显示权限不够但还是能看到dir里面有test.txt
执行操作
操作如下d------r-x. 2 root root 22 5月 28 10:24 dir
[wufan@wf shared]$ cd dir
[wufan@wf dir]$ d------r--. 2 root root 22 5月 28 10:24 dir
[wufan@wf shared]$ cd dir
-bash: cd: dir: 权限不够
写操作
操作如下:
d------rwx. 2 root root 22 5月 28 10:17 dir
[wufan@wf shared]$ cd dir
[wufan@wf dir]$ ls
test.txt
[wufan@wf dir]$ touch test2.txt 创建
[wufan@wf dir]$ mv test2.txt test3.txt 修改
[wufan@wf dir]$ ll
总用量 0
-rw-rw-r--. 1 wufan wufan 0 5月 28 10:24 test3.txt
-rw-rw-r--. 1 wufan wufan 0 5月 28 10:17 test.txt
[wufan@wf dir]$ rm test3.txt 删除
[wufan@wf dir]$ ll
总用量 0
-rw-rw-r--. 1 wufan wufan 0 5月 28 10:17 test.txt
一个文件是否能被删除,并不是由文件本身决定,而是由这个文件所处的目录决定
粘滞位
普通用户自己的家目录权限是700,别人对我们家目录是什么都干不了
有时候,我们想多个用户进行文件数据共享
方法:root建立一个共享目录,使普通用户都为other组,再设置other权限为rwx
使每人都能再共享目录里增删查改,但产生一个问题:你可以删除我的文件
则产生了粘滞位:也是可执行权限的一种,chmod o+t [目标文件]
粘滞位:给目录设置,一般是共享目录,大家可以再目录下进行各自文件的增删查改,
只允许文件拥有者或者root能删除这个文件,其他人一概不允许,t是一种特殊的x权限
Linux权限不理解?看完这篇就够用了相关推荐
- 看完这篇 Linux 权限后,通透了
我们在使用 Linux 的过程中,或多或少都会遇到一些关于使用者和群组的问题,比如最常见的你想要在某个路径下执行某个指令,会经常出现这个错误提示 . permission denied 反正我大概率见 ...
- linux shell find depth,搞定 Linux Shell 文本处理工具,看完这篇集锦就够了
原标题:搞定 Linux Shell 文本处理工具,看完这篇集锦就够了 Linux Shell是一种基本功,由于怪异的语法加之较差的可读性,通常被Python等脚本代替.既然是基本功,那就需要掌握,毕 ...
- Linux 基本操作 看完这篇Linux基本的操作就会了
看完这篇Linux基本的操作就会了 前言 只有光头才能变强 本文章主要是总结Linux的基础操作以及一些简单的概念~如果不熟悉的同学可下个Linux来玩玩(或者去买一个服务器玩玩[学生版的不是很贵]) ...
- 学习Nginx,看完这篇超详细的文章就够了
目录 本文简介 一.Nginx的基本概念 1.1.Nginx是什么? 1.2.Nginx能帮助我们做些什么? 1.3.Nginx的特性 二.Nginx的安装 2.1.环境介绍 2.2.安装Nginx ...
- 收藏!最详细的Python全栈开发指南 看完这篇你还不会Python全栈开发 你来打我!!!
Python Web全栈开发入门实战教程教程 大家好,我叫亓官劼(qí guān jié ),这个<Python Web全栈开发入门实战教程教程>是一个零基础的实战教程,手把手带你开 ...
- 看完这篇文章之后,终于明白了编译到底怎么回事。
看完这篇文章之后,终于明白了编译到底怎么回事. 1 对于同一个语句,有如下三种:高级语言.低级语言.机器语言的表示 C语言 a=b+1; 汇编语言 mov -0xc(%ebp),%eax add ...
- 看完这篇文章之后,终于明白了编译到底怎么回事
看完这篇文章之后,终于明白了编译到底怎么回事. 1 对于同一个语句,有如下三种:高级语言.低级语言.机器语言的表示 C语言 a=b+1; 汇编语言 mov -0xc(%ebp),%eax add ...
- [转帖]看完这篇文章你还敢说你懂JVM吗?
看完这篇文章你还敢说你懂JVM吗? 在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约 600m,Linux自身使用 ...
- 运维学python用不上_作为运维你还在想要不要学Python,看完这篇文章再说!
原标题:作为运维你还在想要不要学Python,看完这篇文章再说! 本文由马哥教育Python自动化实战班5期学员推荐,转载自简书,作者为Li.Yingjie,内容略经小编改编和加工,观点跟作者无关,最 ...
最新文章
- mysql+keepalived搭建高可用环境
- linux -- chcp
- 分享一个免费短信猫OCX源码
- 数据库与数据库管理系统
- 什么时候学习编程都不晚
- 先进pid控制matlab仿真_PID控制原理 三 (控制系统硬件选择与仿真)
- 《Python编程快速上手——让繁琐工作自动化》——2.8 导入模块
- 10种优化Mac以获得最佳性能的简便方法
- module ‘win32com.gen_py.00020813-0000-0000-C000-000000000046x0x1x9‘ has no attribute ‘CLSIDToClassM
- 打开财务账期和物料账期code
- trickle_ice 原理
- 标准C库函数之perror()、strerror(),以及他们之间各种的优缺点(打印错误信息)
- JavaScript 当前时间显示(js)
- DataBinding的大用
- 论《北京爱情故事》中石小猛的爱情
- 推荐一个无版权图片网站
- 汽车行业OTD业务模式入门学习
- (NO.00005)iOS实现炸弹人游戏(十):游戏主角(三)
- 10款最好的Photoshop替代软件
- 阿里云服务器漏洞修复(一)