SetUID(suid):会在属主权限位的执行权限上写个s
若是该属主权限位上有执行权限,则:s
若是该属主权限位上没有执行权限,则:Sshell
受权方式vim
chmod u+s filename chmod 4755 filename
setuid总结:安全
1.让普通用户对可执行的二进制文件,临时拥有二进制文件的属主权限
2.若是设置的二进制文件没有执行权限,那么suid的权限显示就是S
3.特殊权限suid仅对二进制可执行程序有效,其余文件或目录则无效bash
[root@oldboyedu ~]# ll /bin/write -rwxr-sr-x. 1 root tty 19624 Oct 31 2018 /bin/write
setgid(sgid):会在属组权限位的执行权限上写个s
若是该属组权限位上有执行权限,则:s
若是该属组权限位上没有执行权限,则:Sui
受权方式日志
[root@db04 ~]# chmod 2755 /tmp/test/ [root@db04 ~]# chmod g+s /tmp/test/
做用:1.针对用户组权限位修改,用户建立的目录或文件所属组和该目录的所属组一致。
2.当某个目录设置了sgid后,在该目录中新建的文件不在是建立该文件的默认所属组
3.使用sgid可使得多个用户之间共享一个目录的全部文件变得简单。code
粘滞位:进程
[root@oldboyedu ~]# ll -d /tmp/ drwxrwxrwt. 8 root root 105 Jul 2 10:15 /tmp/
若是该其余用户权限位上有执行权限,则:t
若是该其它用户权限位上没有执行权限,则:Trem
受权方式:
[root@db04 ~]# chmod 1755 /opt [root@db04 ~]# chmod o+t /opt
sticky(SI TI KI)粘滞,目前只对目录有效,做用以下:
普通用户对该目录拥有w和x权限,即普通用户能够在此目录中拥有写入权限,若是没有粘滞位,那么普通用户拥有w权限,就能够删除此目录下的全部文件,包括其余用户创建的文件。可是一旦被赋予了粘滞位,除了root能够删除全部文件,普通用户就算有w权限也只能删除本身创建的文件,而不能删除其余用户创建的文件。
注意:系统中存在的/tmp目录是经典的粘滞位目录,谁都有写权限,所以安全成问题,经常是木马第一手跳板。
SUID
主要是对命令,或者二进制文件,以该二进制文件的属主权限来执行该文件 命令:passwd
2.SGID
主要是针对目录进行受权,共享目录
3.SBIT
粘滞位,即使是该目录拥有w权限,可是除了root用户,其余用户只能对本身的文件进行删除、移动操做
一个普通用户:zls 属于 oldboyedu这个组
一个文件权限:rwxrw-r-x root.oldboyedu filename1
zls对文件的权限:rw-
r:读
w:写
x:执行
suid:4000
sgid:2000
t:1000
chattr只有root用户使用,用来修改文件系统权限属性,创建凌驾于rwx基础权限之上的受权
chattr命令格式:[root@db04 ~]# #chattr【 +-=】[选项] 文件名或目录名
lsattr:查看特殊权限
chattr:设置特殊权限
i:锁定文件,不能编辑,不能修改,不能删除,不能移动,能够执行
a:仅能够追加文件,不能编辑,不能删除,不能移动,能够执行
设置文件属性(权限)针对全部用户,包括root
#选项:+增长权限 -减小权限 =等于某个权限 #a:让文件或目录仅可追加内容 #i:不得任意更动文件或目录 #建立文件并设置属性 [root@zls ~]# touch file_a file_i [root@zls ~]# lsattr file_a file_i ---------------- file_a ---------------- file_i #设置属性 [root@zls ~]# chattr +a file_a [root@zls ~]# chattr +i file_i [root@zls ~]# lsattr file_a file_i -----a---------- file_a ----i----------- file_i #a权限, 没法覆盖写入和删除文件 [root@zls ~]# echo "aa" > file_a bash: file_a: Operation not permitted [root@zls ~]# rm -f file_a rm: cannot remove ‘file_a’: Operation not permitted #a权限, 只能追加, 适用于日志文件 [root@zls ~]# echo "aa" >> file_a #i权限, 没法写入, 没法删除 [root@zls ~]# echo "i" > file_i bash: file_i: Permission denied [root@zls ~]# echo "i" >> file_i bash: file_i: Permission denied [root@zls ~]# rm -f file_i rm: cannot remove ‘file_i’: Operation not permitted #解除限制 [root@zls ~]# chattr -a file100 [root@zls ~]# chattr -i file200
系统默认umask为022,那么当咱们建立一个目录时,正常状况下目录的权限应该是777,可是umask表示要减去的值,因此新目录文件的权限应该是777-022=755。至于文件的权限也依次类推:666-022=644
/etc/bashrc /etc/profile ~/.bashrc ~/.bash_profile
注意:
umask影响的范围
shell (vim,touch) --umask--> 新文件或目录权限 vsftpd --umask--> 新文件或目录权限 samba --umask--> 新文件或目录权限 useradd --umask--> 用户 HOME
1,在shell进程中建立文件
//查看当前用户的umask权限 [root@zls ~]# umask 0022 [root@zls ~]# touch file0022 [root@zls ~]# mkdir dir0022 [root@zls ~]# ll -d file0022 dir0022/ drwxr-xr-x 2 root root 6 Jan 24 09:02 dir0022/ -rw-r--r-- 1 root root 0 Jan 24 09:02 file0022
2,修改shell umask值(临时生效)
[root@zls ~]# umask 000 [root@zls ~]# mkdir dir000 [root@zls ~]# touch file000 [root@zls ~]# ll -d dir000 file000 drwxrwxrwx 2 root root 6 Jan 24 09:04 dir000 -rw-rw-rw- 1 root root 0 Jan 24 09:04 file000
3,修改shell umask(永久生效,不建议)
[root@zls ~]# vim /etc/profile if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then umask 002 else umask 022 fi //当即在当前 shell 中生效 [root@zls ~]# source /etc/profil