linux用户权限 -> 系统基本权限
比如rwxr-xr-x
linux中正是这9个权限位来控制文件属主(User)、属组(Group)、其他用户(Other)基础权限。
用户对资源来说, 有三种角色
User(u): 属主用户(文件所有者)
Group(g): 属组用户(包含组成员)
Other(o): 匿名用户(其他人)
//一个用户访问文件流程如下
1. 判断用户是否为文件的所有者,如果是,按所有者的权限进行访问
2. 判断是否为文件的所有组成员,如果是,就按组的权限去访问
3. 最终用户就是文件的其他的人,按其他人的权限去访问
rwx, rwx, r-x
User Group Other
权限与属主属组
文件权限对应表
字母 | 含义 | 对应权限 |
---|---|---|
r(read) | 读取权限 | 4 |
w(write) | 写入权限 | 2 |
x(execute) | 执行权限 | 1 |
-(没有权限) | 没有权限 | 0 |
如果权限位不可读、不可写、不可执行,则用-来表示。
权限修改命令chmod
chmod //修改文件目录权限rwx -R级联修改 mkdir dir //建立目录
touch dir/file //建立文件 示例1:
chmod dir/ //修改dir目录权限为777
chmod u+rwx,g+rwx,o+rwx 示例2:
chmod dir/file //修改file文件权限为666
chmod u+rw,g+rw,o+rw 示例3: chmod -R dir/ //修改目录及子目录权限
属主属组修改命令chown
chown //更改属主以及属组 -R:级联修改 mkdir dir //创建目录
touch dir/file_test //创建文件
mkdir dir/dir_test //创建目录 示例1:
chown bin dir/ //修改所属主为bin
ll -d dir/ //检查属主
drwxr-xr-x bin root 7月 : dir/ 示例2:
chown .adm dir/ //修改所属组为adm
ll -d dir/ //检查属组
drwxr-xr-x bin adm 7月 : dir/ 示例3:
chown -R root.root dir/ //递归修改目录及目录下的所有文件属主和属组
基础权限设置案例
权限 | 对文件的影响 | 对目录的影响 |
---|---|---|
读取权限(r) | 具有读取\阅读文件内容权限 | 具有浏览目录及子目录 |
写入权限(w) | 具有新增、修改文件内容的权限 | 具有增加和删除目录内文件 |
执行权限(x) | 具有执行文件的权限 | 具有访问目录的内容(取决于目录中文件权限) |
文件权限与目录权限说明
) 文件权限
r 代表文件可读
w 代表文件可编辑修改
x 代表文件可执行
通常情况下,文件至少要有r权限。例如,只有w权限,文件除了通过重定向方式外,是无法编辑的。 ) 目录权限
r 代表目录可读,即可查看该目录
w 代表目录可编辑修改,即目录下的文件可以改名、删除等(文件名信息存放在目录block中)
x 代表目录可执行,即代表可进入该目录
通常情况下,目录至少要有x权限,即至少能进入该目录 ) 其他说明
文件的删除、创建、重命名需要至少有该文件所在目录的wx权限 ) Linux访问文件过程
例如:访问/a/b.txt
① 访问/的inode
② 通过/的inode找到/的block
③ 访问/的block,并且在/的block中找到a目录的名字与inode号码
④ 访问/a的inode
⑤ 通过/a的inode找到/a的block
⑥ 访问/a的block,并且在/a的block中找到b.txt文件的名字与inode号码
⑦ 访问/a/b.txt的inode
⑧ 访问/a/b.txt的block,访问文件内容
其中步骤③⑥⑧过程涉及权限,即通过inode访问block过程涉及权限。
默认权限
) 文件的默认权限是644,目录的默认权限是755 ) 通过umask来控制默认权限,umask默认值为022 ) 默认权限计算方法
文件的默认最大权限是666,目录的默认最大权限是777,用默认最大权限减去umask值可得到文件、目录的默认权限,如果文件的结果为奇数,需要+。
例如:修改umask为033后,新建文件的默认权限为644,新建目录的默认权限为744。 ) 修改默认权限
临时修改:umask
永久修改:编辑/etc/profile
权限测试实例
## 创建环境:
[root@Test01 ~]# useradd oldboy
[root@Test01 ~]# mkdir -p /oldboy/oldboydir
[root@Test01 ~]# chown oldboy.oldboy /oldboy/oldboydir
[root@Test01 ~]# cd /oldboy/oldboydir
[root@Test01 oldboydir]# touch {..}.txt
[root@Test01 oldboydir]# ls -la
total
drwxr-xr-x oldboy oldboy Jun : .
drwxr-xr-x root root Jun : ..
-rw-r--r-- root root Jun : .txt
-rw-r--r-- root root Jun : .txt
-rw-r--r-- root root Jun : .txt
-rw-r--r-- root root Jun : .txt
-rw-r--r-- root root Jun : .txt ## 修改为oldboydir目录为只读权限
[root@Test01 oldboydir]# ll -d
drwxr-xr-x oldboy oldboy Jun : .
[root@Test01 oldboydir]# chmod u=r .
[root@Test01 oldboydir]# ll -d
dr--r-xr-x oldboy oldboy Jun : . ## 在oldboy用户下,查看oldboydir目录
[oldboy@Test01 oldboy]$ ls -l /oldboy/oldboydir/
ls: cannot access /oldboy/oldboydir/.txt: Permission denied
ls: cannot access /oldboy/oldboydir/.txt: Permission denied
ls: cannot access /oldboy/oldboydir/.txt: Permission denied
ls: cannot access /oldboy/oldboydir/.txt: Permission denied
ls: cannot access /oldboy/oldboydir/.txt: Permission denied
total
-????????? ? ? ? ? ? .txt
-????????? ? ? ? ? ? .txt
-????????? ? ? ? ? ? .txt
-????????? ? ? ? ? ? .txt
-????????? ? ? ? ? ? .txt
总结:
. 目录的x权限决定用户是否能进入目录,同时x权限可以显示目录中文件属性信息
. 如果只有r权限,则目录中文件属性信息不能显示,会出现以上情况
. 在目录中对文件进行创建、删除和重命名需要有目录的w权限
. 因此对于目录来说,默认权限是755
rwx
对文件的影响
读取权限(r)
文件只有r权限: 具有读取\阅读文件内容权限
1.能使用查看类命令cat、head、tail、less、more
2.不能复制、不能移动、不能编辑,不能删除
写入权限(w)
如果文件只有w权限: 具有新增、修改文件内容的权限
1.使用vim
编辑会提示权限拒绝, 但可强制保存,会覆盖文件的所有内容
2.使用echo、cat
命令重定向或追加重定向技术可以往文件内写入数据
3.不能复制、不能移动、不能删除,(删除需要看上级目录w的权限)
执行权限(x)
文件只有x权限,具有执行文件的权限。
//注意: 普通用户需要有r权限,管理员不需要
1.不能执行、查看、编辑、复制、移动、删除
权限小结:
文件rw权限, 可以查看和编辑文件内容
文件rx权限, 只能查看和执行文件、不能编辑、复制、移动、删除
目录rx权限, 允许浏览目录内文件以及子目录、并允许在目录内新建文件, 不允许创建、删除文件和目录
注意事项:
文件, x权限小心给予,建议赋予r或rw即可
目录, w权限小心给予,建议无特殊需求赋予rx即可
linux用户权限 -> 系统基本权限的更多相关文章
- Linux - 用户管理与文件权限
目录 Linux - 用户管理与文件权限 创建普通用户 切换用户 userdel删除用户 sudo 命令 文件与目录权限 Linux权限的解读 目录权限 查看用户权限的命令 文件权限 修改权限的命令 ...
- Linux 用户管理 与 文件权限
Linux 用户管理 与 文件权限 用户组操作 1.groupadd命令 groupadd [-g -o] gid group 各个选项具体含义如下: -g:指定新建用户组的GID号,该GID号必须唯 ...
- linux用户管理和文件权限
linux用户管理和文件权限 新建用户:useradd ftpuser useradd -g gxx userxx修改密码:passwd ftpuser新增用户组:# groupadd gr ...
- linux用户权限 -> 系统特殊权限
set_uid 运行一个命令的时候,相当于这个命令的所有者,而不是执行者的身份. suid的授权方法 suid 权限字符s(S),用户位置上的x位上设置. 授权方法: passwd chmod u+s ...
- Linux用户体系和文件权限总结
一. Linux系统用户和用户组相关文件 1. /etc/passwd文件 这个passwd文件是Linux用户信息文件.文件格式说明如下: root:x:0:0:root:/r ...
- linux用户身份和文件权限
1.用户身份与能力 root管理员是linux 的超级用户,他拥有系统的所有权,能够管理系统的各项功能,如添加/删除用户,启动/关闭服务进程,开启/禁用硬件设备…… "Linux系统中的管理 ...
- Linux 用户身份与进程权限
在学习 Linux 系统权限相关的主题时,我们首先关注的基本都是文件的 ugo 权限.ugo 权限信息是文件的属性,它指明了用户与文件之间的关系.但是真正操作文件的却是进程,也就是说用户所拥有的文件访 ...
- 笔记:Linux用户管理(补充)、权限管理、内存管理、网络管理、渗透常用命令
一.用户管理(补充) 添加用户:useradd [选项] 用户名 useradd -u 5000 -g demogroup -G root -d /home/demo -s /bin/bash dem ...
- Linux用户身份与文件权限学习笔记
用户身份 管理员UID为0:系统的管理员用户 系统用户UID为1~999:服务程序会有独立的系统用户负责运行:防止被黑客入侵进行提权,并有效控制被破坏的范围 普通用户UID从1000开始:是由管理员创 ...
随机推荐
- 【刷题】BZOJ 2693 jzptab
Description Input 一个正整数T表示数据组数 接下来T行 每行两个正整数 表示N.M Output T行 每行一个整数 表示第i组数据的结果 Sample Input 1 4 5 Sa ...
- attention、self-attention、transformer和bert模型基本原理简述笔记
attention 以google神经机器翻译(NMT)为例 无attention: encoder-decoder在无attention机制时,由encoder将输入序列转化为最后一层输出state ...
- What?
What? 本文主要讲解一下kubernetes周边的概念,可以说是一小部分的生态圈,逐渐了解一下,走进kubernetes的世界.请读者在读的时候,带着批判的态度去读. 一张概览图: 云计算: 原文 ...
- 【bzoj3575】 Hnoi2014—道路堵塞
http://www.lydsy.com/JudgeOnline/problem.php?id=3575 (题目链接) 题意 给出一个有向图和一条最短路,问最短路上任意一条边断掉,此时的最短路是多少. ...
- linux 第三周读书笔记-----第一二章 20135334赵阳林
第一章 Linux内核简介 1.1 Unix的历史 由于Unix系统设计简洁并且在发布时提供源代码,所以许多其他组织和团体都对它进了进一步的开发. Unⅸ虽然已经使用了40年,但计算机科学家仍然认为它 ...
- java多线程 -- Condition 控制线程通信
Api文档如此定义: Condition 将 Object 监视器方法(wait.notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使用,为每个对 ...
- 《剑指offer》— JavaScript(16)合并两个排序的链表
合并两个排序的链表 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. *** 思路 如果pHead1和pHead2中有一个为空,则result是另 ...
- pandas读csv、数据处理
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- python中的文件操作(2)
a+,w+,r+的特点: r+:r+模式允许读和写,当对文件句柄只进行写操作时,tell(),seek()为写操作的‘指针’(也就是写到seek()处). 当只进行读操作时,tell(),seek() ...
- 《Java程序猿面试宝典》之字符串
前不久刚看完这一章,然而这遗忘速度实在是不能忍,既然总是遗忘,那么老衲就和你磨上一磨. 1.字符串基础 先说字符串吧,看例1: String a = "abc"; String b ...