建站比较好的公司,学平面设计网站,东莞规划局,优书网书单推荐◆超级用户权限与授权 ●建立多个超级用户 不少新系统管理员认为root用户是唯一的超级用户#xff0c;其实root只是系统默认的超级用户的名称#xff0c;root并非因为它叫root而成为超级用户的。随便打开一个/etc/passwd文件的例子#xff0c;你就会发现如下几行#xff1a…◆超级用户权限与授权 ●建立多个超级用户 不少新系统管理员认为root用户是唯一的超级用户其实root只是系统默认的超级用户的名称root并非因为它叫root而成为超级用户的。随便打开一个/etc/passwd文件的例子你就会发现如下几行 root:asiewhgYfaoO/J:0:0:root:/root:/bin/tcshbin:*:1:1:bin:/bin:daemon:*:2:2:daemon:/sbin:lanf:Yuao56Ioyefg:0:0:bluewind:/home/bluewind:/bin/bashjake:gUyfaiIodashfj:501:501:jake cheng:/home/jake:/bin/tcshapache:!!:502:502::/usr/local/apache:/bin/false 可以看到root的UID和GID都被设置为0了。实际上超级用户的充要条件就是UID和GID都等于0。也就是说任何用户只要它的UID和GID都为0就与常被称为root超级用户没有什么两样了。比如上面那个例子里面的lanf也是一个超级用户。 所以可以将任何普通用户变成超级用户。但是这样做并没有好处很多时候这都会增加系统的隐患。除非在组织中需要多个系统管理员管理同一个系统这就需要有多个超级用户帐号。这有利于各个管理员明确责任通过日志知道不同的人分别做过什么事。 还有一种情况也可能出现多个超级用户帐号那就是黑客入侵后设置一个看起来象普通帐号的用户却修改了UID和GID使之为0。这样根本就不需要知道 root用户密码就可以执行超级用户权限了。而从我们的系统管理员的一方来说我们不可能时刻注意passwd文件的变化的没有那个时间也没有那个精 力。这时只好编写一个脚本来帮助监视例如 /bin/grep ‘0:0’ /etc/passwd |awk ‘BEGIN{FS”:”}{print $1}’|mail –s “date ”%D%T””root 这是一个很小的脚本程序使用了一些常规的命令来查看/etc/passwd文件把UID和GID为0的行寄给root用户。把这个脚本放在/etc/cron.daily文件中让cron运行root将每天收到一封信报告当前的超级用户。 实际上由于PAM可插入验证模块的限制在telnet上是不允许超级用户登入的也就是说黑客修改了自己的UID和GID后想再次登陆从而 获得超级用户的权限的话不修改/etc/seuretty文件是不可能的——除非你傻到自己添加了伪TTY设备ROOT用户登陆权限。一般可以让超级用 户先用普通用户帐号登陆再susu命令相关内容请参考本站命令查询部分。 ●为普通用户分配特权 使用sudo命 令可以允许普通用户执行超级用户才能执行的命令。无论是基于信任的建立需要时间还是基于是否存在这种必要我们都不会把超级用户的所有权限轻易许人的。 这是网管工作的原则。所以当一些用户必须访问某些内容时我们可以配置sudo以允许单独的普通用户运行特权命令。 sudo命令允许已经在/etc/sudoers文件中指定的用户运行超级用户命令。例如一个已经获得许可的普通用户可以运行 sudo vi /etc/passwd 实际上sudo的配置完全可以让我们指定某个列入/etc/sudoers文件的普通用户可以做什么、不可以做什么。/etc/sudoers的配置行如下 空行或注释行以#字符打头无用行。 可选的主机别名行用来创建主机列表的简称。必须以Host_Alias关键词开头列表中的主机必须用逗号隔开。例如 Host_Alias REDHATbinbu,qd 其中binbu和qd是俩主机名你可以用REDHAT别名统称它们。 可选的用户别名行用来创建用户列表的简称。用户别名行必须以User_Alias关键词开头列表中的用户名必须以逗号隔开。其格式同主机别名行。 可选的命令别名行用来创建命令列表的简称。必须以Cmnd_alias开头列表中的命令必须用逗号隔开。 可选的运行方式别名行也是用来创建用户列表的简称。不同的是使用这样的别名可以告诉sudo程序以列表中某一用户的身份来运行程序。 必要的用户访问说明行用户访问的说明语法如下 user host [run as user ] command list 在user处指定一个真正的用户名或定义过的别名同样的host也可以是一个真正的主机名或者定义过的主机别名。默认情况下sudo执行的所有命 令都是以root身份执行。如果你想使用其他身份可以指定。至于command list可以是以逗号分隔的命令列表也可以是一个已经定义过的别名。例如 lanf binbu/sbin/shutdown 这一句说明lanf可以在binbu主机上运行关机命令。 注意 1、可以在一行定义多个别名中间用隔开。 2、可以在命令或命令别名之前加上号使该命令或命令别名无效。 3、有两个关键词ALL 和NOPASSWD。ALL意味着“所有文件”所有主机或所有命令NOPASSWD意味着不用密码。 下面是一个sudoers文件的例子 #sudoers files#User alias specificationUser_Alias ADMINyourid:POWERUSERhisid,herid#user privilege specificationADMIN ALLALLPOWERUSER ALLALL,!/bin/su 第三行定义了两个别名ADMIN和POWERUSER第五行说明在所有主机上ADMIN都可以以root身份执行所有命令。第六行给POWERUSER除了运行su命令外同等ADMIN的权限。 转载于:https://www.cnblogs.com/qq3391826735/p/5664291.html