一、权限管理

  1、ls -l

    rwxrwxrwx

    左三位:定义user(owner)的权限

    中三位:定义group的权限

    右三位:定义other的权限

  1、进程安全上下文

    a、进程对文件的访问权限应用:

      进程的属主与文件的属主是否相同,如果相同,则应用属主权限。

      否则则检查进程的属主是否属于文件的属组,如果是,则应用属组权限;

      否则就只能应用其它other的权限

  2、权限:

    r:read,读

    w:write,写

    x:excute,执行

    a、文件:

      r:可获取文件的数据

      w:可修改文件的数据

      x:可将此文件运行为进程

    b、目录:

      r:可使用ls命令获取其下的所有文件列表:但是不能获取详细信息,比如ls -l

      w:可修改此目录下的文件列表:即创建或删除文件

      x:可cd至此目录中,其可使用ls -l来获取所有文件的详细属性信息

    c、mode:rwxrwxrwx

    d、ownership:user,group

  3、权限组合机制

    ---::000  0

    --x:001  1

    -w-:010  2

    -wx:011  3

    r-- :100  4

    r-x:101  5

    rw-:110  6

    rwx:111  7

  4、练习

    rw-rw-r--:664

    rwxrwxr-x:775

    rwxr-x---:750

    rw-------:600

    rwxr-xr-x:755

二、权限管理命令

  1、chmod命令

    a、我们一共有三类用户:

      u:属主

      g:属组

      o:其它

      a:所有

    b、chmod [OPTION]... MODE[,MODE]... FILE...

      MODE表示法:

        赋权表示法:可以分别表示也可以同时表示

          u=

          g=

          o=

          a=

[root@node1 ~]# ll fstab
-rw-r--r-- root root Dec : fstab
[root@node1 ~]# chmod g=rw fstab
[root@node1 ~]# ll fstab
-rw-rw-r-- root root Dec : fstab
[root@node1 ~]# chmod ug=r fstab
[root@node1 ~]# ll
total
-r--r--r-- root root Dec : fstab
[root@node1 ~]# chmod u=rwx,g=rw,o= fstab
[root@node1 ~]# ll fstab
-rwxrw---- root root Dec : fstab

        授权表示法:直接操作一类用户的一个权限位r,w,x:

          u+,u-

          g+,g-

          a+,a-

[root@node1 ~]# ll fstab
-rwxrw---- root root Dec : fstab
[root@node1 ~]# chmod u-x fstab
[root@node1 ~]# ll fstab
-rw-rw---- root root Dec : fstab
[root@node1 ~]# chmod o+r fstab
[root@node1 ~]# ll fstab
-rw-rw-r-- root root Dec : fstab
[root@node1 ~]# chmod ug+x fstab
[root@node1 ~]# ll fstab
-rwxrwxr-- root root Dec : fstab
[root@node1 ~]# chmod g-wx fstab
[root@node1 ~]# ll fstab
-rwxr--r-- root root Dec : fstab
[root@node1 ~]# chmod +x fstab
[root@node1 ~]# ll fstab
-rwxr-xr-x root root Dec : fstab
[root@node1 ~]# chmod -x fstab
[root@node1 ~]# ll fstab
-rw-r--r-- root root Dec : fstab
[root@node1 ~]# chmod +w fstab #因为全局写是非常危险的因此+w时只会给u加上写权限
[root@node1 ~]# ll fstab
-rw-r--r-- root root Dec : fstab
[root@node1 ~]# chmod u+x,g+w fstab
[root@node1 ~]# ll fstab
-rwxrw-r-- root root Dec : fstab

    c、chmod [OPTION]... OCTAL-MODE FILE...。八进制表示法。

[root@node1 ~]# ll fstab
-rwxrw-r-- root root Dec : fstab
[root@node1 ~]# chmod fstab
[root@node1 ~]# ll fstab
-rw-rw---- root root Dec : fstab

    d、chmod [OPTION]... --reference=RFILE FILE...。引用其它文件权限。

[root@node1 ~]# ll /var/log/messages
-rw------- root root Dec : /var/log/messages
[root@node1 ~]# chmod --reference=/var/log/messages fstab
[root@node1 ~]# ll fstab
-rw------- root root Dec : fstab

    e、参数

      -R,--recursive:递归修改。一般用于赋权表示法。

  2、从属关系管理命令:chown

    a、chown [OPTION]... [OWNER][:[GROUP]] FILE...

      -R:递归修改

