14 用户组和权限管理4

14 用户组和权限管理4

一、杂项知识整理

1、groups 查看用户所属组列表

[user1@localhost ~]$ groups
user3 user1

2、文件属性:-rw-r–r–. 1 root root 0 8月   3 07:56 cgroup.clone_children

             权限 引用计数 所有者 所属组 大小 创建时间 文件名

    r:可使用文件查看类工具获取其内容

    w:可修改其内容

    x:可以把此文件提为一个进程

目录属性:r:查看目录内容,列表,ls

    x:cd,读文件内容

    w:对文件修改、删除、创建。单独有w无法实现,需要配合x

    X:chmod -R a+X 加x权限至目录而不给文件,若文件本身已经有任一x权限,则此文件能够全部授权,a-X时,目录,文件都取消。用数字设置权限不支持X,例如:

[root@localhost user.dir]# chmod -R a+X aaaa/
[root@localhost user.dir]# ll
总用量 4
-rw-r--r--. 1 root root    0 8月   3 08:51 a
-rw-r--r--. 1 root root    0 8月   3 08:51 aa
drwxr-xr-x. 4 root root 4096 8月   3 13:16 aaaa
[root@localhost user.dir]# cd aaaa/
[root@localhost aaaa]# ll
总用量 8
-rw-r--r--. 1 root root    0 8月   3 13:12 a
-rw-r--r--. 1 root root    0 8月   3 13:12 aa
-rw-r--r--. 1 root root    0 8月   3 13:13 aaa
drwxr-xr-x. 2 root root 4096 8月   3 13:14 aaaaaa
-rw-r--r--. 1 root root    0 8月   3 13:16 abc
drwxr-xr-x. 2 root root 4096 8月   3 13:16 abcd
[root@localhost aaaa]# cd ..
[root@localhost user.dir]# chmod -R a+x aaaa/
[root@localhost user.dir]# ll
总用量 4
-rw-r--r--. 1 root root    0 8月   3 08:51 a
-rw-r--r--. 1 root root    0 8月   3 08:51 aa
drwxr-xr-x. 4 root root 4096 8月   3 13:16 aaaa
[root@localhost user.dir]# cd aaaa/
[root@localhost aaaa]# ll
总用量 8
-rwxr-xr-x. 1 root root    0 8月   3 13:12 a
-rwxr-xr-x. 1 root root    0 8月   3 13:12 aa
-rwxr-xr-x. 1 root root    0 8月   3 13:13 aaa
drwxr-xr-x. 2 root root 4096 8月   3 13:14 aaaaaa
-rwxr-xr-x. 1 root root    0 8月   3 13:16 abc
drwxr-xr-x. 2 root root 4096 8月   3 13:16 abcd
[root@localhost aaaa]# cd ..
[root@localhost user.dir]# chmod -R a-X aaaa/
[root@localhost user.dir]# ll
总用量 4
-rw-r--r--. 1 root root    0 8月   3 08:51 a
-rw-r--r--. 1 root root    0 8月   3 08:51 aa
drw-r--r--. 4 root root 4096 8月   3 13:16 aaaa
[root@localhost user.dir]# cd aaaa/
[root@localhost aaaa]# ll
总用量 8
-rw-r--r--. 1 root root    0 8月   3 13:12 a
-rw-r--r--. 1 root root    0 8月   3 13:12 aa
-rw-r--r--. 1 root root    0 8月   3 13:13 aaa
drw-r--r--. 2 root root 4096 8月   3 13:14 aaaaaa
-rw-r--r--. 1 root root    0 8月   3 13:16 abc
drw-r--r--. 2 root root 4096 8月   3 13:16 abcd

3、给文件更改权限的几种方式:文件权限与文件系统相关

    chmod u=x file   

    chmod ug=x file  不管原本属主属组是什么权限,都变为只有x权限

    chmod u+x file

    chmod ug+x file  在原本的基础上增加x权限

    chmod 777 file   改变为777权限

    chmod +r/x file  所有权限增加r和x

    chmod +w file    只对所有者有效,增加w权限

4、关于umask:

    umask:反掩码:从最大权限中屏蔽相应的权限位,从而得出默认权限:对于文件:

110 110 110     6 6 6 创建文件最大权限:为了防止文件x权限而为666

001 011 111     1 3 7 如果反掩码为137,根据屏蔽原理,反掩码0不屏蔽,1屏蔽,得出结果为:

