CentOS基础知识大全
关于etc文件夹
初期:早期UNIX中,贝尔实验室的解释是:etcetra directory 。 etc. 就是Et cetra。表示其他、等等什么的,英语里能常常看都这个缩写的。是用来放其他不能归类到其他目录中的内容。
后来FHS规定用来放配置文件,就解释为:"Editable Text Configuration" 或者 "Extended Tool Chest"。
linux下/etc为系统配置文件目录,该目录包含系统启动脚本、启动配置文件、用户登陆配置文件、网络配置文件、httpd 配置文件、IPSec 配置文件和其他文件等。
head 命令
head -n 3 //显示前三行
/etc/passwd 解说
最后一个字段为用户shell。当用户登录后,要启动一个进程,用来将用户下达的指令传给内核,这就是shell。
如果想建立一个不允许登录的账号,可以把该字段改成/sbin/nologin,默认是/bin/hash
新建组命令groupadd
groupadd 组名
删除组命令groupdel
groupdel 组名
增加用户命令useradd
-u:表示自定义UID
-g:表示使新增用户属于已经存在的某个组,后面可以跟组id,也可以跟组名。
-d:表示自定义用户的家目录。
-M:表示不建立家目录。
-s:表示自定义shell。
如果useradd不加任何选项,直接跟用户名,则会创建一个跟用户名相同的组。
删除用户命令userdel
userdel [-r] username 其中-r选项的作用是,当删除用户时,一并删除该用户的家目录。
为用户创建密码命令passwd
passwd 用户
生成密码命令mkpasswd
yum -y install expect
mkpasswd
whoami命令
whoami 查看当前用户
su命令
su [-] username 切换用户命令,后面可以跟-,也可以不跟,加上-后会初始化当前用户的各种环境变量。
exit命令,登出。
什么是su
su(switch user),切换用户。su的一般使用方法是su 或者su - ,加入了-参数,就是login-shell的方式,也就是说切换到另一个用户之后,当前的shell会加载对应的环境变量和各种设置;
如果没有加入-参数,就是non-login-shell的方式,也就是说当前的shell还是加载切换之前的那个用户的环境变量以及各种设置。
如果不想因为切换到另一个用户导致自己在当前用户下的设置不可用,那么就可以用non-login-shell的方式;如果切换用户后,需要用到该用户的各种环境变量,那么使用login-shell方式即可。
什么是sudo
全称为super user do,即以超级用户的方式执行命令,这里的超级用户指的就是root用户,我们在Linux中有时会遇到permission denied的情况,如以ubuntu用户的身份查看/etc/shadow的内容,因为它是只有root用户才能查看的,这个时候就可以使用sudo。
两者的区别在于:
使用su提供root账号的密码,可以切换到root用户;
使用sudo,提供当前用户的密码,也可以切换到root用户。
如果我们的Linux系统有很多用户需要使用的话,前者要求所有用户都知道root用户的密码,显然是非常危险的;后者是不需要暴露root账户密码的,用户只需要输入自己的账户密码就可以。