设为首页 加入收藏

TOP

Linux基础介绍【第五篇】(二)
2017-10-13 10:32:50 】 浏览:6987
Tags:Linux 基础 介绍 第五篇
oy oldboy]# sed -n '65,69p' /etc/bashrc
  •     if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
  •        umask 002
  •     else
  •        umask 022
  •     fi
  • 根据umask值计算文件权限

    创建文件默认最大权限为:666-umask,当umask有奇数时,计算权限需要在奇数位加1。

    创建目录默认最大权限位:777-umask。

    setuid和setgid

    setuid介绍

    1. [root@oldboy oldboy]# ls -l `which passwd`
    2. -rwsr-xr-x. 1 root root 30768 Feb 22 2012 /usr/bin/passwd

    setuid使用户执行该命令的时候临时获得属主用户的权限

    setuid小结:针对命令和二进制程序

    1、用户或属主对应的前三位权限的x位上如果有s就表示setuid权限。当x位上没有小写x执行权限的时候,setuid的权限就显示大写S;当x位上有x执行权限的时候,setuid的权限就显示小写s。

    2、setuid作业是让普通用户可以以root(或其他)的用户角色运行只有root(或其他)账号才能运行的程序或命令,或程序命令对应本来没有权限操作的文件等。

    注意和su及sudo的区别,setuid为某一个命令设置特殊权限(使用者为所有人)。

    3、问题,希望oldboy用户能够删除本来无权删除的文件。

    a、sudo给oldboy授权rm。b、给rm命令设置setuid。c、设置上级目录权限。

    4、setuid修改的是执行的命令passwd,而不是处理目标文件/etc/shadow。

    5、仅对二进制命令程序有效,不能用在shell等类似脚本文件上(因为shell脚本仅仅是调用二进制命令程序而已,因此,具体权限还需要看二进制命令本身)。

    6、二进制命令程序需要有可执行权限x配合。

    7、setuid权限仅在程序命令执行过程中有效。

    8、执行setuid命令的任意系统用户都可以获得命令程序在执行期间对应的拥有者的所有权限。

    9、setuid是一把双刃剑,是一个比较危险的功能,对系统安全有一定的威胁。系统setuid的无用的功能取消setuid权利(安全优化)。

    setgid介绍

    1、与setuid不同的是,setgid既可以针对文件也可以针对目录设置。

    2、setgid是针对用户组权限位修改的。

    对于文件来说,setgid的功能如下:

    1)、setgid仅对二进制命令程序有效。

    2)、二进制命令或程序需要有可执行权限x。

    3)、执行程序的任意用户可以获得该命令程序执行期间所属组的权限。

    对于目录setgid的功能如下:

    1)、linux里默认情况所有用户创建文件,默认用户和组都是自身。

    2)、setgid可以让用户在此目录下创建的文件和目录具有和此目录相同的用户组设置。

    setgid位主要用于在目录中,当为某个目录设置了setgid位以后,在该目录中新创建的文件的所有者权限,而不是创建该文件的用户的默认所有者。这样,使得在多个用户之间共享一个文件变得简单。

    locate查找命令

    案例:

    创建共享目录/home/admins,属组为adminuser,adminuser组成员对目录有写入读写和执行的权限,其他所有用户没有任何权限(root除外),在/home/admins目录中创建的文件会自动继承adminuser组。

    1. [root@oldboy oldboy]# mkdir /home/admins -p
    2. [root@oldboy home]# groupadd adminuser
    3. [root@oldboy home]# ls -ld admins/
    4. drwxr-xr-x 2 root root 4096 Dec 26 15:29 admins/
    5. [root@oldboy home]# chgrp adminuser admins/
    6. [root@oldboy home]# ls -ld admins/
    7. drwxr-xr-x 2 root adminuser 4096 Dec 26 15:29 admins/
    8. [root@oldboy home]# touch admins/test.txt
    9. [root@oldboy home]# ls -l admins/test.txt
    10. -rw-r--r-- 1 root root 0 Dec 26 15:36 admins/test.txt
    11. [root@oldboy home]# chmod g+s admins/
    12. [root@oldboy home]# ls -ld admins/
    13. drwxr-sr-x 2 root adminuser 4096 Dec 26 15:36 admins/
    14. [root@oldboy home]# touch admins/test_2.txt
    15. [root@oldboy home]# ls -l admins/
    16. total 0
    17. -rw-r--r-- 1 root adminuser 0 Dec 26 15:39 test_2.txt
    18. -rw-r--r-- 1 root root 0 Dec 26 15:36 test.txt

    粘滞位sticky bit(sbit)及设置方法

    用途一般是把一个文件夹的权限都打开,然后来共享文件,例如/tmp目录一样。使用方便但是带来安全隐患,生产环境一般不这样使用。

    sticky比setgid的更安全措施,让多个用户具有写权限的目录,每个用户只能删除自己的文件。sticky在other位,用t表示,如果没有执行权限,那么就是T表示;如果有执行权限,那么就是t表示。

    特殊权限对应的数字小结

    setuid 4000 权限字符s(S),用户位上的x位上设置。授权方法chmod 4755 oldboy.txt。

    setgid 2000 权限字符s(S),用户组位的x位上设置。授权方法chmod 2755 oldboy.txt。

    粘滞位 1000 权限字符t(T),其他用户位的x位上设置。授权方法chmod 1755 /tmp。

    如果对应位有x则字符权限表现为小写,否则表现为大写。

    推荐设置方法:

    chmod g+s test

    chmod u+s test

    chmod o+t test

    chown和chgrp

     

    chown 用户 文件或目录 à仅仅授权用户

    chown :组 文件或目录 à仅仅授权组。等同于"chgrp 组 文件或目录"。

    chown 用户:组 文件或目录 à表示授权用户和组

    注意:

    1、其中的冒号":"可以用点号"."替代。

    2、要授权的用户和组名,必须是linux系统里实际存在的。

    文件的属主和用户组的特殊情况

    首页 上一页 1 2 3 下一页 尾页 2/3/3
    】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
    上一篇linux上使用google身份验证器(简.. 下一篇Linux实战教学笔记06:Linux系统基..

    最新文章

    热门文章

    Hot 文章

    Python

    C 语言

    C++基础

    大数据基础

    linux编程基础

    C/C++面试题目