浅谈linux文件安全 suid和guid位的作用

     Linux文件的权限设置方面,除了基本权限设置(rwx)以外,还有suid位和guid位的设置问题。

    s u i d意味着如果某个用户对属于自己的s h e l l脚本设置了这种权限,那么其他用户在执行这一脚本时也会具有其属主的相应权限。于是,如果根用户的某一个脚本设置了这样的权限,那么其他普通用户在执行它的期间也同样具有根用户的权限。同样的原则也适用于g u i d,执行相应脚本的用户将具有该文件所属用户组中用户的权限。
    
现在我们明白了什么是s u i d,可是如何设置它呢?下面就来介绍这个问题。如果希望设置s u i d,那么就将相应的权限位之前的那一位设置为4;如果希望设置g u i d,那么就将相应的权限位之前的那一位设置为2;如果希望两者都置位,那么将相应的权限位之前的那一位设置为4+2。一旦设置了这一位,一个s将出现在x的位置上。记住:在设置s u i d或g u i d的同时,相应的执行权限位必须要被设置。例如,如果希望设置g u i d,那么必须要让该用户组具有执行权限。

下面,我们来举例说明:

[root@localhost mzl]# ll
总计 16
-rw-r--r-- 1 root root   81 05-05 17:13 a.sh                      #a.sh还没有执行权限
r-xr-x 2 mzl  mzl  4096 05-03 14:48 Desktop


[root@localhost mzl]# chmod 755 a.sh                              #赋予a.sh可执行权限
[root@localhost mzl# ./a.sh                                                         

Welcome to shell world !

[root@localhost mzl]# chmod 2755 a.sh                             #赋予guid位
root@localhost mzl]# ll
总计 16
-rwxr-sr-x 1 root root   81 05-05 17:13 a.sh
drwxr-xr-x 2 mzl  mzl  4096 05-03 14:48 Desktop

[root@localhost mzl]# chmod 4755 a.sh                             #设置suid位
root@localhost mzl]# ll
总计 16
-rwsr-xr-x 1 root root   81 05-05 17:13 a.sh
drwxr-xr-x 2 mzl  mzl  4096 05-03 14:48 Desktop

[root@localhost mzl]# chmod 6755 a.sh                             #设置suid位和guid位
@localhost mzl]# ll
总计 16
-rwsr-sr-x 1 root root   81 05-05 17:13 a.sh
drwxr-xr-x 2 mzl  mzl  4096 05-03 14:48 Desktop

    果该文件尚未设置执行位(x),当设置suid或者guid位时,该为会出现S标准位。这是一种没有什么用处的s u i d设置,可以忽略它的存在。
 

 

 

你可能感兴趣的:(linux,职场,SUID,guid,休闲)