基础篇

作者: 柒月的天空 | 来源:发表于2018-09-17 21:44 被阅读0次

    Linux学习

    一、特殊权限set_uid、set_gid、stick_bit
    二、软链接文件
    三、硬连接文件 
    

    一、特殊权限set_uid、set_gid、stick_bit

    1、set_uid该权限针对二进制可执行文件,是文件在执行阶段具有文件所有者的权限。set_uid可以使普通用户临时拥有该命令所有者的功能(root权限)。

    a、Linux所有密码都存放在/etc/shadow
    [root@01 ~]# ls -l /usr/bin/passwd 
    -rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd                            //rwsr-xr-x         4755
    [root@01 ~]# ls -ld /tmp/
    drwxrwxrwt. 15 root root 4096 Sep 17 07:33 /tmp/                                      //rwxrwxrwt         1777
    
    b、第一位数字可以是0、1(--t)、2(-s-)、3(-st)、4(s--)、5(s-t)、6(ss-)、7(sst)
    [admin@01 ~]$ ls /root
    ls: cannot open directory /root: Permission denied
    [admin@01 ~]$ ls -ld /root/
    dr-xr-x---. 8 root root 267 Sep 16 02:34 /root/
    [root@01 ~]# chmod u+s /usr/bin/ls                                //赋予/usr/bin/ls set_uid权限
    [root@01 ~]# ls -ld /usr/bin/ls
    -rwsr-xr-x. 1 root root 117656 Nov  5  2016 /usr/bin/ls
    [root@01 ~]# 
    [admin@01 ~]$ ls /root/
    11.txt  12345  1.txt  2  2.txt  3  4  66  anaconda-ks.cfg  passwd
    [admin@01 ~]$ 
    
    c、大s表示没有x权限,但是不影响在普通用户执行,chmod u+x 可以把大s变成小s。
    [root@01 ~]# chmod u=rws /usr/bin/ls
    [root@01 ~]# ls -l /usr/bin/ls
    -rwSr-xr-x. 1 root root 117656 Nov  5  2016 /usr/bin/ls
    [root@01 ~]# chmod u+x /usr/bin/ls
    [root@01 ~]# ls -l /usr/bin/ls
    -rwsr-xr-x. 1 root root 117656 Nov  5  2016 /usr/bin/ls
    [root@01 ~]# 
    

    2、set_gid该权限可以作用在二进制可执行文件上(和set_uid功能相同),也可以作用在目录上,使文件在执行阶段具有文件所属组的权限。目录被设置该权限后,具有继承作用。

    a、set_gid和set_uid类似,set_uid是针对user的,而set_gid是针对group的;set_gid可以作用在目录上;
    [root@01 ~]# chomd g+s /usr/bin/ls
    [root@01 ~]# ls -l /usr/bin/ls
    -rwxr-sr-x. 1 root root 117656 Nov  5  2016 /usr/bin/ls
    
    b、当目录具有s权限时,再在这个目录下面创建子目录及子文件都会被继承。
    [root@01 ~]# mkdir 666
    [root@01 ~]# ls -ld 666
    drwxr-xr-x 2 root root 6 Sep 17 08:53 666
    [root@01 ~]# chmod g+s 666
    [root@01 ~]# ls -ld
    dr-xr-x---. 10 root root 4096 Sep 17 08:53 .
    [root@01 ~]# chown :admin 666
    [root@01 ~]# ls -ld 666
    drwxr-sr-x 2 root admin 6 Sep 17 08:53 666
    [root@01 ~]# cd 666
    [root@01 666]# touch 12.txt
    [root@01 666]# mkdir 777
    [root@01 666]# ls -ld
    drwxr-sr-x 3 root admin 31 Sep 17 08:54 .
    [root@01 666]# ls -l
    total 0
    -rw-r--r-- 1 root admin 0 Sep 17 08:54 12.txt
    drwxr-sr-x 2 root admin 6 Sep 17 08:54 777
    [root@01 666]# cd
    [root@01 ~]# chmod g-s 666
    [root@01 ~]# ls -ld 666
    drwxr-xr-x 3 root admin 31 Sep 17 08:54 666
    [root@01 ~]# cd 666
    [root@01 666]# mkdir 888
    [root@01 666]# touch 888.txt
    [root@01 666]# ls -l
    total 0
    -rw-r--r-- 1 root admin 0 Sep 17 08:54 12.txt
    drwxr-sr-x 2 root admin 6 Sep 17 08:54 777
    drwxr-xr-x 2 root root  6 Sep 17 08:54 888
    -rw-r--r-- 1 root root  0 Sep 17 08:55 888.txt
    [root@01 666]# 
    

    3、sticky_bit防删除位,文件是否可以被某个用户删除,主要取决于该文件所在的目录是否对该用户具有写权限。(如果没有写权限就不能被删除)。

    a、防删除位(root用户除外)可编辑,t权限;谁的文件谁做主
    [root@01 ~]# ls -ld /tmp/
    drwxrwxrwt. 15 root root 4096 Sep 17 08:24 /tmp/                //t权限
    [root@01 ~]# 
    [admin@01 ~]$ mkdir /home/admin/123
    [admin@01 ~]$ ls
    123
    [admin@01 ~]$ chmod o+t /home/admin/123/
    [admin@01 ~]$ ls -ld /home/admin/123/
    drwxrwxr-t 2 admin admin 6 Sep 17 09:00 /home/admin/123/
    
    
    [root@01 ~]# su - user1
    [user1@01 ~]$ 
    [user1@01 ~]$ 
    [user1@01 ~]$ rm -rf /home/admin/123
    rm: cannot remove ‘/home/admin/123’: Permission denied
    [user1@01 ~]$ 
    
    [root@01 ~]# rm -rf /home/admin/123/
    
    
    [admin@01 ~]$ ls -ld /home/admin/
    drwx------ 2 admin admin 62 Sep 17 09:03 /home/admin/
    [admin@01 ~]$ ls
    [admin@01 ~]$ 
    
    b、目录下的子目录或子文件是否能删除是由其父级目录决定

    二、软链接文件

    1、类似Windows的快捷方式;软连接可以节省空间。

    [root@01 ~]# ll /bin/
    lrwxrwxrwx. 1 root root         8 Sep 11 16:47 dnsdomainname -> hostname
    lrwxrwxrwx. 1 root root         8 Sep 11 16:47 domainname -> hostname
    

    2、ln -s 命令创建软连接;ln -s 源文件 软连接文件;软连接可以连接文件、连接目录及跨分区做软连接。做软连接尽量使用绝对路径;相对路径下软连接只在当前目录下,如果源文件或者软连接文件被移动,则软连接失效。红色表示软连接失效;df -h 查看磁盘空间。

    [root@01 ~]# ln -s /tmp/yum.log  /root/12345/123.log
    [root@01 ~]# ls -l /root/12345/
    total 0
    lrwxrwxrwx 1 root root 12 Sep 17 09:23 123.log -> /tmp/yum.log
    [root@01 ~]# 
    

    三、硬链接文件

    1、inode号是硬链接的关键;硬链接不支持对目录,只支持文件做硬链接但不能跨分区,因为每个分区下都有一套自己的inode。

    [root@01 ~]# ln 12345/ 666
    ln: ‘12345/’: hard link not allowed for directory
    [root@01 ~]# 
    

    2、硬链接的源文件和硬链接文件的inode号相同,文件大小相同(不影响文件空间)

    [root@01 ~]# ln 12.txt  23.txt
    34008354 -rw-r--r--  2 root  root   5568 Sep 17 09:34 12.txt   
    34008354 -rw-r--r--  2 root  root   5568 Sep 17 09:34 23.txt                     // inode号相同,大小相同
    

    3、特性:创建一个文件和另一个文件的inode号相同,则两个文件为相互硬链接文件;硬链接如果源文件丢失后,连接文件不受任何影响,文件则放在inode里(硬链接是一个文件的皮,所有的皮都指向同一个inode);硬链接不能跨分区。

    [root@01 ~]# ls -li
    34008354 -rw-r--r--  2 root  root   5568 Sep 17 09:34 12.txt
    34008354 -rw-r--r--  2 root  root   5568 Sep 17 09:34 23.txt
    [root@01 ~]# rm -rf 12.txt 
    [root@01 ~]# ls -li
    34008354 -rw-r--r--  1 root  root   5568 Sep 17 09:34 23.txt
    [root@01 ~]# 
    [root@01 ~]# ls -i /boot/
        72 config-3.10.0-693.el7.x86_64      77 initramfs-0-rescue-e72a6cf0e6444c778b426fbb78c4307d.img                  73 symvers-3.10.0-693.el7.x86_64.gz
        67 efi                               76 initramfs-3.10.0-693.el7.x86_64.img                          71 System.map-3.10.0-693.el7.x86_64
        68 grub                              79 initramfs-3.10.0-693.el7.x86_64kdump.img                     78 vmlinuz-0-        rescue-e72a6cf0e6444c778b426fbb78c4307d
     393280 grub2                             75 initrd-plymouth.img                                          74 vmlinuz-3.10.0-    693.el7.x86_64
    [root@01 ~]# ls /boot/initrd-plymouth.img /tmp/12.img
    ls: cannot access /tmp/12.img: No such file or directory
    /boot/initrd-plymouth.img
    [root@01 ~]# 
    

    相关文章

      网友评论

          本文标题:基础篇

          本文链接:https://www.haomeiwen.com/subject/sdhdnftx.html