如何知道你有什么权限

我能干什么?这是我最关心的问题!

切换到普通用户

[root@luffy-01 ~]# su - pizza
[pizza@luffy-01 ~]$ ls /root
ls: cannot open directory /root: Permission denied
[pizza@luffy-01 ~]$ rm -f /etc/passwd
rm: cannot remove `/etc/passwd': Permission denied 无权限,无法操作

1、看看你是谁

whoami

[pizza@luffy-01 ~]$ whoami
pizza

2、你与至个文件有什么关系

是 主人,家人,还是陌生人

先查看文件

[pizza@luffy-01 ~]$ ls -l  /oldboy/alex.txt
-rw-r--r--. 2 root root 19 Jan 15 11:33 /oldboy/alex.txt

id  查看身份======>groups,查看是不是和文件的主人是一家子

[pizza@luffy-01 ~]$ id
uid=500(pizza) gid=500(pizza) groups=500(pizza) [pizza@luffy-01 ~]$ id root
uid=0(root) gid=0(root) groups=0(root)

结果:文件属于root家族,pizza是这个文件的陌生人,pizza的权限是9位权限的最后3位r--

权限的计算

r======4
w 2
x 1
- 0 -rw-------
420000000
6 0 0 -rw-r--r--
420400400
6 4 4 drwxr-xr-x
421401401
7 5 5

修改权限

chmod ===change mode

  1]使用数字的方法修改权限
chmod 755 oldboy.txt 2]使用字符
主人 家人 陌生人
user group other
u g o [root@oldboyedu01-nb oldboy]# ls -l oldboy.txt
-rw-r--r--. 2 root root 252 Oct 18 09:10 oldboy.txt
[root@oldboyedu01-nb oldboy]# chmod u+x oldboy.txt 添加执行权限
[root@oldboyedu01-nb oldboy]# ls -l oldboy.txt
-rwxr--r--. 2 root root 252 Oct 18 09:10 oldboy.txt
[root@oldboyedu01-nb oldboy]# chmod u-x oldboy.txt 去除x权限
[root@oldboyedu01-nb oldboy]# ls -l oldboy.txt
-rw-r--r--. 2 root root 252 Oct 18 09:10 oldboy.txt
[root@oldboyedu01-nb oldboy]# chmod u=x oldboy.txt 先清空,再添加
[root@oldboyedu01-nb oldboy]# ll oldboy.txt
---xr--r--. 2 root root 252 Oct 18 09:10 oldboy.txt
[root@oldboyedu01-nb oldboy]# chmod u=rwx oldboy.txt
[root@oldboyedu01-nb oldboy]# ll oldboy.txt
-rwxr--r--. 2 root root 252 Oct 18 09:10 oldboy.txt
3]给文件添加上执行权限
chmod +x oldboy.txt === chmod ugo+x oldboy.txt === chmod a+x oldboy.txt 4]修改文件的所有者和所属用户组
chown change owner [root@oldboyedu01-nb oldboy]# ls -l oldboy.txt
-rwxr-xr-x. 2 root root 252 Oct 18 09:10 oldboy.txt
[root@oldboyedu01-nb oldboy]# chown oldboy.oldboy oldboy.txt
[root@oldboyedu01-nb oldboy]# ll oldboy.txt
-rwxr-xr-x. 2 oldboy oldboy 252 Oct 18 09:10 oldboy.txt
[root@oldboyedu01-nb oldboy]#
[root@oldboyedu01-nb oldboy]#
[root@oldboyedu01-nb oldboy]#
[root@oldboyedu01-nb oldboy]# chown root oldboy.txt
[root@oldboyedu01-nb oldboy]# ll oldboy.txt
-rwxr-xr-x. 2 root oldboy 252 Oct 18 09:10 oldboy.txt
[root@oldboyedu01-nb oldboy]#
[root@oldboyedu01-nb oldboy]# chown root.root oldboy.txt
[root@oldboyedu01-nb oldboy]# ll oldboy.txt
-rwxr-xr-x. 2 root root 252 Oct 18 09:10 oldboy.txt
[root@oldboyedu01-nb oldboy]# chown oldboy.oldboy oldboy.txt
[root@oldboyedu01-nb oldboy]# ll oldboy.txt
-rwxr-xr-x. 2 oldboy oldboy 252 Oct 18 09:10 oldboy.txt

对于文件来说,rwx权限的含义

准备环境

mkdir -p /oldboy
echo -e 'hostname\npwd' >/oldboy/alex.sh
chown oldboy.oldboy /oldboy/alex.sh
ll /oldboy/alex.sh
root用户
oldboy用户

前提:对于普通非root用户

root用户下面修改 r权限

[root@luffy-01 ~]# chown oldboy.oldboy /oldboy/alex.sh
[root@luffy-01 ~]# ll /oldboy/alex.sh
-rw-r--r-- 1 oldboy oldboy 13 Jan 15 23:23 /oldboy/alex.sh
[root@luffy-01 ~]# chmod u=r /oldboy/alex.sh
[root@luffy-01 ~]# ll /oldboy/alex.sh
-r--r--r-- 1 oldboy oldboy 13 Jan 15 23:23 /oldboy/alex.sh

oldboy用户下验证

[oldboy@luffy-01 ~]$ ll /oldboy/alex.sh
-r--r--r-- 1 oldboy oldboy 13 Jan 15 23:23 /oldboy/alex.sh # 可读
[oldboy@luffy-01 ~]$ cat /oldboy/alex.sh
hostname
pwd
[oldboy@luffy-01 ~]$ echo 'ls -ld /root' >>/oldboy/alex.sh #没有写入权限
-bash: /oldboy/alex.sh: Permission denied
[oldboy@luffy-01 ~]$ /oldboy/alex.sh # 没有执行权限
-bash: /oldboy/alex.sh: Permission denied

root下面修改 w

chown: invalid user: `u=w'
[root@luffy-01 ~]# chmod u=w /oldboy/alex.sh

