Linux下sudo命令实例讲解

2、编辑配置文件命令:visudo

注意:编辑sudo的配置文件/etc/sudoers是一般不要直接使用vi(vi /etc/sudoers)去编辑,因为sudoers配置有一定的语法,直接用vi编辑保存系统不会检查语法,如有错也保存了可能导致无法使用sudo工具,最好使用visudo命令去配置。虽然visudo也是调用vi去编辑,但是保存时会进行语法检查,有错会有提示。

3、语法,参数

sudo [ -Vhl LvkKsHPSb ] │ [ -p prompt ] [ -c class│- ] [ -a auth_type ] [-u username│#uid ] command

参数:

-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 更改为其他人)执行的指令

①、创建tom并为其创建密码

[root@localhost ~]# useradd tom[root@localhost ~]# echo “tom” | passwd –stdin tomChanging password for user tom.passwd: all authentication tokens updated successfully.

②、修改配置文件,为tom添加特殊权限useradd

## Allow root to run any commands anywhereroot ALL=(ALL)ALLtomALL=(root)/usr/sbin/useradd##添加权限,这里的/usr/sbin/useradd表示普通用户执行时必须使用全路径,可以使用which 命令查看哦!## Allows members of the ‘sys’ group to run networking, software,

③、切换到用户tom,验证特殊权限

[root@localhost ~]# su – tom ##切换用户[tom@localhost ~]$ sudo -l ##查看此用户拥有的特殊权限We trust you have received the usual lecture from the local SystemAdministrator. It usually boils down to these three things:#1) Respect the privacy of others.#2) Think before you type.#3) With great power comes great responsibility.[sudo] password for tom:##这里需要验证密码,以保证是用户本人执行操作Matching Defaults entries for tom on this host:requiretty, !visiblepw, always_set_home, env_reset, env_keep=”COLORS DISPLAY HOSTNAME HISTSIZEINPUTRC KDEDIR LS_COLORS”, env_keep+=”MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE”,env_keep+=”LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES”, env_keep+=”LC_MONETARYLC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE”, env_keep+=”LC_TIME LC_ALL LANGUAGE LINGUAS_XKB_CHARSET XAUTHORITY”, secure_path=/sbin\:/bin\:/usr/sbin\:/usr/binUser tom may run the following commands on this host:(root) /usr/sbin/useradd ##可以以root身份,使用useradd命令

tom执行useradd:

[tom@localhost ~]$ sudo /usr/sbin/useradd test1 ##添加用户test1[tom@localhost ~]$ tail -1 /etc/passwdtest1:x:501:501::/home/test1:/bin/bash##添加成功

④、查看日志/vat/log/secure

注意:要切换回root才有权限查看日志

[root@localhost ~]# tail /var/log/secureApr 5 13:55:58 localhost su: pam_unix(su-l:session): session opened for user tom by root(uid=0)Apr 5 13:56:11 localhost su: pam_unix(su-l:session): session closed for user tomApr 5 13:56:17 localhost passwd: pam_unix(passwd:chauthtok): password changed for tomApr 5 13:56:17 localhost passwd: gkr-pam: couldn’t update the ‘login’ keyring password: no old password was enteredApr 5 13:56:23 localhost su: pam_unix(su-l:session): session opened for user tom by root(uid=0)Apr 5 13:56:43 localhost sudo:tom : TTY=pts/0 ; PWD=/home/tom ; USER=root ; COMMAND=list ##tom以管理员身份执行了list命令Apr 5 14:00:50 localhost sudo:tom : TTY=pts/0 ; PWD=/home/tom ; USER=root ; COMMAND=/usr/sbin/useradd test1 ##tom以管理员身份执行了useradd命令,添加用户test1Apr 5 14:00:50 localhost useradd[2128]: new group: name=test1, GID=501Apr 5 14:00:50 localhost useradd[2128]: new user: name=test1, UID=501, GID=501, home=/home/test1, shell=/bin/bashApr 5 14:07:15 localhost su: pam_unix(su-l:session): session closed for user tom

以后可以使用此命令日志查看主机是否遭到入侵攻击,或者查看某用户登录进来并使用特殊权限执行错误指令等等。所以我们要实时监控此文件的动向。

⑤、-k参数示例

而只有在充满了艰辛的人生旅途中,始终调整好自己观风景的心态,

Linux下sudo命令实例讲解

相关文章:

你感兴趣的文章:

标签云: