Chinaunix首页 | 论坛 | 博客
  • 博客访问: 125699
  • 博文数量: 44
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 407
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-02 21:38
文章分类
文章存档

2015年(1)

2013年(43)

我的朋友

分类: LINUX

2013-02-27 10:16:13

方法一:
直接修改/etc/passwd的uid和gid,将用户ID和组ID都改成0。(恶心的方法,还不如直接用su切换到root执行呐)
方法二:
用sudo可以是普通用户暂时获得root的权限执行某个命令。这样就可一不知道超级用户密码而拥有权限执行命令。但是用户必须在/etc/sudoers用户列表中,否则就会出现permission denied,可以用visudo命令来添加用户。

一般用户管理系统的方式是利用su切换为超级用户。但是使用su的缺点之一在于必须要先告知超级用户的密码。sudo使一般用户不需要知道超级用户的密码即可获得权限。首先超级用户将一般用户登记在特殊的文件中(通常是/etc/sudoers),即完成 对该用户的授权(此时该用户称为“sudoer”);在一般用户需要取得特殊权限时,其可在命令前加上“sudo”,此时sudo将会询问该用户自己的密 码(以确认终端机前的是该用户本人),回答后系统即会将该命令的进程以超级用户的权限运行。之后的一段时间内(默认为5分钟,可在/etc /sudoers自定义),使用sudo不需要再次输入密码。

我们可以通过visudo命令来编辑/etc/sudoers文件,visudo是一个脚本文件,也可以通过编辑工具来对/etc/sudoers进行修改(注意:系统默认下/etc/sudoers是没有修改权限,需要通过chmod来对它增加权限)

root@localhost ~]# ll /usr/sbin/visudo
-rwxr-xr-x 1 root root 81832 Apr 14 2009 /usr/sbin/visudo
———————————————————-
[root@localhost ~]# ll /etc/sudoers
-r–r—– 1 root root 3202 May 10 02:19 /etc/sudoers

grep -v ^$ /etc/sudoers | grep -v ^## 过滤空行和##号开头

查看sudoers配置文件中的重要代码

[root@localhost ~]# cat sudoers.txt
============定义服务器=================
格式:Host_Alias 服务器类型 = 服务器名称或IP地址
例:多个服务器或IP需要用(,)逗号隔开
Host_Alias CLIENT = 192.168.100.0, 192.168.200.0/24
Host_Alias FILESERVERS = fs1, fs2
——————————————
# Host_Alias FILESERVERS = fs1, fs2
# Host_Alias MAILSERVERS = smtp, smtp2
============用户定义==============
格式:User_Alias 大写名称 = 用户[, 用户]
注意,名称需要大写,多用户需要用(,)逗号隔开
——————————————
# User_Alias ADMINS = jsmith, mikem
===========定义命令和命令地路径==============
格式:Cmnd_Alias 统称=绝对路径/命令
可以把相同功能的命令保存到一个自定义的统称,方便分配
多个命令需要用(,)逗号隔开
————————————————–
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig
=============定义默认值=============
注意:Defaults –> 全局设置
Defaults:用户 –> 针对指定用户起效,多个用户需要用(,)逗号隔开
——————————————
Defaults requiretty
Defaults env_reset 

==========指定用户权限分配==========
格式:user MACHINE = (RunAs) COMMANDS
——————————————
root ALL=(ALL) ALL
===============组成员权限分配===============
格式:%group-name MACHINE = (RunAs) COMMANDS  或
%group-name MACHINE = COMMANDS
注意:NOPASSWD: COMMANDS 在使用命令时不需要输入密码
这些群都必须在系统中存在的

—————————————————-
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

sys组可以在全部计算机上以ROOT用户身份运行 多个统称下包括的命令,调用Cmnd_Alias的设置
—————————————————-

# %wheel ALL=(ALL) ALL

whell组可以在全部计算机上以ROOT用户的身份,执行全部命令,但需要输入密码
—————————————————————————————–
# %wheel ALL=(ALL) NOPASSWD: ALL

whell组可以在全部计算机上以ROOT用户的身份,执行全部命令,但不需要输入密码
—————————————————————————————–
# %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
# %users localhost=/sbin/shutdown -h now

users组只能在本身上运行/sbin/shutdown -h now
—————————————————————————————–

技巧:

1)  注意大小写

2) 在绝对路径前加(!)感叹号,代表该命令不可用    !/sbin/mount

3)  RunAS 代表转换的身份

%group-name MACHINE = (RunAs) COMMANDS

%group-name MACHINE = COMMANDS  当没有(RunAs)时,系统默认以ROOT用户的身份来执行

4)用户是没有(%)百分号,组是有(%)百分号

5) 可以通过sudo -l 参数查看自己的权限


阅读(1537) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~