oldboy用户下面验证

[oldboy@luffy-01 ~]$ ll /oldboy/alex.sh
--w-r--r-- 1 oldboy oldboy 13 Jan 15 23:23 /oldboy/alex.sh
[oldboy@luffy-01 ~]$ cat /oldboy/alex.sh
cat: /oldboy/alex.sh: Permission denied
[oldboy@luffy-01 ~]$ echo 'ls -ld /root' >>/oldboy/alex.sh
[oldboy@luffy-01 ~]$ /oldboy/alex.sh
-bash: /oldboy/alex.sh: Permission denied
[oldboy@luffy-01 ~]$ cat /oldboy/alex.sh
cat: /oldboy/alex.sh: Permission denied

写进去了,却不能查看,那就是然并卵了

用VIM进去,什么也看不了,写入后,提示只读权限,

退出后vim后,在root用户下查看,显示的是已经被修改的内容。

所以,只有w权限是没什么用的

小结:

1.r读取文件内容
2.w修改文件的内容,但是需要r的配合
没有r配合强制修改退出,会清空文件的内容

root下面修改 x

[root@luffy-01 ~]# ll /oldboy/alex.sh
---xr--r-- 1 oldboy oldboy 26 Jan 15 23:44 /oldboy/alex.sh

更改为x权限会变成绿色

oldboy用户下面验证

[oldboy@luffy-01 ~]$ ll /oldboy/alex.sh
---xr--r-- 1 oldboy oldboy 26 Jan 15 23:44 /oldboy/alex.sh
[oldboy@luffy-01 ~]$ echo 'w' >> /oldboy/alex.sh
-bash: /oldboy/alex.sh: Permission denied
[oldboy@luffy-01 ~]$ /oldboy/alex.sh
bash: /oldboy/alex.sh: Permission denied

运行不了

加上r权限

[oldboy@luffy-01 ~]$ ll /oldboy/alex.sh
-r-xr--r-- 1 oldboy oldboy 26 Jan 15 23:44 /oldboy/alex.sh
[oldboy@luffy-01 ~]$ /oldboy/alex.sh
luffy-01
/home/oldboy
dr-xr-x---. 2 root root 4096 Jan 15 15:00 /root
可以运行了

