关于文件目录等的特殊权限setuid, setgid , sticky chattr, lsattr
有三种特殊权限
总之, 设置这些特殊权限有两种方法, 一是使用 chmod ugo的方式, 另一个是 使用 数字的方式, 通常的读写执行 权限 是 3位 数字, 那么 特殊权限 就用 4位数字, 而且 用 第一位 数字来 表示 特殊权限, 比如 chmod 4775 some_command 那么第一位数字 4 就是特殊权限 suid
-
setuid, 命令是:
chmod u+s some_command
或者chmod 4665 some_command
, 设置 setgid 命令是 :chmod g+s some_cmd
或chmod 2775 some_dir
设置 sticky的命令是:chmod o+t some_dir
或chmod 1755 some_dir
-
set sticky 的作用是 某个目录 可以被 所有 用户 读写, 但是 这个目录中的 每个文件, 只能 被 该文件的所有者(即创建者) 所删除或移动. 用户 不能删除或 移动 其他用户创建的 文件, 这个 就是 sticky的意思
-
适用对象: setuid 只能用于文件,
[root@localhost lee]# chmod 1544 foo 给 普通文件设置 sticky 特殊权限将会显示为 T ,表示无效设置!
[root@localhost lee]# ll
-r-xr--r-T. 1 root root 4 Jan 18 21:25 foo 注意这里的大写T
使用 pwunconv 命令, 可以将 /etc/shadow中的密码, 停止投影 , 返回写到 /etc/passwd文件中, 注意两点:
- 两个文件中的 密码都是一样的, 不管是 投射前还是 停止投射后. 当然都不是明文, 都是加密后的字符串
- 当使用 pwunconv后 文件 /etc/shadow 将被 "临时" 删除, 不存在了
- 要注意的是, 用户的文件, 首先是被 写入到 /etc/passwd文件中的, 紧接着被 写入/转移到 /etc/shadow文件中 而原来的/etc/passwd中的 密码域则被 星号* 所替换.