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)
SilencePavilionSilencePavilion
上一篇 2016-08-04
下一篇 2016-08-04

相关推荐

  • RAID介绍及软RAID实现

    RAID RAID:Redundant Arrays of Inexpensive(Independent)Disks1988年由加利福尼亚大学伯克利分校(University of California-Berkeley)“A Case for Redundant Arrays of Inexpensive Disks”。多个磁盘合成一个“阵列”来提供更好…

    Linux干货 2016-09-02
  • 08.02 笔记总结

    1. newgrp 用来临时切换主组。    root 切换, 不需要组密码。    而普通用户切换是需要组密码的。    newgrp 组名  用来切换当前用户的组信息 2. pwunconv     //  将密码的密文复制到/etc/passw…

    Linux干货 2016-08-08
  • 第四周作业

    Linux系统文件管理使用案例 1、 复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 首先,利用cp命令将/etc/skel目录复制为/home/tuser1: [root@localhost ~]# cp -r /etc/skel /home/tuser1 随后通过chmo…

    Linux干货 2018-03-24
  • linux文件系统(ext2\ext3\ext4,xfs,btrfs…)的介绍[转载]

    ext2\ext3\ext4,xfs,btrfs 都是针对服务器系统越来越高效实用的日志文件系统 日志文件系统:    日志文件系统是一种即使在断电或者是操作系统崩溃的情况下保证文件系统一致性的途径。XFS对文件系统元数据提供了日志支持。当文件系统更新时,元数据会在实际的磁盘块被更新之前顺序写入日志。XFS的日志被保存在磁盘块的…

    Linux干货 2017-01-31
  • 网络班22期+第二周作业练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示? Linux上文件管理类命令常用的有:pwd、ls、cd、cp、touch、mv、rm、rmdir 1)pwd:显示当前工作目录 2)ls:列出指定目录下的内容 常用的选项有: -a:列出目录中的所有文件,包括隐藏文件 -A:显示除.和..之外的所有文件 -l,相当于–long,显示…

    Linux干货 2016-08-29
  • 如何在Linux系统上获取命令的帮助信息

    如何获取命令帮助信息:    1、内建命令可以通过help COMMAND    2、外部命令可以通过man手册获取帮助,COMMAND –help man命令的分段机制:      1-8:        …

    Linux干货 2016-10-30