前言
名词解释
shell
shell是用户与作业系统之间的交互层,用户修改其环境,设置或 取消shell的环境变量,迎合用户的需要和爱好。 shell本身就是一个电脑程序,用C语言编写,为协助用户与作业系统之间通讯而设计,管理用户与核心(Dernel)之间对话,并 把作业系统指令换成机器代码,其实PC用户常用的DOS,本身就是一个shell。
#,$
$表示普通用户#表示超级用户,也就是root用户
service
可能经常会用到service XXX restart来启动某个程序,而其实service的绝对路径为/sbin/service ,打开这个文件cat /sbin/service,我们会发现其实它就是一个很普通的shell脚本:
su
是switch user的缩写
1.切换用户
当在linux中有多个用户的时候,可以用 su username 命令来切换用户
2.切换root
su root 命令只切换root身份,但Shell环境仍然是普通用户的Shell,工作目录仍然是普通用户的工作目录,而且不可以使用service命令
3root切换为其他用户的时候不用输入密码,但是其他用户切换为root用户时需要输入密码
su -
su - root 命令后
su -连用户和Shell环境一起切换成root身份了,工作目录变成root的工作目录,可以使用service命令
su和su -
sudo
因为su和su -切换为root用户时都需要输入root密码,但是如果用的人比较多的时候,这个root密码就不安全了,所以sudo可以避免这种情况,sudo只需要自己的密码
切换到root身份通过vi编辑器来修改sudoers文件,输入vi /etc/sudoers 命令,第一列root不用多说,是用户账号,第二列的ALL意思是登陆者的来源主机名,第三列等号右边小括号里的ALL是代表能够切换的身份,第四列ALL是可运行的命令。
1).将用户提升到管理员权限
假设我要我当前这个用户能运行root的全部操作,那么我仅仅要加一行Jamie ALL=(ALL) ALL。那么假设有非常多人须要运行sudo。那不是要写编写非常多行啊,这样不是非常麻烦,这样就要用到用户组了。
2).利用用户组处理visudo:
看看第二个红色方框那行代码。%wheel代表wheel用户组。假设我们将须要运行root全部操作的用户都加入到wheel用户组,或者我们自己定义的用户组。然后加入一行代码。那么就不用一个用户一个用户的加入进来了
3).限制用户sudo的权限:
我们可能不需要用户有那么多的权限。所以只让他们管理某一块的东西就可以了,比如让某些人只帮root用户来管理passwd,那就只给他管理passwd的权利,
假设我让我当前用户来管理password。也就是jamie这个用户能使用passwd这个命令来帮root改动用户password。仅仅要加这行jamie ALL=(root) /usr/bin/passwd,那么jamie这个用户就能够使用passwd这个命令了。
后记
其他的功能还在研究中,感觉linux中的神奇之处还有很多,等待我去发掘的功能也还有很多!