小结:

对于文件来说rwx小结:
1.r读取文件内容
2.w修改文件的内容,但是需要r的配合
没有r配合强制修改退出,会清空文件的内容
3.x权限执行,需要r权限的配合

目录权限详解

  r 查看目录里面的内容,    ls
w 可以在目录里面创建 删除 重命名文件
x 可以进入(cd)到这个目录

创建环境

mkdir -p /oldboy/alexdir
chown oldboy.oldboy /oldboy/alexdir
touch /oldboy/alexdir/luffy{01..5}.txt

root下修改目录权限r

[root@luffy-01 oldboy]# ll -d alexdir/    加-d是为了把目录当做文件对待,否则就是查看目录里面的内容了
drwxr-xr-x 2 oldboy oldboy 4096 Jan 16 00:03 alexdir/
[root@luffy-01 oldboy]# chmod u=r alexdir/
[root@luffy-01 oldboy]# ll -d alexdir/
dr--r-xr-x 2 oldboy oldboy 4096 Jan 16 00:03 alexdir/

oldboy下验证

[oldboy@luffy-01 oldboy]$ ls -ld alexdir/
dr--r-xr-x 2 oldboy oldboy 4096 Jan 16 00:03 alexdir/
[oldboy@luffy-01 oldboy]$ ls -l alexdir/
ls: cannot access alexdir/luffy01.txt: Permission denied
ls: cannot access alexdir/luffy05.txt: Permission denied
ls: cannot access alexdir/luffy04.txt: Permission denied
ls: cannot access alexdir/luffy02.txt: Permission denied
ls: cannot access alexdir/luffy03.txt: Permission denied
total 0
-????????? ? ? ? ? ? luffy01.txt
-????????? ? ? ? ? ? luffy02.txt
-????????? ? ? ? ? ? luffy03.txt
-????????? ? ? ? ? ? luffy04.txt
-????????? ? ? ? ? ? luffy05.txt
[oldboy@luffy-01 oldboy]$ ls alexdir/
ls: cannot access alexdir/luffy01.txt: Permission denied
ls: cannot access alexdir/luffy05.txt: Permission denied
ls: cannot access alexdir/luffy04.txt: Permission denied
ls: cannot access alexdir/luffy02.txt: Permission denied
ls: cannot access alexdir/luffy03.txt: Permission denied
luffy01.txt luffy02.txt luffy03.txt luffy04.txt luffy05.txt

无法看到文件的详细信息

root下加入x权限

[oldboy@luffy-01 oldboy]$ ls alexdir/
luffy01.txt luffy02.txt luffy03.txt luffy04.txt luffy05.txt
[oldboy@luffy-01 oldboy]$ ls -l alexdir/
total 0
-rw-r--r-- 1 root root 0 Jan 16 00:03 luffy01.txt
-rw-r--r-- 1 root root 0 Jan 16 00:03 luffy02.txt
-rw-r--r-- 1 root root 0 Jan 16 00:03 luffy03.txt
-rw-r--r-- 1 root root 0 Jan 16 00:03 luffy04.txt
-rw-r--r-- 1 root root 0 Jan 16 00:03 luffy05.txt

可以查看了

小结:

1.对于目录来说 r表示 查看目录里面内容的权限,ls  需要x配合
2.没有x权限,那么显示的时候文件的属性无法显示

root下修改目录的w

[root@luffy-01 oldboy]# chmod u=w alexdir/
[root@luffy-01 oldboy]# ls -ld alexdir/
d-w-r-xr-x 2 oldboy oldboy 4096 Jan 16 00:03 alexdir/

oldboy下验证

[oldboy@luffy-01 oldboy]$ ll alexdir/
ls: cannot open directory alexdir/: Permission denied
[oldboy@luffy-01 oldboy]$ touch alexdir/txt.txt
touch: cannot touch `alexdir/txt.txt': Permission denied
[oldboy@luffy-01 oldboy]$ rm alexdir/luffy01.txt
rm: cannot remove `alexdir/luffy01.txt': Permission denied

各种操作都不行

添加x权限

