文件的权限问题及umask 普通文件 SUID chmod
粉丝不过w
普通文件默认是 644 也就是:
自已有读写(rw),同组人员有读(r),其它有读(r)
默认权限可通过 umask 修改
默认 umask 为 022
文件:666 - 022 = 644
目录:777 - 022 = 755
如 umask 044 的指令,则生成的文件目录权限
文件:666 - 044 = 622
目录:777 - 044 = 733
r(Read,读取):文件:具有读取文件内容的权限
目录:具有浏览目录的权限
w(Write,写入):文件:具有新增、修改文件内容的权限
目录:具有删除、移动目录内文件的权限
x(eXecute,执行):文件:具有执行文件的权限
目录:该用户具有进入目录的权限
s 或 S(SUID,Set UID):小写 s :能执行
大写 S :不能执行
可执行的文件搭配这个权限,便能得到特权,任意存取该文件的所有者能使用的全部系统资源
请注意具备 SUID 权限的文件,黑客经常利用这种权限,以 SUID 配上 root 帐号拥有者,无声无息地在系统中开扇后门,供日后进出使用
r ----- 读访问
w ----- 写访问
x ----- 执行许可
s ----- SUID / SGID
t ----- sticky 位
用户修改密码,是通过运行命令 passwd 来实现的
最终必须要修改/etc/passwd 文件,而 passwd 的文件的属性是
passwd 文件只有对于 root 用户是可写的,而对于所有的他用户来说都是没有写权限的
一个普通的用户如何能够通过运行 passwd 命令修改这个 passwd 文件,为解决这个问题, SUID/SGID 便应运而生
AT&T 对它申请了专利
进程在运行的时候,有一些属性,其中包括 实际用户 ID,实际组ID,有效用户 ID,有效组 ID 等
实际用户 ID 和实际组 ID 标识我们是谁,谁在运行这个程序,一般这 2 个字段在登陆时决定,在一个登陆会话期间, 这些值基本上不改变
有效用户 ID 和有效组 ID 则决定了进程在运行时的权限
内核在决定进程是否有文件存取权限时, 是采用了进程的有效用户 ID 来进行判断的
当一个程序设置了为 SUID 位时,内核就知道了运行这个程序的时候,应该认为是文件的所有者在运行这个程序
该程序运行的时候,有效用户 ID 是该程序的所有者
T 或 T(Sticky):小写 t 表示能执行,大写 T 表示不能执行/tmp 和 /var/tmp 目录供所有用户暂时存取文件,亦即每位用户皆拥有完整的权限进入该目录,去浏览、删除和移动文件
R,W,X 是基本权限 S,T 是特殊权限.
各权限位代表的数字值:
R:4
W:2
X:1
suid:4
sgid:2
sticky:1
当使用特殊权限位时 chmod 的用法:
例:
chmod 7000 后的权限: ---S--S--T
chmod 7755 后的权限: -rwsr-sr-t