首页 > 代码库 > 第7章 权限管理(3)_文件系统属性和sudo权限

第7章 权限管理(3)_文件系统属性和sudo权限

3. 文件系统属性chattr权限

(1)chattr命令

命令格式:

#chattr [+-=][选项] 文件或目录名

+、-、=

分别表示增加权限删除权限和赋于某种权限

选项

i:主要用来防止对文件或目录误操作。如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。(注意,这里的设置对root也同样起作用

a:如果对文件设置a属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;如果对目录设置a属性,那么只允许在目录中建立和修改,但是不允许删除。

(2)查看文件系统属性:lsattr命令

  ①格式:#lsattr [选项] 文件名,其中选项如下:

  ②选项:-a 显示所有文件和目录

      -d 若目标是目录,仅列出目录本身的属性,而不是子文件的

(3)应用举例

  ①给文件加i属性

技术分享 

  【结论】

    A.给abc文件加i属性后,可以通过lsattr查看其属性,权限中的“i”表示具有i属性。“e”表示该文件是ext4格式。

    B. 当加了i属性以后,就无法删除文件了,哪怕是root用户也一样。但可以查看其内容。

  ②给目录加i属性

技术分享 

  【结论】

    A.给/test/目录加i属性

    B.这时可以修改test目录下的abc文件,但不能删除这个文件。

    C.同时由于/test目录具有i属性,所以不能删除test目录本身,也不能在其中创建新文件或目录。

4. 系统命令sudo权限

4.1 sudo权限

(1)root把本来只能超级用户执行的命令赋予普通用户执行,但又不需要向普通用户提供root的密码。

(2)sudo的操作对象是系统命令.

4.2 sudo的使用

(1)#visudo (注意,这是一个命令,而不是“vi sudo”,也可以#vim /etc/sudoers文件

  root All=(All) ALL  //为root用户授权

  //分别为#用户名 被管理主机的地址=(可使用身份) 授权命令(绝对路径)。其中的“用户名”表示为哪个用户授权,“被管理主机的地址”表示用户可以在哪台主机上运行授权命令(All表示任何主机),“可使用身份表示test用户以何种身份运行授权命令,这部分省略。“授权命令”指为授权给用户执行的命令,ALL表示所有命令。

 

  test All=(root) /usr/sbin/useradd  //为test授权

  //上面一行的意思是,超级用户为test用户授予在任何一台主机上运行useradd命令的权限,当test用户使用sudo执行这条命令时是以root的身份执行的。

 

   #%wheel ALL=(ALL) ALL  //为某一组(如wheel组)用户授权命令

   //#%组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)

(2)应用举例

  ①授权sc用户可以重启服务器

    #visudo

    sc ALL= /sbin/shutdown –r now //为sc授权执行shudown –r now这行命令,但要注意这里只授予加了“-r now”选项的shutdown命令。而不是所有shutdown命令。

  ②普通用户执行sudo赋予的命令

     $sudo –l //查看可用的sudo命令。(注意$表示普通用户)

    $sudo /sbin/shutdown –r now //普通用户执行sudo赋予的命令

第7章 权限管理(3)_文件系统属性和sudo权限