玩Linux的人都知道,Linux的安全性要比Windows高很多,而这主要是因为Linux中的安全权限机制,Linux中的用户和文件是组成系统的重点,而Linux的主要哲学思想是一切皆文件。Linux中的用户有用户的权限,分为普通用户和超级用户。文件有文件的权限,分别为读写执行权限。因为Linux中一切皆文件,对文件的操作就可以直接的操作系统,很多Linux高级服务器是没有图形界面的,都是对文件来直接操作来控制服务器,对文件的操作要通过用户来执行,而普通用户和超级用户的执行权限是不同的。

1.普通用户和超级用户权限的不同

超级用户是系统的所有者,可以对系统做任何的操作,甚至是删除系统的根目录。而 普通用户则有很大的限制,例如不能修改系统关键配置文件,想查看其他用户的文件则需要相应的权限 不能安装软件,甚至关机关机指令(shutdown或poweroff)都需要以root身份执行(sudo)。

2.理解“ls -l”

我们来看一看我们的 ls -l 输出,检查一下这个清单的第一栏:

$ ls -l /bin/bash
       -rwxr-xr-x    1 root     wheel      430540 Dec 23 18:27 /bin/bash
    第一个字段 -rwxr-xr-x 包含该特殊文件的权限的符号表示。

该字段中的首字符(-)指定该文件的类型,本例中它是一个常规文件。其它可能的首字符还有: 
    “d”目录
    “l”符号链接
    “c”字符专门设备文件
    “b”块专门设备文件
    “p”先进先出
    “s”套接字

3.文件权限rwx

       r 表示允许读(查看文件中的数据),w 表示允许写(修改文件以及删除),x 表示允许“执行”(运行程序)。

    通过rwx的不同组合实现文件的不同权限,

第一组rwx:文件所有者的权限是读、写和执行

第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行

第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行

也可用数字表示为:r=4,w=2,x=1  因此rwx=4+2+1=7

4.umask值

当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限“补码”, 而chmod设置的是文件权限码。一般可在/etc/profile、/etc/bashrc、$ [HOME]/.bash_profile、 $[HOME]/.profile或$[HOME]/.bashrc中设置umask值。具体取决于 Linux发行版,比如Fedora19下要更改自己的umask值,在$[HOME]/.profile或$[HOME]/.bash_profile 下的增加umask的值覆盖不了/etc/profile中的配置值的,必须在$[HOME]/.bashrc下增加umask值才可以永久定义自己的umask值。

  •     如何计算umask值

umask 命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的umask值中的数字。对于文件来说,这一数字的最 大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来 说,umask中各个数字最大可以到7。

    例如,对于umask值0 0 2,相应的文件和目录缺省创建权限是什么呢?

第一步,我们首先写下目录具有全部权限的模式,即777 (所有用户都具有读、写和执行权限)。

第二步,在下面一行按照umask值写下相应的位,在本例中是0 0 2。

第三步,在接下来的一行中记下上面两行中没有匹配的位。这就是目录的缺省创建权限。

稍加练习就能够记住这种方法。

第四步,对于文件来说,在创建时不能具有执行权限,只要拿掉相应的执行权限比特即可。

这就是上面的例子, 其中umask值为0 0 2:

1) 文件的最大权限 rwx rwx rwx (777)

2) umask值为0 0 2 --- --- -w-

3) 目录权限 rwx rwx r-x (775) 这就是目录创建缺省权限

4) 文件权限 rw- rw- r-- (664) 这就是文件创建缺省权限

下面是另外一个例子,假设这次u m a s k值为0 2 2:

1) 文件的最大权限 rwx rwx rwx (777)

2 ) u m a s k值为0 2 2 --- -w- -w-

3) 目录权限 rwx r-x r-x (755) 这就是目录创建缺省权限

4) 文件权限 rw- r-- r-- (644) 这就是文件创建缺省权限

5.改文件权限命令chmod

chmod [who] [+ | - | =] [mode] 文件名?

命令中各选项的含义为:

操作对象who可是下述字母中的任一个或他们的组合:

u 表示“用户(user)”,即文件或目录的所有者。

g 表示“同组(group)用户”,即和文件属主有相同组ID的所有用户。

o 表示“其他(others)用户”。

a 表示“所有(all)用户”。他是系统默认值。

操作符号是:

+ 添加某个权限。

- 取消某个权限。

= 赋予给定权限并取消其他所有权限(如果有的话)。

设置mode所表示的权限可用下述字母的任意组合:

r 可读。

w 可写。

x 可执行。

X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。

s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。

t 保存程式的文本到交换设备上。

u 和文件属主拥有相同的权限。

g 和和文件属主同组的用户拥有相同的权限。

o 和其他用户拥有相同的权限。

例子:

chmod 755 abc:赋予abc权限rwxr-xr-x

