linux 权限管理sudo 权限

来源:互联网 发布:c语言手册下载 编辑:程序博客网 时间:2024/05/01 20:33

大家都知道 ,Linux 权限 管理 非常重要, 特别是一些 sudo 这样的一些权限。

Ubuntu默认为一次时长15分钟。

su : 切换到某某用户模式,提示输入密码时该密码为切换后账户的密码,用法为“su 账户名称”。如果后面不加账户时系统默认为root账户,密码也为超级账户的密码。没有时间限制。

sudo -i: 为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。想退回普通账户时可以执行“exit”或“logout” 。
其实,还有几个类似的用法:
sudo /bin/bash   : 这个命令也会切换到root的bash下,但不能完全拥有root的所有环境变量,比如PATH,可以拥有root用户的权限。这个命令和 sudo -s 是等同的。
sudo -s : 如上
sudo su  : 这个命令,也是登录到了root,但是并没有切换root的环境变量,比如PATH。
sudo su - :  这个命令,纯粹的切换到root环境下,可以这样理解,先是切换到了root身份,然后又以root身份执行了 su - ,这个时候跟使用root登录没有什么区别。这个结果貌似跟sudo -i 的效果是一样的,但是也有不同,sudo 只是临时拥有了root的权限,而su则是使用root账号登录了linux系统。

所以,我们再来总结一下:
sudo su -  约等于  sudo -i
sudo -s  完全等于  sudo  /bin/bash  约等于 sudo su
sudo 终究被一个"临时权限的帽子"扣住,不能等价于纯粹的登录到系统里。

举个例子看看
可以在root 用户下面 使用 visudo 打开配置文件,加入以下几行,(如果没有这个命令 yum install visudo )

biaoge  ALL=(ALL)    ALL
这里简单解释一下, 这个配置文件有三列 ,
第一列 用户名,
 第二列 ALL=(ALL) 代表 ALL代表host ,即 biaoge 这个用户从哪台机器登录的, (ALL) 就是临时拥有的身份,这里ALL 就是 所有的用户 (当然 这里也可以配置成root),
第三列,代表拥有 biaoge 这个用户可以使用的命令,ALL 就代表所有的命令。 这biaoge 这个用户就可以(以root 身份)执行一些命令了。



这样 就可以 以 临时root的身份 去访问root 的家目录了。 当然这样每次都要输入密码。第一次要输入之后 就不用输入密码了。

把配置文件 改一下, 这样就不用输入密码 了,可以直接使用 命令了。
biaoge  ALL=(root)    NOPASSWD:ALL

但是这样 有时候 也不是特别好, 因为这样 一些普通用户通过一些命令 就可以 切换到 root 用户下面, 比如通过
sudo /bin/bash , sudo -i , sudo -s , sudo su
看下面截图:


这样相对是比较危险的,所以 要想法限制 这些特殊的命令,这些命令 可以 提升 普通用户的权限

通过 修改 配置文件,也是可以做到的,
biaoge  ALL=(root)    NOPASSWD:ALL,!/bin/su ,!/bin/bash

这里限制 su ,和/bin/bash 就可以了。


看看效果 ,此时 普通用户想要切换到root 用户,就不可能了。






0 0
原创粉丝点击