Linux入门系列——su和sudo su和sudo这两个命令是Linux运维必须要会的,通常在生产环境中都是使用普通帐号来登录,再使用su或sudo来执行一些管理命令 。
su:run a shell with substitute user and group ids
-,-l,--login 切换后使用指定用户的的shell 。
-c,--command=COMMAND 可以在不切换当前shell的情况下,用指定的用户来执行一个命令;
如果在su的时候没有加”-“或“-l”或“--login”那么默认的会使用 当前用户 的shell来执行 ;
sudo的配置文件是: /etc/sudoers,该文件可以定义哪个用户可以在哪个机器上以哪个用户的身份来执行哪些命令;
在配置sudo时必须使用 visudo 来编辑配置文件,因为使用visudo可以检查修改后的文件的语法是否正确;
可以将上面的配置行分成四部分:part1 part2 part3 part4
例如:
那么如果用户的数量过多的时候是不是要为每个用户来创建一个条目呢,很显示这样做是不科学的 。所以sudo就引入了别名的概念,其实和组也差不多;
alias定义的语法:
要注意的是,这个Alias的名称一定要大写;
user1是一个用户,user2是一个组,所以user2的前面要加上%
可以使用主机名,IP地址,网段(网段的掩码可以写成255.255.255.0 , 也可以写成/24)
命令必须使用绝对路径 。如果只指定了一个目录,那么用户就可以执行该目录下的所有的文件;上面的“=”右边的都可以使用“!”来取反 。表示除了xxx以外;
例子 :请允许user1,user2,user3在192.168.20.44和192.168.10.0/24网段的机器上使用sudo切换到root用户来执行useradd和setup命令;
然后就可以使用user1,user2,user3这三个用户去测试了;
注意:当用户第一次执行sudo命令的时候是需要用户输入自己的密码的 。当第一次输入正确后,这个密码就会被缓存5分钟,在5分钟内用户再次使用sudo来切换身份执行命令的时候就不需要再次输入自己的密码 。
这样呢有些时候会有一个安全隐患,所以为了去掉这个5分钟 , 可以在使用sudo命令的时候加上“-k”参数,这样用户在每次执行sudo命令的时候都会让用户输入自己的密码 。
如果想让某个用户在执行sudo的时候不需要输入自己的密码,那么可以在命令的前面添加NOPASSWD 。/etc/sudoers的内容如下:
这样的话,user1,user2,user3这三个用户在执行指定的命令的时候就不需要输入自己的密码了 。
如果其中的命令有的需要输入密码,有的不需要输入密码的话,那就把PASSWD:写在那些命令的前面 。或是把NOPASSWD:写在最后一个命令中;
例子:让用户user4使用passwd来管理用户的密码,但是不能给root用户设置密码:
注意:如果最后不加上!/usr/bin/passwd root的话,那么会有很大的漏洞,user4可以修改root用户的密码;当添加上后,user4再次执行sudo passwd root的时候就会提示:
grep对匹配结果取反 , 加什么参数?grep对匹配结果取反: grep -v "pattem" filefile2 。\x0d\x0agrep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来 。Unix的grep家族包括grep、egrep和fgrep 。\x0d\x0a\x0d\x0aegrep和fgrep的命令只跟grep有很小不同 。egrep和fgrep都是grep的扩展,支持更多的re元字符,fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊 。linux使用GNU版本的grep 。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能 。\x0d\x0agrep的工作方式是这样的,它在一个或多个文件中搜索字符串模板 。如果模板包括空格,则必须被引用 , 模板后的所有字符串被看作文件名 。搜索的结果被送到屏幕,不影响原文件内容 。\x0d\x0agrep可用于shell脚本 , 因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1 , 如果搜索的文件不存在,则返回2 。我们利用这些返回值就可进行一些自动化的文本处理工作 。\x0d\x0aGrep命令中允许指定的串语句是一个规则表达式,这是一种允许使用某些特殊键盘字符的指定字符串的方法 , 这种方法中的特殊键盘字符可以用于代表其他字符也可以进一步定义模式匹配工作方式 。例如:grep ".*hood" essay1 。该命令将在文件essay1中搜索,显示出包含带有字符串hood的字的每一行 。命令行中的点表示的是hood之前可以有任意字符 , 星号指的是在字符串之前点号所表示的任意字符可以有任意个(其中的双引号是可有可无的,但是当语句中包含短语或者空格时就必须加双引号) 。\x0d\x0a
推荐阅读
- 网络游戏代练,网络游戏代练接单平台
- 苹果手机屏幕怎么开关,苹果手机屏幕怎么开关机和关机
- python字典搜索,python字典快速查找
- c语言函数改变a的值 c语言变量的值的改变遵守什么原则
- 包含postgresql锁代码实现的词条
- 包含sqlserver查询结果到excel的词条
- 如何看到企业微信直播,如何看到企业微信直播记录
- linux卸载驱动命令 卸载 linux
- 下载爱豆,爱豆下载安卓