[root@node1 ~]# ls -la /tmp/skel/
total
drwxr-xr-x root root Dec : .
drwxrwxrwt. root root Dec : ..
-rw-r--r-- root root Dec : .bash_logout
-rw-r--r-- root root Dec : .bash_profile
-rw-r--r-- root root Dec : .bashrc
[root@node1 ~]# ls -ld /tmp/skel/
drwxr-xr-x root root Dec : /tmp/skel/
[root@node1 ~]# chown -R nova /tmp/skel/
[root@node1 ~]# ls -ld /tmp/skel/
drwxr-xr-x nova root Dec : /tmp/skel/
[root@node1 ~]# ls -la /tmp/skel/
total
drwxr-xr-x nova root Dec : .
drwxrwxrwt. root root Dec : ..
-rw-r--r-- nova root Dec : .bash_logout
-rw-r--r-- nova root Dec : .bash_profile
-rw-r--r-- nova root Dec : .bashrc
[root@node1 ~]# chown -R archlinux:mygrp /tmp/skel/
[root@node1 ~]# ls -ld /tmp/skel/
drwxr-xr-x archlinux mygrp Dec : /tmp/skel/
[root@node1 ~]# ls -la /tmp/skel/
total
drwxr-xr-x archlinux mygrp Dec : .
drwxrwxrwt. root root Dec : ..
-rw-r--r-- archlinux mygrp Dec : .bash_logout
-rw-r--r-- archlinux mygrp Dec : .bash_profile
-rw-r--r-- archlinux mygrp Dec : .bashrc

      我们还可以使用点号来表示

[root@node1 ~]# chown -R root. /tmp/skel/
[root@node1 ~]# ls -ld /tmp/skel/
drwxr-xr-x root root Dec : /tmp/skel/
[root@node1 ~]# ls -la /tmp/skel/
total
drwxr-xr-x root root Dec : .
drwxrwxrwt. root root Dec : ..
-rw-r--r-- root root Dec : .bash_logout
-rw-r--r-- root root Dec : .bash_profile
-rw-r--r-- root root Dec : .bashrc

    b、chown [OPTION]... --reference=RFILE FILE...。参考其它文件或路径的属主属组修改

[root@node1 ~]# ll /tmp/
total
drwx------ moosefs moosefs Dec : moosefs
drwxr-xr-x root root Dec : mytest
drwxr-xr-x root root Dec : skel
drwx------ root root Dec : systemd-private-310789de41c149e295ca734de6eb34ff-vgauthd.service-2RCX6b
drwx------ root root Dec : systemd-private-310789de41c149e295ca734de6eb34ff-vmtoolsd.service-fjAVWv
[root@node1 ~]# chown -R --reference=/tmp/moosefs/ /tmp/skel/
[root@node1 ~]# ls -ld /tmp/skel/
drwxr-xr-x moosefs moosefs Dec : /tmp/skel/
[root@node1 ~]# ls -la /tmp/skel/
total
drwxr-xr-x moosefs moosefs Dec : .
drwxrwxrwt. root root Dec : ..
-rw-r--r-- moosefs moosefs Dec : .bash_logout
-rw-r--r-- moosefs moosefs Dec : .bash_profile
-rw-r--r-- moosefs moosefs Dec : .bashrc

  3、chgrp命令。和chown一样的效果

三、高阶功能

  1、思考:用户对目录有写权限,但对目录下文件没有写权限时,能否修改此文件内容?能否删除此文件?

    答:不能修改此文件内容,但是可以删除此文件,因为对目录有写权限。

[root@node1 ~]# cp /etc/fstab /tmp/mytest/
[root@node1 ~]# ls
anaconda-ks.cfg fstab
[root@node1 ~]# ls -lda /tmp/mytest/
drwxr-xr-x root root Dec : /tmp/mytest/
[root@node1 ~]# chown :mygrp /tmp/mytest/
[root@node1 ~]# ls -ld /tmp/mytest/
drwxr-xr-x root mygrp Dec : /tmp/mytest/
[root@node1 ~]# chmod g+w /tmp/mytest/
[root@node1 ~]# ls -ld /tmp/mytest/
drwxrwxr-x root mygrp Dec : /tmp/mytest/
[root@node1 ~]# id archlinux
uid=(archlinux) gid=(archlinux) groups=(archlinux),(mygrp)
[root@node1 ~]# su - archlinux
Last login: Thu Dec :: CST on pts/
[archlinux@node1 ~]$ cd /tmp/mytest/
[archlinux@node1 mytest]$ ls
fstab
[archlinux@node1 mytest]$ echo wohaoshuai >> fstab
-bash: fstab: Permission denied
[archlinux@node1 mytest]$ rm -rf fstab

  2、umask:文件的权限反向掩码,遮罩码。

    a、普通用户创建的文件默认权限是664,root用户创建的文件默认权限是644。

    b、创建文件时文件权限为:666-umask

      创建目录时目录权限为:777-umask

    c、注意:之所以文件用666去减,表示文件默认不能拥有执行权限,如果减得的结果中有执行权限则需要将其加1。对目录的话没有这个限制。

      umask: 023

        666-023=644

        777-023=754