[oldboy@luffy-01 oldboy]$ ll alexdir/
ls: cannot open directory alexdir/: Permission denied
[oldboy@luffy-01 oldboy]$ ll alexdir/ -d
d-wxr-xr-x 2 oldboy oldboy 4096 Jan 16 00:03 alexdir/
[oldboy@luffy-01 oldboy]$ touch alexdir/txt.txt

可以添加和删除了,但是无法查看目录

小结;

1.w表示 可以在目录中创建 删除文件 重命名文件权限
2.只有w无法删除 创建文件,w需要x配合

root下修改x

[root@luffy-01 oldboy]# chmod u=x alexdir/
[root@luffy-01 oldboy]# ls -ld alexdir/
d--xr-xr-x 2 oldboy oldboy 4096 Jan 16 00:22 alexdir/

oldboy下面验证

[oldboy@luffy-01 oldboy]$ cd alexdir/
[oldboy@luffy-01 alexdir]$ ll
ls: cannot open directory .: Permission denied

总结:

           文件                    目录
r 读取文件的内容 查看目录的内容(需要x权限)
w 修改文件的内容(需要r) 在目录下面创建 删除文件(需要x权限)
x 执行文件(需要r) 进入到目录的权限(cd)

!!!!!!删除一个文件,要看你对这个文件所在的目录是否有wx权限。

网站整体权限规划

Linux 系统默认权限(默认的,比较安全的)

对于文件来说

所有者、家庭、隔壁老王======>rw- r- - r--  644

对于目录来说

所有者、家庭、隔壁老王======>rwx r-x r-x  755

文件或者目录的所有者

root root

网站比较安全的权限

blog.youxiaodao.com

网站程序放在/app/blog目录下面

#0.网站需要被运行起来,通过一个傀儡用户运行起来的www

#1.blog目录下面
file 644
dir 755
root root #2.blog目录下面
/app/blog/ndd.jpg
/app/blog/snow.jpg
/app/blog/budongde.avi
/app/blog/上传/lwang.jpg
/app/blog/上传/lzhang.avi blog/上船
file644 dir755
www www

小结:

 1.网站是通过傀儡用户运行的www
2.网站用户上传目录,file 644 dir 755 www www
3.除了上传目录之外 file 644 dir 755 root root

Linux控制系统默认权限的命令umask

[root@luffy-01 oldboy]# umask
0022 [oldboy@luffy-01 alexdir]$ umask
0002

文件的最大的权限 666
目录的最大的权限 777

那么,0022 和666/777有什么关系呢?

####umask 022

#umask
##根据umask计算文件的默认权限
##666
#-022 减去022
#=644 ##根据umask计算目录的默认权限
##777
#-022
#=755 ####umask 032 ##根据umask计算文件的默认权限
##666
#-032
#=634
#+010 遇到奇数 +1
=644 ##根据umask计算目录的默认权限
##777
#-032
#=745 [root@online01 oldboy]# touch file032
[root@online01 oldboy]# mkdir dir032
[root@online01 oldboy]# ls -ld *032
drwxr--r-x. 2 root root 4096 Nov 8 05:22 dir032
-rw-r--r--. 1 root root 0 Nov 8 05:22 file032 根据umask计算出系统默认的权限规则
1.对于目录 777直接减去umask
2.对于文件 666减去umask的值,如果umask某一位上面是奇数,减完umask之后奇数位需要+1

umask的修改

[oldboy@luffy-01 alexdir]$ umask 032
[oldboy@luffy-01 alexdir]$ umask
0032

文件系统的属性

[oldboy@luffy-01 alexdir]$ lsattr txt.txt
-------------e- txt.txt
查看系统属性,或者叫做隐藏的属性
共有9个,常用的有两个a和i

文件系统属性中的a和i

