关于文件目录等的特殊权限setuid, setgid , sticky chattr, lsattr

有三种特殊权限

总之, 设置这些特殊权限有两种方法, 一是使用 chmod ugo的方式, 另一个是 使用 数字的方式, 通常的读写执行 权限 是 3位 数字, 那么 特殊权限 就用 4位数字, 而且 用 第一位 数字来 表示 特殊权限, 比如 chmod 4775 some_command 那么第一位数字 4 就是特殊权限 suid

  1. 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

  2. set sticky 的作用是 某个目录 可以被 所有 用户 读写, 但是 这个目录中的 每个文件, 只能 被 该文件的所有者(即创建者) 所删除或移动. 用户 不能删除或 移动 其他用户创建的 文件, 这个 就是 sticky的意思

  3. 适用对象: 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中的 密码域则被 星号* 所替换.
posted @ 2019-01-18 21:26  noitanym  阅读(553)  评论(0编辑  收藏  举报