Chinaunix首页 | 论坛 | 博客
  • 博客访问: 221262
  • 博文数量: 71
  • 博客积分: 1649
  • 博客等级: 上尉
  • 技术积分: 725
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-25 11:20
文章分类

全部博文(71)

文章存档

2012年(1)

2011年(11)

2010年(59)

我的朋友

分类: LINUX

2010-02-25 11:55:42

su&sudo

su  用户间的切换工具

用法

su potionusername

su 不加任何参数默认是切换到root用户但并不更改当前的环境变量

su – 默认切换到root用户但改变环境变量。

su – username 切换到某个用户如果是root用户切换到其他用户则不需要密码反之则需要。

su –c username 暂时以某个用户的身份执行命,令执行完后自动退出。

su 的确为管理带来方便,通过切换到root下,能完成所有系统管理工具,只要把root的密码交给任何一个普通用户,他都能切换到root来完成所有的系统管理工作;但通过su切换到root后,也有不安全因素。由于su 对切换到超级权限用户root后,权限的无限制性,如果用su 来切换到超级用户来管理系统,也不能明确哪些工作是由哪个管理员进行的操作。特别是对于服务器的管理有多人参与管理时,最好是针对每个管理员的技术特长和管理范围,并且有针对性的下放给权限,并且约定其使用哪些工具来完成与其相关的工作,这时我们就有必要用到 sudo

sudo 用其他用户的身份执行命令execute a command as another user

别名规则定义格式如下:

别名类型(Alias_Type):别名类型包括如下四种

       There are four kinds of aliases: User_Alias, Runas_Alias, Host_Alias and Cmnd_Alias.

Host_Alias 定义主机别名;

User_Alias 用户别名,别名成员可以是用户,用户组(前面要加%号)

Runas_Alias 用来定义runas别名, sudo 允许切换至的用户;

Cmnd_Alias 定义命令别名;

       Alias_Type NAME = item1, item2, …

      1Alias_Type is one of User_Alias, Runas_Alias, Host_Alias, or Cmnd_Alias

    2A NAME is a string of uppercase letters, numbers, and underscore charac-ters (_).  A NAME must start with an uppercase letter.

     3It is possible to put several alias definitions of the same type on a single line, joined by a colon (:). 

           -Alias_Type NAME = item1, item2, item3 : NAME = item4, item5

NAME 就是别名了,NMAE的命名是包含大写字母、下划线以及数字,但必须以一个大写字母开头。

user_alias NAME=user_list

       1one or more usernames直接跟多个人名

       2system groups (prefixed with ’%’)直接系统组前边加个%

       3netgroups (prefixed with +) 网络组前边加个+

       4other aliases

Each list item may be prefixed with one or more ! operators.

User_Alias  DBA=natasha,mary,%dba人名和组一起

User_Alias  SA=windy,peter,DBA

runas_alias

       和用户别名一样跟uid是加个#号,当两个用户名有相同的uid是只匹配定义的那个要想让两个都匹配则用uid代替,组也一样,egRunas_Alias OPER=root,%wheel,#555

host_alias

有多个用户名,ip地址或网段 +网络组 ,组成

Netmask

     CIDR              or    192.168.0.0/24

     standard IP address notation       192.168.0.0/255.255.255.0

    192.168.0.0不加掩码是自动匹配

eg   Host_Alias  SERVERS=192.168.1.2, 192.168.1.32/27

cmnd_alias

命令别名下的成员必须是文件或目录的绝对路径;命令别名有点长,可以通过 \ 号断行

eg Cmnd_Alias SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \
                                /usr/local/bin/tcsh, /usr/bin/rsh, \
                                /usr/local/bin/zsh

但在动作之前也可以指定切换到特定用户下,在这里指定切换的用户要用( )号括起来,如果不需要密码直接运行命令的,应该加NOPASSWD:参数,

说了这么多规则在哪添加呢?

在这儿 /etc/sudoers 但是你不要试图用vi编辑器来直接打开编辑它,有一个专用命令visudovisudo默认的是在vi里打开配置文件,用vi来修改文件。我们可以在编译时修改这个默认项。visudo不会擅自保存带有语法错误的配置文件,它会提示你出现的问题,并询问该如何处理,就像:

>>> sudoers file: syntax error, line13 <<< FONT>

此时我们有三种选择:键入“e”是重新编辑,键入“x”是不保存退出,键入“Q”是退出并保存。如果真选择Q,那么sudo将不会再运行,直到错误被纠正。

 

sudo命令用法

 -V 显示版本编号
  -h 会显示版本编号及指令的使用方式说明
  -l 显示出自己(执行 sudo 的使用者)的权限
  -v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
  -k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
  -b 将要执行的指令放在背景执行
  -p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
  -u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
  -s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
  -H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root
  command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令  

阅读(1105) | 评论(0) | 转发(0) |
0

上一篇:raid5实验

下一篇:自动克隆centOS系统

给主人留下些什么吧!~~