Debian中安装使用sudo命令

2010-04-28, Posted in 配置 | 4 回复


sudo可以让非root用户具有管理员的权限,安装好的Debian(ubuntu同样适用)后还不能使用sudo,需要使用root用户登陆后安装sudo命令。
#apt-get install sudo
安装后,就可以给你的帐号设置管理员权限了
#vim /etc/sudoers
添加一行 username ALL=(ALL) ALL #这里的username就是你要给予一定权限的用户
然后保存,退出root,然后使用username用户登陆。应该就有sudo权限了。


一、配置sudo
正如你看到的,/etc/sudoers是sudo的配置文件,它主要分为别名设置与权限设置两大部分。

1、别名设置
别名主要分成4种,分别是:
1)Host_Alias 主机别名,就是主机的列表
如:Host_Alias HOST_FLAG = hostname1, hostname2, hostname3
2)Cmnd_Alias 命令别名,就是允许执行的命令的列表
如:Cmnd_Alias COMMAND_FLAG = command1, command2, command3
3)User_Alias 用户别名,就是具有sudo权限的用户的列表
如:User_Alias USER_FLAG = user1, user2, user3
4)Runas_Alias Runas别名,就是用户以什么身份执行(例如root,或者oracle)的列表
如:Runas_Alias RUNAS_FLAG = operator1, operator2, operator3
别名格式是:Alias_Type NAME = item1, item2, ……

2、权限设置
首先看看授权规则:
格式: 授权用户 主机 = [(目的用户)] [NOPASSWD:] 命令列表
如:tony ALL=(ALL) NOPASSWD:ALL
其中NOPASSWD是指不需要密码验证

这里给一个配置例子:

# groups
User_Alias  ROOT = user1, user2, user3
User_Alias  WEBMASTERS = user4, user5, user6
 
# commands
Cmnd_Alias  APACHE = /usr/local/sbin/kickapache
Cmnd_Alias  TAIL = /usr/bin/tail
Cmnd_Alias      SHUTDOWN = /sbin/shutdown
Cmnd_Alias      APT = /usr/bin/apt-get, /usr/bin/dpkg
 
# privileges 
ROOT        ALL = (ALL) ALL
WEBMASTERS  ALL = PASSWD : APACHE, TAIL
admin       ALL = NOPASSWD : /etc/init.d/apache



二、sudo命令帮助

使用方式:
sudo -V | -h | -l | -L | -v | -k | -K | -s | [ -H ] [-P ] [-S ] [ -b ] | [ -p prompt ] [ -c class|- ] [ -a auth_type ] [-r role ] [-t type ] [ -u username|#uid ] command

说明:
以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就似乎是 root 亲自执行

参数:
-V 显示版本编号
-h 会显示版本编号及指令的使用方式说明
-l 显示出自己(执行 sudo 的使用者)的权限
-v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,假如超过 N 分钟,也会问密码
-k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
-b 将要执行的指令放在背景执行
-p prompt 能够更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
-u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,能够以 username 的身份执行指令(#uid 为该 username 的使用者号码)
-s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
-H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )
command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令
范例:
sudo -l 列出现在的权限
sudo -V 列出 sudo 的版本资讯

标签: , , ,

4 Comments for this entry

你也讲两句吧~