本系列的博客来自于:http://www.92csz.com/study/linux/linux
在此,感谢原做者提供的入门知识shell
这个系列的博客的目的在于将比较经常使用的liunx命令从做者的文章中摘录下来,供本身学习和复习之用。安全
管道命令,是指 | 的左边运行结果 是|右边的 输入条件或者范围。bash
【认识/etc/passwd和/etc/shadow】学习
这两个文件能够说是linux系统中最重要的文件之一。ui
/etc/passwd由’:’分割成7个字段,每一个字段的具体含义是:加密
1)用户名(如第一行中的root就是用户名),表明用户帐号的字符串。用户名字符能够是大小写字母、数字、减号(不能出如今首位)、点以及下划线,其余字符不合法。虽然用户名中能够出现点,但不建议使用,尤为是首位为点时,另外减号也不建议使用,由于容易形成混淆。unix
2)存放的就是该帐号的口令,为何是’x’呢?早期的unix系统口令确实是存放在这里,但基于安全因素,后来就将其存放到/etc/shadow中了,在这里只用一个’x’代替。生命周期
3)这个数字表明用户标识号,也叫作uid。系统识别用户身份就是经过这个数字来的,0就是root,也就是说你能够修改test用户的uid为0,那么系统会认为root和test为同一个帐户。一般uid的取值范围是0~65535,0是超级用户(root)的标识号,1~499由系统保留,做为管理帐号,普通用户的标识号从500开始,若是咱们自定义创建一个普通用户,你会看到该帐户的标识号是大于或等于500的。进程
4)表示组标识号,也叫作gid。这个字段对应着/etc/group 中的一条记录,其实/etc/group和/etc/passwd基本上相似。
5)注释说明,该字段没有实际意义,一般记录该用户的一些属性,例如姓名、电话、地址等等。不过,当你使用finger的功能时就会显示这些信息的(稍后作介绍)。
6)用户的家目录,当用户登陆时就处在这个目录下。root的家目录是/root,普通用户的家目录则为/home/username,这个字段是能够自定义的,好比你创建一个普通用户test1,要想让test1的家目录在/data目录下,只要修改/etc/passwd文件中test1那行中的该字段为/data便可。
7)shell,用户登陆后要启动一个进程,用来将用户下达的指令传给内核,这就是shell。Linux的shell有不少种sh, csh, ksh, tcsh, bash等,而Redhat/CentOS的shell就是bash。查看/etc/passwd文件,该字段中除了/bin/bash外还有/sbin/nologin比较多,它表示不容许该帐号登陆。若是你想创建一个帐号不让他登陆,那么就能够把该字段改为/sbin/nologin,默认是/bin/bash。
/etc/shadow,用”:”分割成9个字段。
1)用户名,跟/etc/passwd对应。
2)用户密码,这个才是该帐号的真正的密码,不过这个密码已经加密过了,可是有些黑客仍是可以解密的。因此为了安全,该文件属性设置为600,只容许root读写。
3)上次更改密码的日期,这个数字是这样计算得来的,距离1970年1月1日到上次更改密码的日期,例如上次更改密码的日期为2012年1月1日,则这个值就是365*(2012-1970)+1=15331。
4)要过多少天才能够更改密码,默认是0,即不限制。
5)密码多少天后到期。即在多少天内必须更改密码,例如这里设置成30,则30天内必须更改一次密码,不然将不能登陆系统,默认是99999,能够理解为永远不须要改。
6)密码到期前的警告期限,若这个值设置成7,则表示当7天后密码过时时,系统就发出警告告诉用户,提醒用户他的密码将在7天后到期。
7)帐号失效期限。你能够这样理解,若是设置这个值为3,则表示:密码已经到期,然而用户并无在到期前修改密码,那么再过3天,则这个帐号就失效了,即锁定了。
8)帐号的生命周期,跟第三段同样,是按距离1970年1月1日多少天算的。它表示的含义是,帐号在这个日期前可使用,到期后帐号做废。
9)做为保留用的,没有什么意义。
【新增/删除用户和用户组】
a. 新增一个组 groupadd [-g GID] groupname
不加-g则按照系统默认的gid建立组,跟用户同样,gid也是从500开始的
-g选项能够自定义gid
b. 删除组 groupdel groupname
没有特殊选项
c. 增长用户 useradd [-u UID] [-g GID] [-d HOME] [-M] [-s]
-u 自定义UID
-g 使其属于已经存在的某个GID
-d 自定义用户的家目录
-M 不创建家目录
-s 自定义shell
useradd -u 510 -g 504 -M -s /sbin/nologin test111
终端显示:test111:x:510:504::/home/test111:/sbin/nologin
建立test11时,加上了-M选项后,在/etc/passwd文件中test11那行的第六字段依然有/home/test11,但是ls查看该目录时,会提示该目录不存在。
-M选项的做用就是不建立用户的家目录。
d.删除用户userdel [-r] username
-r 删除用户时,连同用户的家目录一块儿删除。
【用户身份切换】
Linux系统中,有时候普通用户有些事情是不能作的,除非是root用户才能作到,这时候就须要临时切换到root身份来作事了。
使用su -就能够切换成root身份,固然这须要知道root密码
可使用 echo $LOGNAME 来查看当前登陆的用户名
su 的语法为:su [-] username
后面能够跟"-"也能够不跟,普通用户su不加username时就是切换到root用户,固然root用户一样能够su到普通用户。
加"-"后会连用户的环境变量一块儿切换过来。su test 后虽然切换到了test用户,可是当前目录仍是切换前的/root目录,而后当用su - test 时切换用户后则到了test的home目录 /home/test。当用root切换普通用户时,是不须要输入密码的。
用su是能够切换用户身份,若是每一个普通用户都能切换到root身份,若是某个用户不当心泄露了root的密码,这样会形成系统的不安全,为了改进这个问题,产生了sudo这个命令。使用sudo执行一个root才能执行的命令是能够办到的,可是须要输入密码,这个密码并非root的密码,而是用户本身的密码。默认只有root用户才能使用sudo命令,普通用户想要使用sudo,是须要root预先设定的,即,使用visudo命令去编辑相关的配置文件 /etc/sudoers 。若是没有visudo这个命令,使用yum install -y sudo 安装。