[root@online01 ~]# #a=====append 只能追加
[root@online01 ~]# #i=====immutable 无敌的 不可修改的
[root@online01 ~]# lsattr oldboy.txt
-------------e- oldboy.txt
[root@online01 ~]# chattr +a oldboy.txt
chattr授予文件或者目录隐藏的权限
+a 或者 -a
[root@online01 ~]# lsattr oldboy.txt
-----a-------e- oldboy.txt [root@online01 ~]# cat oldboy.txt
hello.txt
[root@online01 ~]# echo hello >>oldboy.txt
[root@online01 ~]# echo hello >>oldboy.txt
[root@online01 ~]# cat oldboy.txt
hello.txt
hello
hello
[root@online01 ~]# echo hello >oldboy.txt
-bash: oldboy.txt: Operation not permitted
[root@online01 ~]# rm -f oldboy.txt
rm: cannot remove `oldboy.txt': Operation not permitted
[root@online01 ~]# mv oldboy.txt /tmp/
mv: cannot move `oldboy.txt' to `/tmp/oldboy.txt': Operation not permitted [root@online01 ~]# echo hello >>oldboy.txt
-bash: oldboy.txt: Permission denied
[root@online01 ~]# echo hello >oldboy.txt
-bash: oldboy.txt: Permission denied
[root@online01 ~]# rm -f oldboy.txt
rm: cannot remove `oldboy.txt': Operation not permitted
[root@online01 ~]# mv oldboy.txt /tmp/
mv: cannot move `oldboy.txt' to `/tmp/oldboy.txt': Operation not permitted

Linux特殊权限

suid setuid ------password命令

S s -rws r-x r-x

作用:运行某一个命令的时候相当于这个命令的所有者(root)

设置方法:chmod u+s /bin/rm 或者 chmod 4755 /bin/rm

危险:所有用户运行命令的时候都相当于是root

例子:passwd命令

看一下设置s属性后的文件权限信息

[root@luffy-01 oldboy]# chmod u+s /bin/cat
[root@luffy-01 oldboy]# ll /bin/cat
-rwsr-xr-x. 1 root root 48568 Mar 23 2017 /bin/cat
[root@luffy-01 oldboy]# stat /bin/cat
File: `/bin/cat'
Size: 48568 Blocks: 96 IO Block: 4096 regular file
Device: 803h/2051d Inode: 13599 Links: 1
Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-01-15 08:42:00.072999999 +0800
Modify: 2017-03-23 02:52:45.000000000 +0800
Change: 2019-01-16 01:31:49.911687040 +0800

权限变成了4 755

sticky粘滞位---1777 /tmp目录

特点:

1、任何用户都可以在这个目录里面创建文件(原来的权限是777)

2、每个人只能管理自己的文件,其他人处理不了

[root@luffy-01 oldboy]# stat /tmp/
File: `/tmp/'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 803h/2051d Inode: 12 Links: 3
Access: (1777/drwxrwxrwt) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-01-15 17:29:10.881710386 +0800
Modify: 2019-01-15 15:28:55.581985449 +0800
Change: 2019-01-15 15:28:55.581985449 +0800

sgid locate

运行这个命令的时候,相当于这个命令的家人

总结

1、Linux权限体系
    1.rwx是啥
    2.rwx对应的数字 及计算方法 rwxr-xr-x
    3.chmod 命令的使用
     4.对于文件来说r w x 是什么含义 *****
    5.对于目录来说r w x 是什么含义 *****
    6.网站权限-通过控制权限让网站安全
    7.linux系统默认权限控制命令umask
    8.文件系统属性(文件属性) 前面的知识总结
1、正则总结
2、特殊符合总结
无分类系列 $ ! | #
引号系列 $() `` '' ""
重定向系列 > >> 2> 2>> < <<
位置系列 ~ . ..
判断系列 && || 3.第三关练习题-取出ip地址 权限 4.使用三剑客进行过滤grep sed awk
如何使用三剑客命令过滤出文件中以oldboy开头的行(文件名是oldboy.txt,至少3种方法)
5.修改时间 linux快捷键 vi/vim快捷键
6.文件还有目录权限 rwx含义
7.网站权限-通过控制权限让网站安全
8.linux系统默认权限控制命令umask
9.文件系统属性(文件属性)
10.linux无法上网
11.无法远程连接服务器
进阶知识:
安装和使用lrzsz htop

