第六章、理解linux文件权限

来源:互联网 发布:守望先锋鼠标宏编程 编辑:程序博客网 时间:2024/06/13 23:37
-----------Linux的安全性-------------
  linux安全系统的核心是用户账户,用户对系统上对象的访问权限取决于他们登陆系统时用的账户。
    1、/etc/passwd:Linux系统使用专门/etc/passwd来将用户的登陆名匹配到对应的UID值.root用户账户是Linux系统的管理员,通常分配给它的UID是0.
       Linux系统会为各种各样功能创建不同的用户账户,这些账户不是真的用户,是系统上运行各种服务进程访问资源用的特殊账户(所有运行在后台的服务都需要用一个系统用户账户登陆到Linux系统上)。
       Linux为系统账户预留了500一下的UID值,为普通用户创建账户时,UID一般都是500以上。
    2、/etc/shadow:保存用户密码
    3、添加新的用户工具是useradd:一些发行版本的Linux会把用户和用户组工具放到/usr/sbin/目录下,但是可能不在path路径下,只需要将这个路径加到path路径下就可以了。
       useradd -D:查看Linux系统默认值(表示如果在创建新用户的时候如果不在命令行指定参数的话,useradd就用如下默认值)。例如:
         [root@localhost ~]# useradd -D
         GROUP=100                  //表示新加的用户将会加到GID为100的公共组下
         HOME=/home                 //新用户的HOME目录将会放到/home下
         INACTIVE=-1                //新用户的密码过期后不会被禁用
         EXPIRE=                    //新用户未被设置密码过期
         SHELL=/bin/bash            //新用户账户的bash shell作为默认shell
         SKEL=/etc/skel             //系统会将/etc/skel目录下的内容复制到用户的home目录下
         CREATE_MAIL_SPOOL=yes      //系统为该用户账户在mail目录下创建一个用户接收邮件的文件
         /etc/skel/是管理员创建的一份默认的HOME目录配置,
       useradd -m test :表示创建一个test用户。默认useradd不会自动创建home目录,加上-m的参数就会创建新的home目录。例如:
         [root@localhost ~]# useradd -m test
         [root@localhost ~]# ls -al /home/test
         总用量 12
         drwx------. 2 test test  62 11月  6 18:09 .
         drwxr-xr-x. 3 root root  18 11月  6 18:09 ..
         -rw-r--r--. 1 test test  18 8月   3 2016 .bash_logout
         -rw-r--r--. 1 test test 193 8月   3 2016 .bash_profile
         -rw-r--r--. 1 test test 231 8月   3 2016 .bashrc
       比较有用的useradd参数:
       -c comment:为用户添加备注
       -d home_dir:为用户主目录指定一个目录名字
       -g initial_group:指定用户登陆租的GID或是组名
       -m:创建用户的HOME目录
       -p passwd:为账户指定密码
       -u UID:为账户指定一个唯一的UID
      useradd -D -s /bin/tsch:更改默认的登陆shell
      比较有用的参数:
       -b default_home:更改默认的创建用户HOME目录的位置
       -e expiaration_date:默认创建的新账户过期日期
       -f inaction:更改新用户从密码过期到账户禁用的天数
       -g group:更改默认的组名或是GID
       -s shell:默认的登陆shell
    4、删除用户的工具是userdel.默认情况下,userdel会只删除/etc/passwd文件中的用户信息,而不会删除系统中属于该用户的的任何文件。
       如果加上-r参数,会删除该用户的HOME目录和mail目录,其他目录的文件还是存在。
    5、修改用户的工具是usermod:
      -l:用来修改账户的登录名
      -L:用来锁定用户
      -p:用来修改用户密码
      -U:用来解锁用户
    6、修改密码工具passwd或chpasswd:改变自己的密码
-------------------使用Linux组---------------
  Linux用另外一个概念(组),Linux运行一组用户共享资源。组权限允许多个用户共享一组共有的权限来访问系统上的对象,比如文件、目录或是设备。每个组也有一个唯一的GID。
  /etc/group:存放系统上每个组的信息。
  创建新组的工具是groupadd,例如:
    [root@localhost ~]# groupadd shared     //创建shared这个组。
    [root@localhost ~]# useradd -m test1
    [root@localhost ~]# usermod -G shared test1
    [root@localhost ~]# tailf /etc/group
      ssh_keys:x:996:
      dip:x:40:
      tss:x:59:
      sshd:x:74:
      postdrop:x:90:
      postfix:x:89:
      chrony:x:995:
      test:x:1000:
      shared:x:1001:test,test1        //test和test1用户属于shared组
      test1:x:1002:
   修改组工具是groupmod:
   -g:修改已有组的GID
   -n:修改已有租的名字
   例如:[root@localhost ~]# groupmod -n sharing shared
    [root@localhost ~]# tail /etc/group
    ssh_keys:x:996:
    dip:x:40:
    tss:x:59:
    sshd:x:74:
    postdrop:x:90:
    postfix:x:89:
    chrony:x:995:
    test:x:1000:
    test1:x:1002:
    sharing:x:1001:test,test1
    [root@localhost ~]# groupmod -g 1005 sharing
    [root@localhost ~]# tail -3 /etc/group
    test:x:1000:
    test1:x:1002:
    sharing:x:1005:test,test1