chmod u=rwx,g=rx,o=rx abc:同上u=用户权限,g=组权限,o=不同组其他用户权限

chmod u-x,g+w abc:给abc去除用户执行的权限,增加组写的权限

chmod a+r abc:给所有用户添加读的权限

本文转自willis_sun 51CTO博客,原文链接:http://blog.51cto.com/willis/1845983,如需转载请自行联系原作者

Linux权限管理总结(1)--基础权限相关推荐

  1. Linux 权限管理: 权限的概念、权限管理、文件访问权限的设置、 粘滞位

    Linux下的基本指令 目录: 权限的概念 权限管理 文件访问权限的设置方法 目录的权限 粘滞位 权限的概念 Linux下用户有两种: 超级用户(root).普通用户. 超级用户:具有最高权限,可以在 ...

  2. 【Linux】Linux权限管理 —— shell运行原理 | 权限 | 目录权限 | 粘滞位 | 权限掩码umask

    Linux权限及相关指令 1. shell命令以及运行原理 2. Linux权限管理 2.1 权限相关概念 2.1.1 用户分类 2.1.2 如何用户切换 2.2 权限的两要素 2.2.1 人 2.2 ...

  3. 通用权限管理设计 之 数据权限

    阅读目录 前言 初步分析 通用查询机制 数据权限规则 实际应用 结语 前言 前一篇文章<通用权限管理设计 之 数据库设计方案>介绍了[主体]- [领域] - [权限]( who.what. ...

  4. (转)通用权限管理设计 之 数据权限

    转自:leo's Space http://www.cnblogs.com/leoxie2011/archive/2012/03/20/2408542.html 阅读目录 前言 初步分析 通用查询机制 ...

  5. 一步一步Asp.Net MVC系列_权限管理总结(附MVC权限管理系统源码)

    TZHSWEET:请大家多多反馈问题,我已经在修改中了,已更新版本...... 如果大家遇到数据库附加问题,EF连接字符串问题,请自行配置,如果有bug反馈可以私聊,我的qq:409180955. 项 ...

  6. Django 权限管理-后台根据用户权限动态生成菜单

    Django权限管理 实现目标: 1.管理用户,添加角色,用户关联角色 2.添加权限.角色关联权限 3.添加动作.权限关联动作 4.添加菜单.权限关联菜单 实现动态生成用户权限菜单(可设置多级菜单嵌套 ...

  7. mysql-front权限管理_mysql 用户及权限管理 小结

    MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL 命令行模式下输入如下命 ...

  8. mysql用户及权限管理_MySQL 用户及权限管理

    1.mysql用户的定义 在mysql中,用户由用户名和主机域组成的. 1.1 用户名的写法 mysql> create user test1@'localhost'; 注意:用户名不要以数字. ...

  9. android 跳转权限管理的代码,Android权限管理

    Android权限管理 说明 在targetSdkVersion的值为23或者更高,就要进行权限管理,否则如果运行在Android6.0或以上的设备会没有相应权限而导致崩溃 请求权限后,在onRequ ...

  10. java 权限管理与用户角色权限设计

    实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台 ...

最新文章

  1. ubuntu 18.04 添加快快捷方式
  2. MySQL5.7多源复制的实验
  3. 笔记:seafile 7.x 安装和部署摘要
  4. 默认文献工具_如何在浩瀚的Pubmed中快速找到自己需要的文献?分享一个小工具!...
  5. TensorFlow DCNN
  6. Prepared statement needs to be re-prepare
  7. 关于线程的停止、挂起、退出(修改)
  8. 对象的序列化与反序列化Demo
  9. linux mysql 主从数据库_Linux下MySQL数据库主从同步配置
  10. 数字图像处理与Python实现-边缘检测-Prewitt算子边缘检测
  11. Python 实现自动刷抖音,解放双手了
  12. Linux常用命令、相关软件安装及项目部署
  13. Spring Boot-配置
  14. java 卡牌游戏抽奖。
  15. 爬虫技术(05)神箭手爬虫回调函数
  16. Ansible剧本示例
  17. 在Typora路上愈走愈远,几乎涵盖所有入门攻略和常见问题以及typora继续探索~
  18. 不要把精力消耗在别人规定的规则和框架下
  19. 使用H-lua框架制作魔兽争霸地图(1-准备阶段)
  20. 手机扫二维码登录是怎么实现的?

热门文章

  1. Java中UDP协议的基本原理和简单用法
  2. 年龄计算、工作表合并、高级筛选(三)
  3. Xah Lee Web 李杀网
  4. 准备重新回归信息安全产业
  5. sql语句练习(一)
  6. 31/100. Palindromic Substrings
  7. Android应用中,去掉Activity标题栏以及状态栏
  8. 调用系统函数向进程发信号core
  9. 机器翻译 - 日期翻译
  10. MySQL之锁、事务、优化、OLAP、OLTP