linux学习命令总结⑩⑤

#文件的特殊权限

SetUID权限

s,当s这个标志出现在文件所有者的x权限的时候,此时就被称为SetUID权限,简称为SUID权限。

SUID要求的条件和它的主要功能:

1、SUID权限仅对二进制程序(binary program)有效

2、执行者对于改程序必须有x权限

3、这个权限只有在运行的时候才会有效(run-time)

4、执行者将会拥有该程序所有者(owner)的权限

[root@VM_168_102_centos etc]# ls -l /etc/gs*-
-rw------- 1 root root 479 Aug 25 15:27 /etc/gshadow-
[root@VM_168_102_centos etc]# su wanghan
[wanghan@VM_168_102_centos etc]$ cat /etc/gshadow-
cat: /etc/gshadow-: Permission denied
[wanghan@VM_168_102_centos etc]$ exit
exit
[root@VM_168_102_centos etc]# ls -ld /bin/cat   
-rwxr-xr-x 1 root root 48568 Jun 22  2012 /bin/cat
[root@VM_168_102_centos etc]# chmod u+s /bin/cat 设定suid权限
[root@VM_168_102_centos etc]# ls -ld /bin/cat
-rwsr-xr-x 1 root root 48568 Jun 22  2012 /bin/cat
[root@VM_168_102_centos etc]# su wanghan
[wanghan@VM_168_102_centos etc]$ cat /etc/gshadow-
root:::
bin:::bin,daemon
daemon:::bin,daemon
sys:::bin,adm
adm:::adm,daemon

SetGID权限

当s项目出现在用户组的x位置上时被称为Set GID权限,也称作SGID。

SGID可以针对文件和目录来设置,如果对于文件来讲,SGID有如下的功能:

1、SGID对二进制程序有用

2、程序的执行者对于改程序来讲,必须具有x权限

3、执行者在执行的过程中将会获得该程序所属用户组的支持

当用在目录上面的时候:

1、若用户对此目录具有r和x权限时改用户能够进入该目录

2、用户在此目录下的有效用户组(effective group)将会变成该目录的用户组

3、若用户在此目录具有w(可以新建文件)权限,则用户所创建的新文件的用户组和此目录的用户组相同

[root@VM_168_102_centos ~]# chmod g+s /tmp/sgid #设定sgid权限
[root@VM_168_102_centos ~]# ls -ld /tmp/sgid
drwxrwsr-x 2 openstack openstack 4096 Aug 26 11:30 /tmp/sgid
[root@VM_168_102_centos ~]# chmod o+w /tmp/sgid/
[root@VM_168_102_centos ~]# su wanghan
[wanghan@VM_168_102_centos rott]$ mkdir /tmp/sgid/wanghan
[wanghan@VM_168_102_centos rott]$ ls -ld /tmp/sgid/wanghan
drwxrwsr-x 2 wanghan openstack 4096 Aug 26 11:34 /tmp/sgid/wanghan

SetBit权限

这个Sticky Bit(SBIT)权限只针对目录有效,对于文件已经没有效果了。

作用和前提条件:

1、当用户对于此目录具有w、x权限,即具有写入权限时

2、当用户在该目录下创建文件或目录时,仅有自己和root用户才有权利删除该文件

[root@VM_168_102_centos ~]# ls -l /tmp/sgid/
total 8
drwxrwsr-x 2 openstack openstack 4096 Aug 26 11:38 openstack
drwxrwsr-x 2 wanghan   openstack 4096 Aug 26 11:39 wanghan
[root@VM_168_102_centos ~]# chmod o+t /tmp/sgid/
[root@VM_168_102_centos ~]# ls -ld /tmp/sgid
drwxrwsrwt 4 openstack openstack 4096 Aug 26 11:39 /tmp/sgid
[root@VM_168_102_centos ~]# su wanghan
[wanghan@VM_168_102_centos rott]$ rm -rf /tmp/sgid/openstack
rm: cannot remove `/tmp/sgid/openstack 
[wanghan@VM_168_102_centos rott]$ rm -rf /tmp/sgid/wanghan

#at命令:在一个指定的时间执行一个指定任务,只能执行一次

at Time

[root@VM_168_102_centos ~]# at 14:58
at> cat /etc/passwd
at> <EOT> #ctrl+d 提交任务
job 879 at 2014-08-26 14:58
[root@VM_168_102_centos ~]# at 3pm
at> tail /etc/passwd
at> <EOT>
job 880 at 2014-08-26 15:00

CTRL+d:提交任务

at -l:查看作业,也可使用atq

[root@VM_168_102_centos ~]# at -l
879    2014-08-26 14:58 a root
880    2014-08-26 15:00 a root
[root@VM_168_102_centos ~]# atq
879    2014-08-26 14:58 a root
880    2014-08-26 15:00 a root

at -d:删除一个尚未执行的作业

[root@VM_168_102_centos ~]# atq
879    2014-08-26 14:58 a root
880    2014-08-26 15:00 a root
[root@VM_168_102_centos ~]# at -d 880
[root@VM_168_102_centos ~]# atq
879    2014-08-26 14:58 a root

at -f:从指定文件读入任务而不是从标准输入读入

[root@VM_168_102_centos ~]# cat at.sh 
useradd at_test

[root@VM_168_102_centos ~]# at -f at.sh now
job 882 at 2014-08-26 15:00
[root@VM_168_102_centos ~]# tail -n 1 /etc/passwd
at_test:x:502:502::/home/at_test:/bin/bash

你可能感兴趣的:(linux,二进制,执行者,程序)