------------------理解文件权限---------------------
   命令ls -l的输出中,例如:
   [root@localhost /]# cd dev
   [root@localhost dev]# ls -l
   总用量 0
   crw-rw----. 1 root video    10, 175 11月  3 17:48 agpgart
   crw-------. 1 root root     10, 235 11月  3 17:48 autofs
   drwxr-xr-x. 2 root root         180 11月  3 17:48 block
   drwxr-xr-x. 2 root root          80 11月  3 17:48 bsg
   crw-------. 1 root root     10, 234 11月  3 17:48 btrfs-control
   drwxr-xr-x. 3 root root          60 11月  3 17:48 bus
   第一个字段描述的是文件和目录权限的码:
   -:代表是文件
   d:代表是目录
   l:代表是链接
   c:代表字符型设备
   n:代表网络设备
   之后有三组字符码,标识三重访问权限,分别有对象的属主、属组、系统其他用户的权限:
   r:代表文件可读
   w:代表文件可写
   x:代表未见可执行
   -:表示没有某种权限
   例如倒数第一条记录标识:d表示是一个目录,rwx表示属主的权限是rwx,r-x表示属组的权限是r-x,r-x标识其他用户权限是r-x
  
   umask工具用来显示和设置权限,umask用8进制来标识
   ---:0
   --x:1
   -w-:2
   -wx:3
   r--:4
   r-x:5
   rw-:6
   rwx:7
   例如:
   [root@localhost 小潘的学习]# cd umask命令/
   [root@localhost umask命令]# umask
   0022
   [root@localhost umask命令]# touch file.txt
   [root@localhost umask命令]# ls -l
   总用量 0
   -rw-r--r--. 1 root root 0 11月  6 19:05 file.txt
   [root@localhost umask命令]# umask 026
   [root@localhost umask命令]# touch file1.txt
   [root@localhost umask命令]# ls -l
   总用量 0
   -rw-r-----. 1 root root 0 11月  6 19:06 file1.txt
   -rw-r--r--. 1 root root 0 11月  6 19:05 file.txt
   umadk是一个掩码,创建文件的时候会用全权限减去umask的值,对于文件的全权限是666,对于目录的全权限是777.上面例子中666-026=640.所以创建出来的file1的权限是rw-r-----
------------------------改变安全性设置-----------------
   改变权限:chmod options mode file,直接赋值的是八进制数,例如:
   [root@localhost umask命令]# chmod 666 file1.txt
   [root@localhost umask命令]# ls -l
   总用量 0
   -rw-rw-rw-. 1 root root 0 11月  6 19:06 file1.txt
   -rw-r--r--. 1 root root 0 11月  6 19:05 file.txt
   改变所属关系: chown options owner[.group] file,例如:
   [root@localhost umask命令]# chown test.sharing file1.txt
   [root@localhost umask命令]# ls -l
   总用量 0
   -rw-rw-rw-. 1 test sharing 0 11月  6 19:06 file1.txt
   -rw-r--r--. 1 root root    0 11月  6 19:05 file.txt
--------------------共享文件-----------------------
   Linux为每个文件和目录存储了3个额外的信息位:
   设置用户ID(SUID):当文件被用户使用时,程序会以文件属主的权限运行。
   设置组ID(SGID):对文件来说,程序会以文件属组的权限运行;对于目录来说,目录中创建的新文件会以目录的默认属组作为默认属组。
   粘着位:进程结束后文件还会在内存中。
   0:所有为都清0
   1:粘着位置位
   2:SGID位置位
   3:SGID位和粘着位置位
   4:SUID位置位
   5:SUID为和粘着位置位
   6:SUID和SGID置位
   7:所有位置位
   要创建一个共享目录,使用目录的新文件都沿用目录属组,例如:
    [root@localhost umask命令]# mkdir testdir                //创建目录
    [root@localhost umask命令]# ls -l
    总用量 0
    drwxr-xr-x. 2 root root 6 11月  6 19:42 testdir
    [root@localhost umask命令]# chgrp sharing testdir       //改变目录的组属性,将目录的默认属组改为含有所有需要共享文件用户的组
    [root@localhost umask命令]# ls -l
    总用量 0
    drwxr-xr-x. 2 root sharing 6 11月  6 19:42 testdir
    [root@localhost umask命令]# chmod g+s testdir         //将目录的SGID位置位
    [root@localhost umask命令]# ls -l
    总用量 0
    drwxr-sr-x. 2 root sharing 6 11月  6 19:42 testdir
    [root@localhost umask命令]# umask 002
    [root@localhost umask命令]# cd testdir
    [root@localhost testdir]# touch test.txt
    [root@localhost testdir]# ls -l
    总用量 0
    -rw-rw-r--. 1 root sharing 0 11月  6 19:44 test.txt

原创粉丝点击