110 100 000     6 4 0 此结果正确

    因此可以理解为:目录:默认权限=最大权限-umask

    文件:默认权限=最大权限-umask,如果出现奇数权限,则奇数那一位加1,偶数为不变。

配置文件位于/etc/.bashrc:更改umask值:umask ###暂时更改,更改配置文件永久更改。

5、特殊权限:SUID 、SGID、 Sticky BIT:

SUID:对可执行的二进制程序;有此特殊权限的程序,当运行为进程时,进程属主不是发起者而是二进制程序自己的属主;例如passwd;

chmod u+/-s FILE   如果本来有执行权限,显示为s,没有则为S

SGID:可以对目录和二进制程序。当对目录时,当目录有写权限时,那么所有用户在目录中新建文件或目录时,新文件属组不是用户的基本组而是此目录的属组。

chmod g+/-s FILE   如果本来有执行权限,显示为s,没有则为S

Sticky BIT:对于属组或者全局可写的目录,组内的所有用户或系统上的所有用户在此目录中都能创建文件或者删除文件,有sticky权限后,每个用户能创建新文件,但是能删除自己的文件。此权限设置在文件上没有意义。

chmod o+/-t FILE    如果本来有执行权限,显示为t,没有则为T:系统的/tmp和/var/tmp默认有。

6、特殊权限的设置方法之二:chmod #### FILE 三个特殊权限自成一位8进制数,即:

    1### sticky权限  2### sgid权限  7### 三个特殊权限都设置。

7、文件特殊属性:chattr :

    +/-i 有i属性后不能删除改名更改等

    +/-a 有a属性后只能追加内容,不能删除等

    lsatrr 显示文件特殊属性

[root@localhost testdir]# chattr +a  aa
[root@localhost testdir]# lsattr
---------------- ./string.txt
----------I----- ./shelltest
---------------- ./copytest
---------------- ./userinfo
---------------- ./user
---------------- ./lost+found
---------------- ./user.dir
-----a---------- ./aa
-----a---------- ./a
---------------- ./userpasswd
[root@localhost testdir]# chattr +i a
[root@localhost testdir]# chattr +i aa
[root@localhost testdir]# lsattr
---------------- ./string.txt
----------I----- ./shelltest
---------------- ./copytest
---------------- ./userinfo
---------------- ./user
---------------- ./lost+found
---------------- ./user.dir
----ia---------- ./aa
----ia---------- ./a
---------------- ./userpasswd
[root@localhost testdir]# cd aa
[root@localhost aa]# touch aa
touch: 无法创建"aa": 权限不够

+ :在原有参数设定基础上,追加参数。
– :在原有参数设定基础上,移除参数。
= :更新为指定参数设定。
A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。
S:硬盘I/O同步选项,功能类似sync。
a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
d:即no dump,设定文件不能成为dump程序的备份目标。
i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
s:保密性地删除文件或目录,即硬盘空间被全部收回。
u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。
各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。

I:系统自动生成的,用于文件夹的哈希树索引?。


二、命令详解及事例

1、umask命令:

    -S  显示umask的反向权限

[root@localhost ~]# umask -S
u=rwx,g=rx,o=rx

更改umask的几种方法:当前进程有效:    

[root@localhost aaaa]# umask u=rw,g=r,o= 
[root@localhost aaaa]# umask
0137
[root@localhost aaaa]# umask 022
[root@localhost aaaa]# umask
0022

永久有效:配置文件:~/.bashrc或者/etc/bashrc,添加一行umask ###(都没等于号

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
       umask 002
    else
       umask 022
    fi

命令:umask -p >> .bashrc 因为umask -p就是显示umask 022,输出可调用,相当于写入文件。

2、chown命令:设置文件的属主属组:root才能执行;

    -R 递归设置

    –reference=RFILE FILE 将FILE的属性设置为与RFILE相同 

    chown USER:  FILE  文件属组属主都会改变

              :GROUP  只改变属组

