linux学习(九)set_uid、set_gid、stick_bit、软链接、硬链接
一、set_uid
set_uid其实是一种特殊权限,我们看一个文件:
[root@iZ25lzba47vZ ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. root root Jun /usr/bin/passwd
它的所有者的x权限位被s代替了。那么这个s代表什么意思呢?它代表执行这条命令的普通用户,能暂时拥有这个命令所有者的身份。
举个例子来说,我们可以通过passwd命令来修改密码。我们再来看看密码存放的文件:
[root@iZ25lzba47vZ ~]# ls -l /etc/shadow
---------- root root Mar /etc/shadow
我们发现这个文件的权限为000,那么普通用户是怎么改的它呢?就是这个s权限。普通用户在执行这条命令时,临时有了root的身份。
同样的,我们知道普通用户是不能进入到root用户的家目录的。那么,如果我们给ls命令set_uid,应该可以实现吧。
[root@iZ25lzba47vZ ~]# ls -l /usr/bin/ls
-rwxr-xr-x. root root Jun /usr/bin/ls
[root@iZ25lzba47vZ ~]# chmod u+s /usr/bin/ls
[root@iZ25lzba47vZ ~]# !ls
ls -l /usr/bin/ls
-rwsr-xr-x. root root Jun /usr/bin/ls
[root@iZ25lzba47vZ ~]# su ruanwenwu
[ruanwenwu@iZ25lzba47vZ root]$ ls /root
.ipt Application Document.pdf npm-debug.log ruanwenwu syncwithgit.sh
.cap a.php a.txt iptables.bak oneinstack shellscripts
二、set_gid
set_gid作用在文件时的意义和set_uid基本一样,只是普通用户在执行它时获得的是文件的所属组的身份。
set_gid作用于目录时,目录下新建的文件和目录的组名都会和该目录一致:
[root@iZ25lzba47vZ ~]# chown :ruanwenwu
[root@iZ25lzba47vZ ~]# ls -ld
drw-rwsrw- ruanwenwu ruanwenwu Oct :
[root@iZ25lzba47vZ ~]# touch /.txt
[root@iZ25lzba47vZ ~]# ls -l
total
-rw-r--r-- root ruanwenwu Oct : .txt
drwxr-xr-x ruanwenwu ruanwenwu Oct :
drwxrwxr-- root root Oct :
-rw-rw-r-- root root Oct : .txt
[root@iZ25lzba47vZ ~]#
发现设置了set_gid之后,在1目录下新建的1.txt的所属组变成了ruanwenwu。
三、stick_bit
防删除位。它的作用就是:我的文件你不能删除。但是你可以修改。/tmp/目录就有这个防删除位,在其他用户的可执行权限位的地方。
[root@iZ25lzba47vZ ~]# ls -ld /tmp
drwxrwxrwt. www www Oct : /tmp
[root@iZ25lzba47vZ ~]#
现在我们用ruanwenwu这个用户创建一个文件,然后切换到test用户,看能不能删掉。
[ruanwenwu@iZ25lzba47vZ tmp]$ ls -l ruanwenwu.txt
-rw-rw-r-- ruanwenwu ruanwenwu Oct : ruanwenwu.txt
[ruanwenwu@iZ25lzba47vZ tmp]$ passwd test
passwd: Only root can specify a user name.
[ruanwenwu@iZ25lzba47vZ tmp]$ su root
Password:
[root@iZ25lzba47vZ tmp]# passwd test
Changing password for user test.
New password:
BAD PASSWORD: The password is shorter than characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@iZ25lzba47vZ tmp]# su test
[test@iZ25lzba47vZ tmp]$ rm -rf ruanwenwu.txt
rm: cannot remove ‘ruanwenwu.txt’: Operation not permitted
发现不能删除,现在我们删除掉/tmp/的stick_bit,然后再来试一次:
[test@iZ25lzba47vZ tmp]$ chmod o-t /tmp
chmod: changing permissions of ‘/tmp’: Operation not permitted
[test@iZ25lzba47vZ tmp]$ su root
Password:
[root@iZ25lzba47vZ tmp]# chmod o-t /tmp/
[root@iZ25lzba47vZ tmp]# ls -ld /tmp
drwxrwxrwx. www www Oct : /tmp
[root@iZ25lzba47vZ tmp]# su test
[test@iZ25lzba47vZ tmp]$ rm -rf ruanwenwu.txt
[test@iZ25lzba47vZ tmp]$ ls
Aegis-<Guid(5A2C30A2-A87D-490A--6765EDAD7CBA)>
iZ25lzba47vZ.root.history-timestamp
iZ25lzba47vZ.ruanwenwu.history-timestamp
iZ25lzba47vZ.test.history-timestamp
mysql.sock
systemd-private-39567547dfdf4a37b00906a534c87627-ntpd.service-QxSGFm
发现去掉防删除位之后,test用户可以删除ruanwenwu的文件了。
四、软连接
软链接相当于windows里的快捷方式。他的生成方式:
[root@iZ25lzba47vZ tmp]# ln -s /tmp/a.txt /ccc.txt
[root@iZ25lzba47vZ tmp]# ls -l /ccc.txt
lrwxrwxrwx root root Oct : /ccc.txt -> /tmp/a.txt
软连接的特点是,占用空间小。在生成软连接时,尽量使用绝对路径,这样在移动软连接时,链接就不会失效。
五、硬链接
硬链接和原来的文件占用同一个inode地址:
[root@iZ25lzba47vZ tmp]# ln a.txt c.txt
[root@iZ25lzba47vZ tmp]# ls -l ./
total
srwxr-xr-x root root Oct : Aegis-<Guid(5A2C30A2-A87D-490A--6765EDAD7CBA)>
-rw-rw-r-- test test Oct : a.txt
lrwxrwxrwx test test Oct : b.txt -> a.txt
-rw-rw-r-- test test Oct : c.txt
-rw-r--r-- root root Oct : iZ25lzba47vZ.root.history-timestamp
-rw-rw-r-- ruanwenwu ruanwenwu Oct : iZ25lzba47vZ.ruanwenwu.history-timestamp
-rw-rw-r-- test test Oct : iZ25lzba47vZ.test.history-timestamp
srwxrwxrwx mysql mysql Oct : mysql.sock
-rw------- www www Oct : sess_vi5k84ucsecldno3kg6edqdh72
drwx------ www www May systemd-private-39567547dfdf4a37b00906a534c87627-ntpd.service-QxSGFm
[root@iZ25lzba47vZ tmp]# ls -i ./
Aegis-<Guid(5A2C30A2-A87D-490A--6765EDAD7CBA)>
a.txt
b.txt
c.txt
iZ25lzba47vZ.root.history-timestamp
iZ25lzba47vZ.ruanwenwu.history-timestamp
iZ25lzba47vZ.test.history-timestamp
mysql.sock
sess_vi5k84ucsecldno3kg6edqdh72
systemd-private-39567547dfdf4a37b00906a534c87627-ntpd.service-QxSGFm
[root@iZ25lzba47vZ tmp]# ls -i a.txt c.txt
a.txt c.txt
如果我们删除其中一个文件,另外一个文件会受影响吗?
[root@iZ25lzba47vZ tmp]# rm -rf a.txt
[root@iZ25lzba47vZ tmp]# ls -l c.txt
-rw-rw-r-- test test Oct : c.txt
发现,并没有影响到另外一个文件。
目录是不能做硬链接的,因为目录有自己的inode体系。
硬链接不能跨分区,因为每个分区都有自己的inode体系。
linux学习(九)set_uid、set_gid、stick_bit、软链接、硬链接的更多相关文章
- Linux总结(十二)set_uid set_gid stic_bit 软链接 硬链接
一 set_uid 之前我们修改普通用户的登陆密码,都是以管理员身份在操作,比如我们在lv账户下,我们使用sudo passwd lv 重置lv账户密码,此时我们直接拿到root权限忽略掉了文件权限的 ...
- linux下创建和删除软、硬链接
linux下创建和删除软.硬链接 在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号.文件属性保存在索引结点里,在访问文件时,索引结点被复制 ...
- windows中的软链接硬链接等
学校嘛,有些时候还是得逆逆上网客户端啥的,并且学校的不少工作,这Windows的需求还是挺强的,之前Win10的体验并不是太好,不过时隔这么久,打算从7升级到10了,恰好系统也该换了. 首先是命令行的 ...
- Linux学习(一):软链接和硬链接
今天起,决定开始自学Linux命令及Shell脚本,并用Linux学习(命令行,Shell及其他知识点)这一系列记录下自己的心路历程,内容不分先后,只记录自己觉得有必要的,简单的就不记了! 第一个知识 ...
- linux文件系统软链接硬链接
引子 目前,UNIX的文件系统有很多种实现,例如UFS(基于BSD的UNIX文件系统).ext3.ext4.ZFS和Reiserfs等等. 不论哪一种文件系统,总是需要存储数据.硬盘的最小存储单位是扇 ...
- Linux 软链接 硬链接 ln命令(繁杂版)
注意:创建软连接的时候,要用绝对路径!!! 这是linux中一个非常重要命令,请大家一定要熟悉.它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln - ...
- Linux 软链接 硬链接 ln命令(简约说明版)
注意:路径使用绝对路径!! 解决方法: 当我们需要在不同的目录下用到同一个文件时,会用到以下命令. 命令:ln 作用:为某一个文件在另外一个位置建立一个同步的链接 语法:ln [option] 源文件 ...
- Linux软链接硬链接的区别
ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在 ...
- linux 软链接 硬链接
查看文件sun.txt 加上参数i 是显示节点 inode [root@bogon test]# ls -li sun.txt 10006225 -rw-r--r--. 1 root root 0 ...
- Linux下创建和删除软、硬链接 可临时处理空间不足
在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号.文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问. ...
随机推荐
- angularjs之ui-bootstrap的Datepicker Popup实现双日期选择控件
最开始使用ui-bootstrap的Datepicker Popup日期选择插件实现双日期选择时间范围时,在网上搜了一些通过JS去实现的方法,不过后来发现可以不必通过JS去处理,只需要使用其自身的属性 ...
- Apache下通过shell脚本提交网站404死链
网站运营人员对于死链这个概念一定不陌生,网站的一些数据删除或页面改版等都容易制造死链,影响用户体验不说,过多的死链还会影响到网站的整体权重或排名. 百度站长平台提供的死链提交工具,可将网站存在的死链( ...
- hdu4686 Arc of Dream 2013 Multi-University Training Contest 9矩阵快速幂
Arc of Dream Time Limit: 2000/2000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) Tot ...
- bzoj1968 COMMON 约数研究
Input只有一行一个整数 N(0 < N < 1000000).Output只有一行输出,为整数M,即f(1)到f(N)的累加和.Sample Input 3 Sample Output ...
- Ionic3学习笔记(四)修改返回按钮文字、颜色
本文为原创文章,转载请标明出处 目录 修改返回按钮文字 修改返回按钮颜色 1. 修改返回按钮文字 参考官网 Ionic API---Config 文档 可在 ./src/app/app.module. ...
- mysql error 1290 hy000:The MySQL server is running with the --skip-grant-tables option so it cannot execute this statemen' 解决方案
如果在执行授权命令的时候报错 mysql> grant all privileges on *.* to root@"; ERROR (HY000): The MySQL server ...
- C# XML序列化
/// <summary> /// XML序列化为指定对象 /// Author:taiyonghai /// Time:2016-08-22 /// </summary> / ...
- Rx 入门指引 (一)
自学 Rx 快有一个周了, 它非常适合处理复杂的异步场景.结合自己所学,决定写系列教程. 我认为, Rx 中强大的地方在于两处 管道思想,通过管道,我们订阅了数据的来源,并在数据源更新时响应 . 强大 ...
- Slf4j+Log4j日志框架入门
(一).日志系统介绍 slf4j,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统.简答的讲就是slf4j是一系列的 ...
- C# 多线程、异步线程、线程池相关知识
/* 线程池ThreadPool类会在需要时增减池中线程的线程数,直到最大的线程数.池中的最大线程数是可配置的. 在双核CPU中,默认设置为1023个工作线程和1000个I/O线程.也可以指定在创建线 ...