Linux之权限详解的更多相关文章

  1. linux学习之路第八天(linux文件权限详解)

    建议和我上一篇博客一起通读,效果更加 1.权限的基本介绍 通过一张图片解决疑惑(重点) rwx权限详解 rwx作用到文件 1)[r]代表可读(read) :可以读取,查看 2)[w]代表可写(writ ...

  2. linux文件目录权限详解(20170101)

    linux目录权限与文件权限是不同的,二者要相互配合,这是基础. 比如要读文件:目录至少要有x,文件至少要有r. 要写文件:目录至少要有x,文件至少要有rw. 要执行文件:目录至少要有x,文件至少要有 ...

  3. LINUX 文件权限详解

    ls -l // 查看文件的权限 等价于 ll 文件的权限信息查看 -rw-rw-r-- 1 ceshi ceshi 891 Aug 8 17:28 server drwxrwxr-x 10 cesh ...

  4. LInux ugo权限详解[修]

    Linux 中的用户和组是用来控制使用者或者进程可以或者不可以使用哪些资源和硬件,是Linux权限控制最基本的方式. 用户和组可以看一下上一章的部分,先来看一下权限. 一.权限概览 在Linux下,使 ...

  5. [转]Linux文件权限详解

    转自:http://blog.chinaunix.net/uid-25052030-id-174343.html 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问 ...

  6. linux文件权限详解

    一.文件和目录权限概述在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允许一 ...

  7. LInux ugo权限详解

    Linux 中的用户和组是用来控制使用者或者进程可以或者不可以使用哪些资源和硬件,是Linux权限控制最基本的方式. 用户和组可以看一下上一章的部分,先来看一下权限. 一.权限概览 在Linux下,使 ...

  8. 十一、linux文件系统权限详解

    对于文件系统权限,我们前面已经讲解了一部分,这里就不在重复了. 1.修改文件权限有两种,一种是数字.一种是字母 (chmod 的修改只能是属主或者root) 数字: 修改目录权限和目录内所有文件的权限 ...

  9. CentOS \Linux文件权限详解

    文件和目录权限概述 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允许一个 ...

随机推荐

  1. [PHP] PHP在CLI环境下的错误日志

    1.display_errors = Off;//控制php是否输出错误;在生产环境中输出会泄露敏感信息;建议记录错误而不是将它们发送到STDOUToff :不显示任何错误;stderr :向STDE ...

  2. python爬虫scrapy项目详解(关注、持续更新)

    python爬虫scrapy项目(一) 爬取目标:腾讯招聘网站(起始url:https://hr.tencent.com/position.php?keywords=&tid=0&st ...

  3. Codeforces442A

    A. Borya and Hanabi time limit per test:2 seconds memory limit per test: 256 megabytes input:standar ...

  4. viewer.js 视图预览demo

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  5. Openlayer3之C++接口在javaScript的封装使用

    0.写在前面: 1)涉及的关键词定义: 传入:JavaScript向CAPI传值 传出:CAPI向JavaScript传值 2)关于类和结构体的封装,需要严格执行内存对齐,以防止读取越界,但是避免不了 ...

  6. Android项目实战(四十八):架构之组件化开发

    什么要组件化开发? 看一下普通项目的结构 , 一个项目下有多个Module(左侧图黑体目录),但是只有一个application,0个或多个library(在每个medel下的build.gradle ...

  7. Android性能优化9-ANR完全解析

    1.什么是ANR 在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对 ...

  8. Linux Xshell连接Linux服务器时报错Socket error Event: 32 Error: 10053

    问题描述 在用Xshell连接Linux服务器时,出现错误提示"Socket error Event: 32 Error: 10053. Connection closing...Socke ...

  9. ctypes库调用dll的个人见解

    最近着手开发一个小东西涉及到了API接口的知识点, 第一次使用到了ctypes库,在网上找了一大圈,基本都是讲add.dll之后就没了. 就像下面这个: from ctypes import * dl ...

  10. 【PHPStorm使用手册】如何设置字体大小?

    方案一:鼠标滚轮设置 打开窗口 file -> settings -> Editor -> General, 勾上选项“Change font size(Zoom) with Ctr ...