特殊权限set_uid/ set_gid /stick_bit,软链接、硬链接

本文详细介绍了Linux系统中特殊权限set_uid、set_gid及sticky_bit的作用与使用方法,并解释了软链接与硬链接的工作原理及其应用场景。

9月17日任务

2.18 特殊权限set_uid

2.19 特殊权限set_gid

2.20 特殊权限stick_bit

2.21 软链接文件

2.22 硬连接文件

2.18 特殊权限set_uid

  • set uid :该权限针对二进制可执行文件,使文件在执行阶段具有文件所有者的权限。比如,#passwd这个命令就具有该权限,当普通用户执行#passwd命令时,可以临时获得root权限,从而可以更改密码

6b513039d130111df5cfccd19f22fd056a4.jpg

  • #chmod u+s   执行该命令可以增加set uid权限

74195be2bfaf605213c5f12b288eff8da15.jpg

  • 当该文件没有x权限的时候,增加的set uid权限会显示为大S

09d25ddc21a024d483621b42f4398050ce3.jpg

2.19 特殊权限set_gid

  • set gid  :该权限可以作用在文件上(二进制可执行文件),也可以作用在目录上。当作用在文件上时,其功能跟set uid 一样,它会使文件这执行阶段具有文件所属组的权限。目录被设置这个权限后,任何用户在此目录下创建的文件都具有和该目录所属组同样的组。
  • #chmod g+s   增加一个set gid权限:

6db5aaf7eb4345a7f6aad98977115019ef3.jpg

  • 目录拥有set gid 权限,任何用户再次目录下创建的文件都具有和该目录所属组同样的组。

add0874651b37e7f9d60bec70ab16099269.jpg

2.20 特殊权限stick_bit

  • sticky bit :防删除位,如果希望用户能够添加文件但不能删除该目录下其他用户的文件,则可以对父目录增加该权限。设置该权限后,就算用户对目录具有写权限,也不能删除其他用户的文件,root用户除外。
  • #chmod o+t   增加stick bit权限

2.21 软连接文件

  • 软连接,软连接是建立一个独立的文件,文件非常小。当读取这个链接文件时,他会把读取的行为转发到该文件所连接的文件上。81121540b378aac4f49f337afb22e6c369c.jpg
  • ln -s   命令,用来设定软连接,把文件软连接到目标文件地址下fe79df90f4e2a4a2937722d929015e7a0aa.jpg
  • ln -s   命令,也可以用来连接目录,如下图所示:

ef3f8cfd447ab9d12c7fb2b7a08d94edb42.jpg

  • 做软连接文件或目录时,建议做软件连接尽量用绝对路径

2.22 硬链接文件

 

  • 硬链接:当系统要读取一个文件时,会先读iNode信息,然后再根据iNode中的信息到块区域将数据取出来。而硬链接是直接再建立一个iNode链接到文件放置的块区域,既进行硬链接时,该文件内容没有任何变化,只是增加了一个指向这个文件的iNode号,并不会二外占用磁盘空间。
  • 做硬链接不能跨文件系统,因为不同的文件系统有不同的iNode table
  • 硬链接不能连接目录
  • ls -i   用来查看iNode号

e72b18ad92da1c848d6cb896921195222f6.jpg

  • ln 命令,用来做硬链接文件

4876cdb797ffa4e08ec59efc67622f11c96.jpg

转载于:https://my.oschina.net/u/3962011/blog/2054305

q95xx_generic/linux-5.4.213" "/ge550v1/qca_95xx_12_2/build_dir/target-aarch64" "" || echo "/ge550v1/qca_95xx_12_2/scripts/fossid.sh is missing"; fi rm -f /ge550v1/qca_95xx_12_2/build_dir/target-aarch64/linux-ipq95xx_generic/linux-5.4.213/localversion /ge550v1/qca_95xx_12_2/scripts/kconfig.pl + + /ge550v1/qca_95xx_12_2/target/linux/generic/config-5.4 /ge550v1/qca_95xx_12_2/target/linux/ipq95xx/config-5.4 /ge550v1/qca_95xx_12_2/target/linux/ipq95xx/generic/config-default > /ge550v1/qca_95xx_12_2/build_dir/target-aarch64/linux-ipq95xx_generic/linux-5.4.213/.config.target awk '/^(#[[:space:]]+)?CONFIG_KERNEL/{sub("CONFIG_KERNEL_","CONFIG_");print}' /ge550v1/qca_95xx_12_2/.config >> /ge550v1/qca_95xx_12_2/build_dir/target-aarch64/linux-ipq95xx_generic/linux-5.4.213/.config.target echo "# CONFIG_KALLSYMS_EXTRA_PASS is not set" >> /ge550v1/qca_95xx_12_2/build_dir/target-aarch64/linux-ipq95xx_generic/linux-5.4.213/.config.target echo "# CONFIG_KALLSYMS_ALL is not set" >> /ge550v1/qca_95xx_12_2/build_dir/target-aarch64/linux-ipq95xx_generic/linux-5.4.213/.config.target echo "CONFIG_KALLSYMS_UNCOMPRESSED=y" >> /ge550v1/qca_95xx_12_2/build_dir/target-aarch64/linux-ipq95xx_generic/linux-5.4.213/.config.target /ge550v1/qca_95xx_12_2/scripts/package-metadata.pl kconfig /ge550v1/qca_95xx_12_2/tmp/.packageinfo /ge550v1/qca_95xx_12_2/.config 5.4 > /ge550v1/qca_95xx_12_2/build_dir/target-aarch64/linux-ipq95xx_generic/linux-5.4.213/.config.override /ge550v1/qca_95xx_12_2/scripts/kconfig.pl 'm+' '+' /ge550v1/qca_95xx_12_2/build_dir/target-aarch64/linux-ipq95xx_generic/linux-5.4.213/.config.target /dev/null /ge550v1/qca_95xx_12_2/build_dir/target-aarch64/linux-ipq95xx_generic/linux-5.4.213/.config.override > /ge550v1/qca_95xx_12_2/build_dir/target-aarch64/linux-ipq95xx_generic/linux-5.4.213/.config.set bash: /ge550v1/qca_95xx_12_2/build_dir/target-aarch64/linux-ipq95xx_generic/linux-5.4.213/.config.set: Permission denied make[5]: *** [/ge550v1/qca_95xx_12_2/build_dir/target-aarch64/linux-ipq95xx_generic/linux-5.4.213/.configured] Error 1 make[5]: Leaving directory `/ge550v1/qca_95xx_12_2/target/linux/ipq95xx' make[4]: *** [compile] Error 2 make[4]: Leaving directory `/ge550v1/qca_95xx_12_2/target/linux' time: target/linux/compile#0.13#0.02#0.16 make[3]: *** [target/linux/compile] Error 2 make[3]: Leaving directory `/ge550v1/qca_95xx_12_2' make[2]: *** [/ge550v1/qca_95xx_12_2/staging_dir/target-aarch64/stamp/.target_compile] Error 2 make[2]: Leaving directory `/ge550v1/qca_95xx_12_2' make[1]: *** [world] Error 2 make[1]: Leaving directory `/ge550v1/qca_95xx_12_2' make: *** [sdk] Error 2 huaxi@fd4bb9d5f3ca:/ge550v1/Iplatform/build$
09-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值