root@localhost ~]# chown user1: aaa.txt 
[root@localhost ~]# ll
总用量 20
-rw-r--r--. 1 root  root    46 7月  29 15:15 aaaaa.txt
-rwxr-xr--. 1 user1 user1   39 7月  29 15:14 aaa.txt
-rw-r--r--. 1 root  root    54 7月  29 15:16 abc.txt
-rw-------. 1 root  root  1373 7月  19 05:02 anaconda-ks.cfg
drwxr-xr-x. 3 root  root    21 7月  28 21:25 mypython
-rw-r--r--. 1 root  root   319 8月   1 13:57 vimrc
[root@localhost ~]# chown :user2  aaa.txt 
[root@localhost ~]# ll
总用量 20
-rw-r--r--. 1 root  root    46 7月  29 15:15 aaaaa.txt
-rwxr-xr--. 1 user1 user2   39 7月  29 15:14 aaa.txt
-rw-r--r--. 1 root  root    54 7月  29 15:16 abc.txt
-rw-------. 1 root  root  1373 7月  19 05:02 anaconda-ks.cfg
drwxr-xr-x. 3 root  root    21 7月  28 21:25 mypython
-rw-r--r--. 1 root  root   319 8月   1 13:57 vimrc

3、groupmems命令:更改和查看组成员:

    -g 更改指定组,root权限,即要改其他组时加-g GROUPNAME

[root@localhost ~]# groupmems -g user2 -a user5
[root@localhost ~]# groupmems -g user2 -l
user5

    -a 指定用户加入组

    -d 从组中删除用户

    -p 从组中清除所有成员

    -l 显示组成员列表 

[root@localhost ~]# groupmems -l
gentoo 
[root@localhost ~]# groupmems -p 
[root@localhost ~]# groupmems -l
[root@localhost ~]# groupmems -a user3
[root@localhost ~]# groupmems -l
user3 
[root@localhost ~]# groupmems -d user3
[root@localhost ~]# groupmems -l

4、chgrp命令:设置文件的属组信息,root权限;

    -R 递归设置

    -reference=RFILE FILE 将文件的属组设置为与RFILE相同

root@localhost aaaa]# chgrp bin a
[root@localhost aaaa]# ll
总用量 8
-rw-r--r--. 1 root bin     0 8月   3 13:12 a
-rw-r--r--. 1 root root    0 8月   3 13:12 aa

三、课后作业及练习

见作业篇

原创文章,作者:SilencePavilion,如若转载,请注明出处:http://www.178linux.com/27993

(0)
上一篇 2016-08-04 14:41
下一篇 2016-08-04 14:42

相关推荐

  • 计算机和linux基础

    计算机的组成及其功能 计算机硬件主要由5部分组成:运算器 、控制器、存储器、input、output。 但是这和我们平时见到的计算机不一样?我们平时见到的计算机有CPU,内存,硬盘,显示器,鼠标键盘,显卡、主板等。这些东西也都归在以上五类设备中。下面我们简单介绍一下计算机这五个组成部分。 运算器: 运算器是计算机中做运算的部分,可以执行各种指令,加减乘除,与…

    Linux干货 2016-09-16
  • LINUX下用户管理命令简述

    LINUX下用户管理命令简述 添加用户并设置密码 useradd [用户名] 创建用户 [root@localhost ~]# useradd jack [root@localhost ~]# cat /etc/shadow | grep jack jack:!!:17257:0:99999:7::: passwd [用户名] 设置密码 [root@loca…

    Linux干货 2017-04-05
  • Linux文件管理类命令

    文件管理工具:cp,mv,rm cp命令:copy,用于实现复制功能      源文件 —-> 目标文件        cp [OPTION]… [-T] SOURCE DEST   #单源复制        …

    Linux干货 2016-08-22
  • 划分子网例题

    概念:子网划分就是——>将一个大网络(主机ID位多)划分成多个小的网络(主机ID位少) 如何实现呢?!        实现——->网络ID向主机ID借位,网络ID位变多,主机ID位变少 涉及的公式:         &n…

    2017-09-04
  • 也许你根本不会用百度搜索

    搜索引擎可以帮助使用者在Internet上找到特定的信息,但它们同时也会返回大量无关的信息。但是如果多使用一些技巧,你将发现搜索引擎会花尽可能少的时间找到你需要的确切信息。 1.简单查询 这个就是最简单便捷的使用方式,其实也是我们大多数人平时使用百度或者其他搜索引擎的方式。比如你想查培训学校,那么你的第一反应肯定就是在百度里输入【挖掘机】【挖掘机学校】【蓝翔…

    2015-03-02
  • AWK小记

    gawk – pattern scanning and processing language 基本用法:gawk [options] ‘program’ FILE … program: PATTERN{ACTION STATEMENTS} 语句之间用分号分隔 print, printf 选项: -F:指明输入…

    2018-01-16