运行具有超级用户权限的命令通常有两种情况:(1)你同时拥有了一个超级用户帐号(root帐号 启用)和一个常规用户帐号;(2)你不是一个常规用户但是并没有超级用户的权限(这种情况经常发生在大型多用户网络中的初级和中高级系统管理员身上)。下 面我们分别来看下这两种情况:
(1)su命令短暂的更改用户身份
这种情况需要启用超级用户帐号(Ubuntu系统中是默认禁用超级用户帐号的)。启用root账号时,可使用sudo passwd命令。之后你就可以使用su命令进入root用户。
su命令的使用格式如下:
su option username arguments
单独使用su命令,你变成root用户,但是仍然保留你原来的常规用户的环境变量,你的当前目录也不会变化。
你使用su -命令,你变成root用户,并且继承了root用户的环境变量
想要变成其他用户,需要在命令行中指定用户名:su – other_user
如果要回到你原来的用户身份,使用exit命令。
当你想要某些用户能够执行需要超级用户权限的命令时,你告诉他们root用户的密码,他们就可以使用su命令进入root用户,执行相应的命令。
(2)sudo命令授予超级用户权限
sudo是和命令结合使用的。sudo命令的使用格式如下:
sudo command
当你输入上面的命令时,sudo会检查/etc/sudoers文件查看该用户是否被授权可以获得超级用户权限。如果可以的话,该用户会被提示输入这个用户的密码,然后命令会被执行,就好像是root用户执行命令一样。Ubuntu的默认设置时,15分钟内再使用sudo命令时,不要再次输入密码。如果一个没有被授权的用户使用sudo命令时,这个记录会被保存在系统日志中,并通知给超级用户。
有三个和sudo相关的man页面:sudo,sudoers,visudo.第一个主要是关于sudo命令本身,第二个是关于/etc /sudoers文件,第三个是使用文本编辑器编辑/etc/sudoers文件。你需要使用特殊的编辑命令因为它会检查文件的parse错误,并同时将 文件锁起来防止其他人编辑。visudo命令使用vi编辑器。
/etc/sudoers文件如下所示:
#
#This file MUST be edited with the 'visudo' command as root.
#
#Please consider adding local content in /etc/sudoers.d/ instead of
#directly modifying this file.
#
#See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:$
#Host alias specification
#User alias specification
#Cmnd alias specification
#User privilege specification
root ALL=(ALL:ALL) ALL
#Members of the admin group may gain root privileges
%adminALL=(ALL) ALL
#Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
#See sudoers(5) for more information on "#include"directives:
#includedir/etc/sudoers.d
文件中一个sudoers行的基本形式如下:
user host_computer=command
这个user可以是单独的一个用户,也可以是一个群组(群组前面有%)。host_computer通常是ALL包括所有的主机,也可以是 localhost只包括本地主机。sudoers行中的command可以是ALL,包括了所有的特殊命令,也可以是所有命令的一个子集(不可被使用的 命令前会加上!)。
(责任编辑:VEVB)
新闻热点
疑难解答