[root@node1 ~]# umask
[root@node1 ~]# umask [root@node1 ~]# touch wohaoshuai
[root@node1 ~]# ll wohaoshuai
-rw-rw-rw- root root Dec : wohaoshuai
[root@node1 ~]# umask
[root@node1 ~]# mkdir wohaoshuai1
[root@node1 ~]# ls -ld wohaoshuai1/
drwxr-xr-x root root Dec : wohaoshuai1/

    d、umask命令使用(仅对当前shell有效)

      umask:查看当前umask

      umask MASK:设置umask

[root@node1 ~]# umask 

[root@node1 ~]# umask
[root@node1 ~]# umask [root@node1 ~]# touch mytest2
[root@node1 ~]# ll mytest2
-rw-r----- root root Dec : mytest2
[root@node1 ~]# mkdir mytest3
[root@node1 ~]# ll -d mytest3
drwxr-x--- root root Dec : mytest3

  3、练习:完成以下任务

    1、新建系统组mariadb,新建系统用户mariadb,属于mariadb组,要求其没有家目录,且shell为/sbin/nologin:尝试root切换至此用户,查看其命令提示符

    2、新建GID为5000的组wohaoshuai,新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名

    3、新建用户fedora,其家目录为/users/fedora,密码同用户名;

    4、新建用户www,其家目录为/users/www,删除www用户,但保留其家目录

    5、修改用户gentoo和fedora新增附加组wohaoshuai

    6、复制目录/var/log至/tmp目录,修改/tmp/log及其内部的所有文件的属组为wohaoshuai,并让属组对目录本身拥有写权限

  4、install命令:复制文件并且给定属性,install - copy files and set attributes

    a、单源复制

      install [OPTION]... [-T] SOURCE DEST

    b、多源复制
      install [OPTION]... SOURCE... DIRECTORY
      install [OPTION]... -t DIRECTORY SOURCE...
    c、创建目录

      install [OPTION]... -d DIRECTORY...

    d、常用选项

      -m,--mode=MODE:设定目标文件权限,默认为755;

[root@localhost ~]# ll /etc/inittab
-rw-r--r--. root root Apr /etc/inittab
[root@localhost ~]# install /etc/inittab /root/
[root@localhost ~]# ll /root/inittab
-rwxr-xr-x root root Dec : /root/inittab
[root@localhost ~]# install -m  /etc/inittab /root/
[root@localhost ~]# ll /root/inittab
-rw-r----- root root Dec : /root/inittab

      -o,--owner=OWNER:设定目标文件属主

      -g,--group=GROUP:设定目标文件属组

[root@localhost ~]# install -o archlinux -g mygrp -m  /etc/inittab /tmp/
[root@localhost ~]# ll /tmp/inittab
-rw-r----- archlinux mygrp Dec : /tmp/inittab

      -d,创建目录

[root@localhost ~]# install -d hello
[root@localhost ~]# ls -ld hello/
drwxr-xr-x root root Dec : hello/

  5、mktemp命令:创建临时文件create a temporary file or directory

    a、常用命令

[root@localhost ~]# mktemp /tmp/mytmp.XXXX
/tmp/mytmp.bK3U
[root@localhost ~]# mktemp /tmp/mytmp.XXXXX
/tmp/mytmp.XkTnt
[root@localhost ~]# mktemp /tmp/mytmp.XXXXXX
/tmp/mytmp.HwcIYX

    b、常用选项

      -d:创建临时目录

    c、注意:mktemp会将创建的临时文件名直接返回,因此可以直接通过命令引用保存起来

  6、作业:用户及权限管理

    

      

