centos 执行命令 centos怎么输入命令
今天给各位分享centos 执行命令的知识,其中也会对centos怎么输入命令进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
CentOS后台执行命令
nohup英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
nohup命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out的文件到当前目录下,如果当前目录的 nohup.out文件不可写,输出重定向到$HOME/nohup.out文件中。
语法格式参数说明:
Command:要执行的命令。
Arg:一些参数,可以指定输出文件。
&:让命令在后台执行,终端退出后命令仍旧执行。
实例
以下命令在后台执行 root目录下的 runoob.sh脚本:
在终端如果看到以下输出说明运行成功:
这时我们打开 root目录可以看到生成了 nohup.out文件。
如果要停止运行,你需要使用以下命令查找到 nohup运行脚本到 PID,然后使用 kill命令来删除:
参数说明:
另外也可以使用ps-def| grep"runoob.sh"命令来查找。
找到 PID后,就可以使用 kill PID来删除。
以下命令在后台执行 root目录下的 runoob.sh脚本,并重定向输入到 runoob.log文件:
2>&1解释:
将标准错误 2重定向到标准输出&1,标准输出&1再被重定向输入到 runoob.log文件中。
au(x)输出格式: USER PID%CPU%MEM VSZ RSS TTY STAT START TIME COMMAND USER:行程拥有者 PID: pid%CPU:占用的 CPU使用率%MEM:占用的记忆体使用率 VSZ:占用的虚拟记忆体大小 RSS:占用的记忆体大小 TTY:终端的次要装置号码(minor device number of tty) STAT:该行程的状态: D:不可中断的静止 R:正在执行中 S:静止状态 T:暂停执行 Z:不存在但暂时无法消除 W:没有足够的记忆体分页可分配<:高优先序的行程 N:低优先序的行程 L:有记忆体分页分配并锁在记忆体内 START:行程开始时间 TIME:执行的时间 COMMAND:所执行的指令
centos7.9系统,运行了一个jar包,想把它停掉,但是怎么kill都杀不死
查看服务名:ps-ef| grep oys-core-4.0-SNAPSHOT.jar
查看得知进程PID= 12906
kill-9 12906杀死进程,发现线程不存在
再次查看服务名:ps-ef| grep oys-core-4.0-SNAPSHOT.jar,发现线程PID变了
解释:
那是因为oys-core-4.0-SNAPSHOT.jar根本就没有启动进程,看到的进程是grep指令的
如图:java标识的是jar启动的线程,grep标识的进程是输入了指令才显示的
-u的作用
python的输出是有缓冲的,即使在py脚本中每次遍历都有打印输出,但是因为缓冲的作用,我们不能在nohup.out日志中立即看到打印的输出。
加上-u参数,使得python不使用缓冲。
nohup python myscript.py-u> nohup.out 2>&1&
解析:
1 nohup不挂断地运行命令,忽略所有挂断信号(SIGNUP信号),比如当账号注销时。
最后的&:表示后台运行。
nohup command&,表示后台运行nohup命令。
2 linux中的0表示标准输入,1表示标准输出,2表示标准错误输出。
3>表示覆盖式重定向。正常输出是把内容输出到显示器上,重定向是把内容输出到文件中。 command> xxx.txt,将输出重定向到xxx文件中。
4>>表示追加式重定向。command>> xxx.log,将输出重定向追加到xxx.log文件中。
5 2>&1,2是标准错误输出,1是标准输出,这里的&表示引用的意思,对标准输出的引用。所以这个命令就表示将标准错误输出也重定向到标准输出指向的文件中。
centos 怎样写linux命令
Linux的常用基本命令。
首先启动Linux。启动完毕后需要进行用户的登录,选择登陆的用户不同自然权限也不一样,其中“系统管理员”拥有最高权限。
在启动Linux后屏幕出现如下界面显示:
……
Red Hat Linux release 9(Shrike)
Kernel2.4.20.8 on an i686
login:
输入:root(管理员名)后,计算机显示输口令(password:),输入你的口令即可。当计算机出现一个“#”提示符时,表明你登录成功!
屏幕显示Linux提示符:[root@localhost root]#_
这里需要说明的是“Red Hat Linux release 9(Shrike)”表示当前使用的操作系统的名称及版本。“2.4.20.8”表示Linux操作系统的核
心版本编号。“i686”表示该台电脑使用的CPU的等级。
下面我们来介绍常用基本命令
一,注销,关机,重启
注销系统的logout命令
1,Logout注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可:
[root@localhost root]#logout
Red Hat Linuxrelease 9(Shike)
Kernel2.4.20.8 on an i686
Login:←回到登陆的画面
2,关机或重新启动的shutdown命令
Shutdown命令可以关闭所有程序,依照用户的需要,重新启动或关机。
参数说明如下:
立即关机:-h参数让系统立即关机。范例如下:
[root@localhost root]#shutdown–h now←要求系统立即关机
指定关机时间:time参数可指定关机的时间;或设置多久时间后运行shutdown命令,范例如下:
[root@localhost root]#shutdown now←立刻关机
[root@localhost root]#shutdown+5← 5分钟后关机
[root@localhost root]#shutdown 10:30←在10:30时关机
关机后自动重启:-r参数设置关机后重新启动。范例如下:
[root@localhost root]#shutdown-r now←立刻关闭系统并重启
[root@localhost root]#shutdown-r 23:59←指定在23:59时重启动
3,重新启动计算机的reboot命令
顾名思义,reboot命令是用来重新启动系统的。常用的参数如下:
-f参数:不依正常的程序运行关机,直接关闭系统并重新启动计算机。
-I参数:在在重新启动之前关闭所有网络接口。
虽然reboot命令有个参数可以使用,但是一般只需要单独运行reboot命令就可以了
二,文件与目录的操作
1,列出文件列表的ls命令
ls(list)命令是非常有用的命令,用来显示当前目录中的文件和子目录列表。配合参数的使用,能以不同的方式显示目录内容。范例
如下:
显示当前目录的内容:
[tony@free tony]$ ls
Desktop mail myinstall.log test.txt←有两个目录及两个文件夹
当运行ls命令时,并不会显示名称以“.”开头的文件。因此可加上“-a”参数指定要列出这些文件。范例如下:
[tony@free tony]$ ls–a
以“-s”参数显示每个文件所有的空间,并以“-S”参数指定按所有占用空间的大小排序。范例如下:
[tony@free tony]$ ls–s–S
总计36
4 Desktop 4 mail 24 myinstall.log 4 test.txt
在ls命令后直接加上欲显示的目录路径,就会列出该目录的内容。范例如下:
[tony@free tony]$ ls–l/usr/games
2,切换目录的cd命令
cd(change directory)命令可让用户切当前所在的目录。范例如下:
[tony@free home]$ cd tony←切换到当前目录下的tony子目录
[tony@free tony]$ cd..←切换到上一层目录
[tony@free home]$ cd/←切换到系统根目录
[tony@free/]$ cd←切换到用户主目录
[tony@free tony]$ cd/usr/bin←切换到/usr/bin目录
3,创建目录的mkdir命令
Mkdir(make directory)命令可用来创建子目录。下面的范例会在所在目录下创建tool子目录。
[tony@free tony]$ mkdir tool
4,删除目录的rmdir命令
rmdir(remove directory)命令可用来删除“空”的子目录。范例如下:
[tony@free tony]$ rmdir tool←删除tool目录
5,复制文件的cp命令
cp(copy)命令可以将文件从一处复制到另一处。一般在使用cp命令将以个文件复制成另一个文件或复制到某个目录时,需要指定原始文件
名与目的文件名或目录。范例如下:
[tony@free tony]$ cp data1.txt data2.txt←将data1.txt复制成data2.txt
[tony@free tony]$ cp data3.txt/tmp/data←将data3复制到/tmp/data目录中
显示复制过程:加入-v参数可显示命令执行过程。范例如下:
[tony@free tony]$ cp zip.txt zip2.txt←一般状态下不会显示复制过程
[tony@free tony]$ cp–v zip.txt zip3.txt←以-v显示复制过程
zip.txt->zip3.txt
递回复制:加入“-R”参数可同时复制目录下的所有文件及子目录。范例如下:
[tony@free tony]$ cp–v–R* backup←将所有文件(含子目录文件)复制到backup目录
6,删除文件或目录的rm命令
rm(remove)命令可以删除文件或目录。范例如下:
[tony@free tony]$ rm myfile←删除指定的文件
[tony@free tony]$ rm*←删除当前目录中的所有文件
rm命令的常用参数如下:
强迫删除:使用-f参数时,rm命令会直接删除文件,不再询问。范例如下:
[tony@free tony]$ rm–f*.txt←强迫删除文件
递回删除:-r也是一个相当常用的参数,使用此参数可同时删除指定目录下的所有文件及子目录。范例如下:
[tony@free tony]$ rm–r data←删除data目录(含data目录下所有文件和子目录)
[tony@free tony]$ rm–r*←删除所有文件(含当前目录所有文件,所有子目录和子目录下的文件)
强制删除指定目录:当使用-r参数删除目录时,若该目录下有许多子目录及文件,则系统会不间断地询问,以确认您的确要删除
目录或文件。若已确定要删除所存目录及文件,则可以使用-rf参数,如此一来,系统将直接删除该目录中所有的文件及子目录,不再询问。范
例如下:
[tony@free tony]$ rm–rf tmp强制删除tmp目录及该目录下所有文件及子目录
显示删除过程:使用-v参数。范例如下:
[tony@free tony]$ rm–v
7,让显示画面暂停的more命令
为了避免画面显示瞬间就闪过去,用户可以使用more命令,让画面在显示满一页时暂停,此时可按空格键继续显示下一个画面,或按Q键停
止显示。
当使用ls命令查看文件列表时,若文件太多则可以配合more命令使用。范例如下:
[tony@free bin]$ ls–al more
单独使用more命令时,可用来显示文字文件的内容。范例如下:
[tony@free tony]$ more data.txt
8,连接文件的cat命令
cat(concatenate)命令可以显示文件的内容(经常和more命令搭配使用),或是将数个文件合并成一个文件。范例如下:
逐页显示 preface.txt的内容:
[tony@free tony]$ cat preface.txt more
将preface.txt附加到outline.txt文件之后:
[tony@free tony]$ cat preface.txt>> outline.txt
将new.txt和info.txt合并成readme.txt文件:
[tony@free tony]$ cat new.txt info.txt>readme.txt
9,移动或更换文件,目录名称的mv命令
mv(move)命令可以将文件及目录移动到另一个目录下面,或更换文件及目录的名称。范例如下:
[tony@free backup]$ mv a.txt..←将a.txt文件移到上层目录
[tony@free backup]$ mv z1.txt z3.txt←将 z1.txt改名成z3.txt
[tony@free backup]$ cd..←切换到上一层目录
[tony@free tony]$ mv backup..← backup目录上移一层
10,显示当前所在目录的pwd命令
pwd(print working directory)命令可显示用户当前所在的目录。范例如下:
[tony@free tony]$ pwd
/home/tony←当前所在目录为“/home/tony”
11,查找文件的locate命令
locate命令可用来搜索包含指定条件字符串的文件或目录。范例如下:
[tony@free tony]$ locate zh_CN列出所有包含“zh_CN”字符串的文件和目录。
由于locate命令是从系统中保存文件及目录名称的数据库中搜索文件,虽然系统会定时更新数据库,但对于刚新增或删除的文件、目录,
仍然可能会因为数据库尚未更新而无法查得,此时可用root身份运行updatedb命令更新,为此数据库得内容正确。
12,搜索字符串得grep命令
grep命令可以搜索特定字符串来并显示出来,一般用来过滤先前得结果,避免显示太多不必要得信息。范例如下:
[tony@free etc]$ grep text*.conf←搜索当前目录中扩展名为.conf且包含“text”字符串得文件。
grep:amd.conf:←拒绝不符权限得操作
grep:diskcheck.conf:←拒绝不符权限得操作
grep:grub.conf←拒绝不符权限得操作
若您是使用一般权限的用户运行,上例的输出结果会包含很多如“拒绝不符权限的操作之类的错误信息,可使用-s参数消除。
[tony@free etc]$ grep–s text*.conf
13,重导与管道
重导(redirect)可将某命令的结果输出导文件中,它有两中命令:“>”和“>>”。“>”可将结果输出到文件中,该文件原有的内容会被
删除:“>>”则将结果附加到文件中,原文件内容不会被清除。范例如下:
[tony@free tony]$ ls–a>dir.txt←将ls–a命令执行结果输出到dir.txt文件。
[tony@free tony]$ cat data1.txt>> data2.txt←将 data1.txt内容附加到data2.txt文件之后。
通道(pipe)命令的符号是“”,可将某命令的结果输出给另一命令,一下范例将ls命令的输出结果传给grep命令过滤:
[tony@free etc]$ ls gerp conf←搜索并显示ls命令运行结果中包含有“conf”字符串
在举一个删除文件或目录的例子,可以利用yes命令重复输出“y”字符的特性,将结果传给rm命令,如此即可避免重复输入“y”:
[tony@free tony]$ yes rm–r mydir
三,使用光盘及软盘
在Linux的文字模式下要使用光盘或软盘,并不是只将光盘或软盘放入即可,用户需要运行加载的命令,才可读写数据。所谓加载就是将存
储介质(如光盘和软盘)指定成系统中的某个目录(如/mnt/cdrom或mnt/floppy)。通过直接存取此加载目录,即可读写存储介质中的数据。
以下就来看看文字模式下的加载及卸载命令。
1,加载的mount命令
要使用光盘时先把光盘放入光驱,然后执行加载的mount命令,将光盘加载至系统中:
[tony@free tony]# mount/dev/cdrom/mut/cdrom←加载光盘
同理,使用软盘之前也需要和光盘一样,必须先加载后才能使用:
[tony@free tony]# mount/dev/fd0/mut/floppy←加载软盘
2,卸载的umount命令
如果不需要使用光盘或软盘,则需先执行卸载命令之后,才能将光盘或软盘退出。范例如下:
[tony@free tony]# umount/ mnt/cdrom←光盘卸载
在不使用软盘时执行umount命令卸载软盘,再将软盘拿出
[tony@free tony]# umount/ mnt/←软盘卸载
四,在后台运行程序
用户有时的程序有可能要花费很多时间,如果将它放在前台运行,将导致无法继续做其他事情,最好的方法就是将它放在后台运行,甚至
可能希望在用户注销系统后,程序还可以继续运行。让我们看看那如何实现这一目的。
1,在后台运行程序的&、bg命令
将程序放到后台运行的最简单方法就是在命令最后加上“&”,范例如下:
[tony@free root]# updatedb&←在后台执行 locate数据库更新命令
[tony@free root]# bg←将更新操作放到后台运行
2,前台运行的程序fg命令
如果用户当前已有程序在后台运行,可以输入fg命令,将它从背景中移到前台运行:
[tony@free root]# fg←放到前台执行的命令会显示出来
3,在退出后让程序继续运行的nohup命令
此命令可使用户退出系统后,程序继续运行。范例如下:
[tony@free rony]$ nohup myserver&
然后用户就可以退出了,当再次登录的时候,可以用ps–aux命令看到程序仍在后台中运行。
五,任务调度命令
计算机有很多程序需要周期性的被运用,例如清理磁盘中不要的暂存盘、备份系统数据、检查远程服务器的邮件等。对于这些重复性的工
作,其实不需要每次都辛苦地运行这些程序。可利用任务调度命令,指定系统定期在某个时间运行这些程序,轻轻松松完成想要执行的工作。
任务调度的crond常驻命令
crond是Linux用来定期执行程序的命令。当安装完成操作系统后,默认便会启动此任务调动命令。crond命令每分钟会定期检查是否有要
执行的工作,如果有要执行的工作,便会自动执行该工作。由于任务调度中间的操作过程十分繁杂,我们只将任务调度文件的写法介绍给大家
,供大家参阅:
Minute Hour Day Month DayOfWeek Command
在这段文字中除了“Command”是每次都必须指定的字段以外,其他自动皆可视需求自行决定是否指定。
六,任务调度的系统工作
/ect/crontab/文件是Linux系统工程的任务调度设置文件,其默认的内容如下:
SHELL=/bin/bash←指定执行任务调度工作时所使用的SHELL
PATH=/shin:/bin:/usr/sbin:/usr/bin←指定命令搜索的路径
MAILTO=root←指定将输出结果给root用户
HOME=/←指定跟目录
centos root权限执行命令和sudo有没有区别
一.使用 su命令临时切换用户身份
1、su的适用条件和威力
su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要添加用户任务,执行useradd,beinan用户没有这个权限,而这个权限恰恰由root所拥有。解决办法无法有两个,一是退出beinan用户,重新以root用户登录,但这种办法并不是最好的;二是我们没有必要退出beinan用户,可以用su来切换到root下进行添加用户的工作,等任务完成后再退出root。我们可以看到当然通过su切换是一种比较好的办法;
通过su可以在用户之间切换,如果超级权限用户root向普通或虚拟用户切换不需要密码,什么是权力?这就是!而普通用户切换到其它任何用户都需要密码验证;
2、su的用法:
su [OPTION选项参数] [用户]
-,-l,——login登录并改变到所切换的用户环境;
-c,——commmand=COMMAND执行一个命令,然后退出所切换到的用户环境;
至于更详细的,请参看man su;
3、su的范例:
1) su在不加任何参数
默认为切换到root用户,但没有转到root用户家目录下,也就是说这时虽然是切换为root用户了,但并没有改变root登录环境;用户默认的登录环境,可以在/etc/passwd中查得到,包括家目录,SHELL定义等;
[beinan@localhost~]?$ su root
Password:
[root@localhost beinan]# pwd
/home/beinan
2) su加参数-
表示默认切换到root用户,并且改变到root用户的环境;
[beinan@localhost~]$ pwd
/home/beinan
[beinan@localhost~]$ su-
Password:
[root@localhost~]# pwd
/root
3) su参数-用户名
[beinan@localhost~]$ su– root注:这个和su-是一样的功能;
Password:
[root@localhost~]# pwd
/root
[beinan@localhost~]$ su– linuxsir注:这是切换到 linuxsir用户
Password:注:在这里输入密码;
[linuxsir@localhost~]$ pwd注:查看用户当前所处的位置;
/home/linuxsir
[linuxsir@localhost~]$ id注:查看用户的UID和GID信息,主要是看是否切换过来了;
uid=505(linuxsir) gid=502(linuxsir) groups=0(root),500(beinan),502(linuxsir)
[linuxsir@localhost~]$ exit注:退出
logout
[beinan@localhost~]$
[beinan@localhost Desktop]$ su--c ls注:这是su的参数组合,表示切换到root用户,并且改变到root环境,然后列出root家目录的文件,然后退出root用户;
Password:注:在这里输入root的密码;
anaconda-ks.cfg install.log.syslog mydate1 mytask.sh Videos注:列出root家目录的文件;
Desktop jdk mydate2 Pictures workspace
Documents jdk-6u13-linux-i586.bin mydate3 Public Workspaces
Downloads Linux mydate4 software
install.log Music MyEclipse 2015 Templates
[beinan@localhost Desktop]$注:自动退出root用户;
[beinan@localhost Desktop]$ pwd
/home/beinan/Desktop
[beinan@localhost Desktop]$ id注:查看是否切换成功;
uid=506(beinan) gid=506(beinan) groups=506(beinan) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[beinan@localhost Desktop]$
4、su的优缺点;
su的确为管理带来方便,通过切换到root下,能完成所有系统管理工具,只要把root的密码交给任何一个普通用户,他都能切换到root来完成所有的系统管理工作;但通过su切换到root后,也有不安全因素;比如系统有10个用户,而且都参与管理。如果这10个用户都涉及到超级权限的运用,做为管理员如果想让其它用户通过su来切换到超级权限的root,必须把root权限密码都告诉这10个用户;如果这10个用户都有root权限,通过root权限可以做任何事,这在一定程度上就对系统的安全造成了威协;想想Windows吧,简直就是恶梦;“没有不安全的系统,只有不安全的人”,我们绝对不能保证这 10个用户都能按正常操作流程来管理系统,其中任何一人对系统操作的重大失误,都可能导致系统崩溃或数据损失;所以su工具在多人参与的系统管理中,并不是最好的选择,su只适用于一两个人参与管理的系统,毕竟su并不能让普通用户受限的使用;超级用户root密码应该掌握在少数用户手中,这绝对是真理!所以集权而治的存在还是有一定道理的;
二. sudo授权许可使用的su,也是受限制的su
1. sudo的适用条件
由于su对切换到超级权限用户root后,权限的无限制性,所以su并不能担任多个管理员所管理的系统。如果用su来切换到超级用户来管理系统,也不能明确哪些工作是由哪个管理员进行的操作。特别是对于服务器的管理有多人参与管理时,最好是针对每个管理员的技术特长和管理范围,并且有针对性的下放给权限,并且约定其使用哪些工具来完成与其相关的工作,这时我们就有必要用到 sudo。
通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码,所以sudo相对于权限无限制性的su来说,还是比较安全的,所以sudo也能被称为受限制的su;另外sudo是需要授权许可的,所以也被称为授权许可的su;
2. sudo执行命令的流程
1)给用户授权
当前用户切换到root(或其它指定切换到的用户),然后以root(或其它指定的切换到的用户)身份执行命令,执行完成后,直接退回到当前用户;而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权;
比如我们想用beinan普通用户通过more/etc/shadow文件的内容时,可能会出现下面的情况;
[beinan@localhost~]$ more/etc/shadow/etc/shadow
/etc/shadow: Permission denied注:权限不够
[beinan@localhost~]$
这时我们可以用sudo more/etc/shadow来读取文件的内容;就就需要在/etc/soduers中给beinan授权;于是我们就可以先su到root用户下通过visudo来改/etc/sudoers;(比如我们是以beinan用户登录系统的)
[beinan@localhost~]$ su
Password:注:在这里输入root密码
[root@localhost beinan]# visudo注:运行visudo来改/etc/sudoers
加入如下一行 beinan ALL=/bin/more,退出保存;
注:visudo也是用的vi编辑器;beinan ALL=/bin/more表示beinan可以切换到root下执行more来查看文件;退回到beinan用户下,用exit命令;
[root@localhost beinan]# exit
exit
[beinan@localhost~]$
2)beinan用户执行root下的权限,查看beinan的通过sudo能执行哪些命令
[beinan@localhost~]?$ sudo-l
Password:注:在这里输入beinan用户的密码
User beinan may run the following commands on this host:
(root)/bin/more注:在这里清晰的说明在本台主机上,beinan用户可以以root权限运行more;在root权限下的more,可以查看任何文本文件的内容的;
最后,我们看看是不是beinan用户有能力看到/etc/shadow文件的内容;
[beinan@localhost~]$ sudo more/etc/shadow
root:$1$mKOQVMQ8$kg3pR0NI4XBgX8KTk4OJI/:16541:0:99999:7:::
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::
adm:*:15980:0:99999:7:::
lp:*:15980:0:99999:7:::
sync:*:15980:0:99999:7:::
shutdown:*:15980:0:99999:7:::
halt:*:15980:0:99999:7:::
mail:*:15980:0:99999:7:::
beinan不但能看到/etc/shadow文件的内容,还能看到只有root权限下才能看到的其它文件的内容,比如;
[beinan@localhost~]$ sudo more/etc/gshadow
[sudo] password for beinan:
root:::
bin:::bin,daemon
daemon:::bin,daemon
sys:::bin,adm
adm:::adm,daemon
tty:::
disk:::
lp:::daemon
mem:::
kmem:::
wheel:::
mail:::mail,postfix
uucp:::
对于beinan用户查看和读取所有系统文件中,我只想把/etc/shadow的内容可以让他查看;可以加入下面的一行;
beinan ALL=/bin/more/etc/shadow
题外话:有的弟兄会说,我通过su切换到root用户就能看到所有想看的内容了,哈哈,对啊。但咱们现在不是在讲述sudo的用法吗?如果主机上有多个用户并且不知道root用户的密码,但又想查看某些他们看不到的文件,这时就需要管理员授权了;这就是sudo的好处;
3)用户组在/etc/sudoers中写法
如果用户组出现在/etc/sudoers中,前面要加%号,比如%beinan,中间不能有空格;%beinan ALL=/usr/sbin/*,/sbin/*
如果我们在/etc/sudoers中加上如上一行,表示beinan用户组下的所有成员,在所有可能的出现的主机名下,都能切换到root用户下运行/usr/sbin和/sbin目录下的所有命令;
4)取消某类程序的执行
取消程序某类程序的执行,要在命令动作前面加上!号;在本例中也出现了通配符的*的用法;
beinan ALL=/usr/sbin/*,/sbin/*,!/usr/sbin/fdisk注:把这行规则加入到/etc/sudoers中;但您得有beinan这个用户组,并且beinan也是这个组中的才行;
本规则表示beinan用户在所有可能存在的主机名的主机上运行/usr/sbin和/sbin下所有的程序,但fdisk程序除外;
[beinan@localhost~]$ sudo-l
Password:注:在这里输入beinan用户的密码;
User beinan may run the following commands on this host:
(root)/usr/sbin/*(root)/sbin/*(root)!/sbin/fdisk
[beinan@localhost~]$ sudo/sbin/fdisk–l
Sorry, user beinan is not allowed to execute'/sbin/fdisk-l' as root on localhost.
注:不能切换到root用户下运行fdisk程序;
如果有sudo的权限而没有su的权限: sudo su;