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 ~]#
网友评论