保密性-用户授权

转载请注明,文章来源:http://blog.csdn.net/redhat7890

 

什么是授权?

什么是su?什么是sudo?

su命令就是切换用户的工具,通过su可以在用户之间切换,如果超级权限用户root向普通或虚拟用户切换不需要密码

 

su 的用法:

su [OPTION选项参数] [用户]

-, -l, --login 登录并改变到所切换的用户环境;

-c, --commmand=COMMAND 执行一个命令,然后退出所切换到的用户环境;

至于更详细的,请参看man su ;

 

su 的范例:

su 在不加任何参数,默认为切换到root用户,但没有转到root用户家目录下,也就是说这时虽然是切换为root用户了,但并没有改变root登录环境;用户默认的登录环境,可以在/etc/passwd 中查得到,包括家目录,SHELL定义等;

<ccid_nobr></ccid_nobr>

<ccid_code>[beinan@localhost ~]&#8194;$ su
Password:
[root@localhost beinan]# pwd
/home/beinan</ccid_code>

su 加参数 - ,表示默认切换到root用户,并且改变到root用户的环境;

<ccid_nobr></ccid_nobr>

<ccid_code>[beinan@localhost ~]&#8194;$ pwd
/home/beinan
[beinan@localhost ~]&#8194;$ su -
Password:
[root@localhost ~]# pwd
/root</ccid_code>

su 参数 - 用户名

[beinan@localhost ~] $ su - root 注:这个和su - 是一样的功能;

Password:

[root@localhost ~]# pwd

/root

[beinan@localhost ~] $ su - linuxsir 注:这是切换到 linuxsir用户

Password: 注:在这里输入密码;

[linuxsir@localhost ~] $ pwd 注:查看用户当前所处的位置;

/home/linuxsir

[linuxsir@localhost ~] $ id 注:查看用户的UID和GID信息,主要是看是否切换过来了;

uid=505(linuxsir) gid=502(linuxsir) groups=0(root),500(beinan),502(linuxsir)

[linuxsir@localhost ~] $

[beinan@localhost ~] $ su - -c ls 注:这是su的参数组合,表示切换到root用户,并且改变到root环境,然后列出root家目录的文件,然后退出root用户;

Password: 注:在这里输入root的密码;

anaconda-ks.cfg Desktop install.log install.log.syslog testgroup testgroupbeinan testgrouproot

[beinan@localhost ~] $ pwd 注:查看当前用户所处的位置;

/home/beinan

[beinan@localhost ~] $ id 注:查看当前用户信息;

uid=500(beinan) gid=500(beinan) groups=500(beinan)

 

su的优缺点;

su 的确为管理带来方便,通过切换到root下,能完成所有系统管理工具,只要把root的密码交给任何一个普通用户,他都能切换到root来完成所有的系统 管理工作;但通过su切换到root后,也有不安全因素;比如系统有10个用户,而且都参与管理。如果这10个用户都涉及到超级权限的运用,做为管理员如 果想让其它用户通过su来切换到超级权限的root,必须把root权限密码都告诉这10个用户;如果这10个用户都有root权限,通过root权限可 以做任何事,这在一定程度上就对系统的安全造成了威协;想想Windows吧,简直就是恶梦;“没有不安全的系统,只有不安全的人”,我们绝对不能保证这 10个用户都能按正常操作流程来管理系统,其中任何一人对系统操作的重大失误,都可能导致系统崩溃或数据损失;所以su 工具在多人参与的系统管理中,并不是最好的选择,su只适用于一两个人参与管理的系统,毕竟su并不能让普通用户受限的使用;超级用户root密码应该掌 握在少数用户手中,这绝对是真理!所以集权而治的存在还是有一定道理的;

 

sudo 授权许可使用的su,也是受限制的su

sudo 的适用条件

由于su 对切换到超级权限用户root后,权限的无限制性,所以su并不能担任多个管理员所管理的系统。如果用su 来切换到超级用户来管理系统,也不能明确哪些工作是由哪个管理员进行的操作。特别是对于服务器的管理有多人参与管理时,最好是针对每个管理员的技术特长和 管理范围,并且有针对性的下放给权限,并且约定其使用哪些工具来完成与其相关的工作,这时我们就有必要用到 sudo。

通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码,所以sudo 相对于权限无限制性的su来说,还是比较安全的,所以sudo 也能被称为受限制的su ;另外sudo 是需要授权许可的,所以也被称为授权许可的su;

sudo 执行命令的流程是当前用户切换到root(或其它指定切换到的用户),然后以root(或其它指定的切换到的用户)身份执行命令,执行完成后,直接退回到当前用户;而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权;

 

在前段时间对于Aisanux server 3操作系统中对于保密安全性方面的研究中,关于身份鉴别的功能有一些感受,关于某个用户授权,作为root用户,我们有权利赋予其他用户各种各样的权限,比如,我只想让test1用户可以执行部分命令的操作,部分服务的启动。举例子:

 

例子1:

#useradd test  

#passwd test

New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

#useradd test2

#passwd test2

New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

 

新建了两个用户,这两个用户都没有授权,那么我们试一下,分别使用这两个用户登录,我的都能进行什么操作。

1,可以使用test 和test2用户创建其他用户呢?

 

#su - test

passwd:
$ sudo /usr/sbin/useradd Tom

test is not in the sudoers file.This incident will be reported.

$su -root

passwd:

#su - test2

$sudo /usr/sbin/useradd Tom

test is not in the sudoers file.This incident will be reported.

这两个没有授权的用户都无法创建新用户

 

2.我们对test2授权,使其可以有权创建用户,授权格式为:

 

授权用户  主机=命令动作 

 

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

 

 

#vim /etc/sudoers

在##Allow root to run any commands anywhere这一行下面添加

test2  ALL = ( ALL )  /usr/sbin/useradd


 现在test2具备创建新用户的权限了,验证下:

#su - test2

passwd:

$sudo /usr/sbin/useradd Tom

 

$su - root

passwd:

#vim /etc/passwd

 

可以看到Tom用户已经添加成功。关于对test2的授权是有效的,我们现在只是授权它可以添加用户,同样的道理我们将删除用户的职能授权给它,在此,不再重复。

 

3.对于命令和服务的授权是否可以呢?继续验证,最简单的就是启动网络服务,我们还是针对test2用户进行,将test2和test比较。

 

#su - test

passwd:

$sudo /etc/init.d/network restart

passwd:

test is not int the sudoers file.This incident will be reported.

 

显然test用户无权启动网络服务,那么我们修改/etc/sudoers文件,我们赋予test2用户权限,使其能够启动network服务。

#vim /etc/sudoers

添加网络服务的授权,添加后为:

 

test2 AL = (ALL)   /usr/sbin/useradd , /etc/init.d/network

 

我们再使用test2用户开启网络服务,步骤如下。

 

#su - test2

passwd:

$sudo /etc/init.d/network restart

passwd:

正在关闭接口:eth0 [确定]

关闭环回接口:         [确定]

弹出环回接口:         [确定]

弹出界面 eth0:        [确定]

 

检验证明,被授权的用户有权限进行授权范围内的操作,所以对于linux系统来说,它就是最安全的操作系统。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值