linux学习17 运维核心技能-Linux系统下用户权限管理的更多相关文章

  1. linux学习9 运维基本功-Linux常用基础命令实战应用

    一.文件系统知识回顾 1.Linux文件系统: a.文件名称严格区分字符大小写 b.文件可以使用除/以外任意字符 c.文件名长度不能超过255个字符 d.以.开头的文件为隐藏文件: . :当前目录 . ...

  2. linux学习8 运维基本功-Linux获取命令使用帮助详解

    一.Linux基础知识 1.人机交互界面: a.GUI b.CLI:[login@hostname workdir]# COMMAND 2.命令知识 通用格式:# COMMAND  OPTIONS A ...

  3. Linux入门之运维(1) 系统监控 vmstat top

    vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.这个命令是我查看Linux/Unix最 ...

  4. Linux centos7 日常运维——使用w查看系统负载、vmstat命令、top命令、sar命令、nload命令

    一.使用w查看系统负载 w .uptime查看系统负载,0.00表示1分钟之内负载为0 cat  /proc/cpuinfo查看cpu核数 二.vmstat命令,查看进程.cpu.memory.交换. ...

  5. [Linux系统] (2)用户权限管理

    示例---普通用户之间的文件共享:假设公司有2个项目组,共享同一台服务器. 1.为两个项目组各创建一个用户: useradd leo01 useradd leo02 2.为两个新用户设置密码: pas ...

  6. 云计算:Linux运维核心管理命令详解

    云计算:Linux运维核心管理命令详解 想做好运维工作,人先要学会勤快: 居安而思危,勤记而补拙,方可不断提高: 别人资料不论你用着再如何爽那也是别人的: 自己总结东西是你自身特有的一种思想与理念的展 ...

  7. Linux云自动化运维第五课

    Linux云自动化运维第五课 一.进程定义 进程就是cpu未完成的工作 二.ps命令 ps a ###关于当前环境的所有进程 x ###与当前环境无关的所有进程 f ###显示进程从属关系 e ### ...

  8. 其它综合-运维老鸟分享linux运维发展路线规划

    运维老鸟分享linux运维发展路线规划 linux 运维发展路线常见的就是下面两条路线: 第一条:运维应用-->系统架构-->运维开发-->系统开发 第二条:运维应用-->应用 ...

  9. 老男孩Linux.shell.RHCE运维初中高级50G附解压密码

    学习Linux,好的教程.使学习事半功倍! 老男孩Linux.shell.RHCE运维初中高级 下载地址: http://pan.baidu.com/s/1hsQOb2W 密码: h4hs 解压密码: ...

随机推荐

  1. Remote System Explorer Operation总是运行后台服务,卡死eclipse解决办法

    当你右键编辑控件的id或者其他属性时都会卡很久,发现原来是eclipse后台进程在远程操作,就是右下角显示的“Remote System Explorer Operation”.折腾了半天,在Stac ...

  2. C# Winform 只允许输入数字

    if (!(e.KeyChar >= '0' && e.KeyChar <= '9' || e.KeyChar == '.')) e.Handled = true; if ...

  3. 豆瓣Top250

    """ 爬取豆瓣电影TOP250 - 完整示例代码 """ import codecs import requests from bs4 i ...

  4. 【WEB基础】HTML & CSS 基础入门(10)布局与定位

    块级元素和行内元素 HTML里的元素可以分为块级元素和行内元素两大类:

  5. 2年java,蚂蚁一面,卒

    其实我一个都没答上来.并不是因为我笨,是因为我不会.在大扰的帮助下,现在我会了,求求你再给我一个机会. TreeSet/HashSet 区别 顾名思义,首先是结构上的不同 1.TreeSet背后的结构 ...

  6. 【JVM】G1垃圾收集器深入分析

    一.和CMS对比   G1 CMS 设计原则 首先收集尽可能多的垃圾(Garbage First) 尽可能少而块地执行GC,以停顿时间为目标 垃圾回收时机  启发式算法,在老年代找出具有高收集收益的分 ...

  7. npm err! Unexpected end of JSON input while parsing near解决办法

    npm install时出现npm err! Unexpected end of JSON input while parsing near错误 输入  npm cache clean --fore ...

  8. box-shadow 模糊半径与扩展半径

    关于box-shadow的基本用法参阅CSS3 box-shadow一章节. 此属性用来设置元素的阴影效果,语法结构如下: box-shadow:h-shadow v-shadow blur spre ...

  9. PostgreSql那点事(文件读取写入、命令执行的办法)

    • 2013/07/9 作者: admin PostgreSql那点事(文件读取写入.命令执行的办法) 今天无意发现了个PostgreSQL环境,线上学习了下,一般的数据注射(读写数据库)差异不大,不 ...

  10. android studio学习---快捷键

    快捷键学习  TIPS: 1.异常代码块  或者自定义代码块结构  Ctrl+Alt+T  或者   File | Settings | File and Code Templates When yo ...