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