Linux-config
sudoers
文件
sudoers
文件是 Linux
系统中的一个配置文件,用于定义哪些用户或用户组能够以 root
用户的身份执行特定的命令或操作。这样可以在不将 root
密码分享给其他用户的情况下,允许他们执行一些需要 root
权限的操作,从而提高系统的安全性和管理效率.sudoers
文件通常位于 /etc/sudoers
或 /etc/sudoers.d
目录下,只有root
用户才有权限修改该文件。
/etc/sudoers
文件中的每一行都是一个规则。规则的基本格式如下:
1
USER HOST=(RUNAS) COMMAND
USER
用户名或用户组(以%
开头表示用户组)。HOST
主机名,表示这个规则适用于哪些主机。RUNAS
运行身份,表示用户可以以哪些用户或用户组的身份执行命令。COMMAND
是命令,表示用户可以执行哪些命令。
如 root ALL=(ALL) ALL
表示允许 root
用户在所有主机上,以任何用户的身份,执行任何命令.
更多例子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27# /etc/sudoers
#允许在 sudo 用户组中的所有用户,从任何主机,以任何用户(包括 root)的身份,执行任何命令
#%sudo:表示 sudo 用户组。在 Linux 中,以 % 开头的表示用户组。
#ALL:第一个 ALL 表示这个规则适用于所有的主机。
#(ALL:ALL):这个部分表示用户可以以任何用户(第一个 ALL)和任何组(第二个 ALL)的身份执行命令。
#ALL:最后一个 ALL 表示用户可以执行所有的命令。
%sudo ALL = (ALL:ALL) ALL
# 允许用户组 wheel 执行所有命令
# %wheel 表示用户组 wheel,ALL 表示所有主机,(ALL) 表示所有用户,最后一个 ALL 表示所有命令
%wheel ALL=(ALL) ALL
# 允许用户 alice 以 root 身份执行 /usr/bin/vim 和 /usr/bin/less 命令
alice ALL=(root) /usr/bin/vim, /usr/bin/less
# 允许用户 bob 以 root 身份执行 /sbin/reboot 命令
bob ALL=(root) /sbin/reboot
# 允许用户 charlie 以 www-data 用户身份执行 /usr/bin/php 命令
charlie ALL=(www-data) /usr/bin/php
# 允许用户 dan 以 root 身份执行 /usr/bin/apt-get 命令,但需要输入密码
dan ALL=(root) /usr/bin/apt-get, PASSWD: /usr/bin/apt-get
添加一个需要 root
权限的脚本
使用
root
用户打开/etc/sudoers
1
sudo visudo
添加配置
1
username ALL=(ALL:ALL) NOPASSWD: /path/to/your/script
在
/etc/rc.local
文件中添加你的脚本,使其在系统启动时自动执行1
2#添加
sudo /path/to/your/script在较新的
Linux
发行版中可能没有/etc/rc.local
文件, 系统已经将其服务化了, 从rc0
到rc6
有7个启动级别, 数字越大优先级越低rc0: 停机(不能使用)
rc1: 单用户模式
rc2: 多用户模式,但是没有NFS
rc3: 完全多用户模式
rc4: 没有使用,系统预留
rc5: 图形界面模式
rc6: 重启模式(不能使用)
从命名来看,这些脚本分为两类: KXX
, SXX
其中 K
代表 Kill
,S
代表 Start