Confidential Property 9/20/2018 Confidential Property
Confidential Property Linux——用户篇 Shy / Web 9/20/2018 Confidential Property
Confidential Property 系统特点 多用户 多用户组 多任务 多桌面 和Windows相比,最大的特点是多人同时操登陆操作。 9/20/2018 Confidential Property
Confidential Property 用户和用户组 linux系统中对于账号而言,实际上就是ID,系统不关心名称本身,我们可以随便的起名字,只要不重复就可以,账号的列表存放在/etc/passwd下面。 cat /etc/passwd root #用户名称,代表用户,帐号名称不许重复 x #密码,用户登录时需要 0 #用户ID,系统内部用于来识别不同的用户的 0 #组ID,分组的唯一标识 root #描述信息,解释用户的相关信息,对系统操作没有用处 /root #用户根目录,登陆后默认进入的目录 /bin/bash #用户登陆shell,可查看操作命令集 9/20/2018 Confidential Property
Confidential Property 用户和用户组 用户名称root是超级管理员,由系统直接设置。 由于系统中/etc/shadow专门存放密码,因此在这里会用字母“x”表示。若用户没有密码,则该字段为空;若是字符“*”,则表示该用户被查封,无法登陆。 用户ID0代表系统管理员。如果我们创建了一个新用户,并将此字段设置为0,则该用户有管理员权限。 root的用户根目录是/root,其余账号的根目录在/home/username下面。 9/20/2018 Confidential Property
Confidential Property 密码管理 最初,用户的密码是直接存放在passwd文件中的,并且密码是被加过密的。但是,对于passwd文件任何用户都是可以进行查看的(可读的),而随着技术发展加密算法变得可被破解,最终导致了极大的安全隐患。 后来,使用专门的一个文件存储用户的密码,既保证了普通用户查看passwd的文件权限,有避免了密码数据被泄露。存放密码的文件是/etc/shadow,该文件只有系统管理员才能看到。 cat /etc/shadow 9/20/2018 Confidential Property
Confidential Property 密码管理 root #用户名称,同/etc/shadow $6$E1X**** #用户密码,加过密的密码(原始密码六个1) 16288 #上次改动密码的日期,按照unix时间戳为起始日期(1970年1月1日) 1971年1月1日即为366 0 #密码不可被改动的天数,设置后要经过该天数后才可更改密码 99999 #密码在规定天数内必须更改,99999可以理解为永不更改 7 #密码变更期限提醒,默认设置为提前7天提醒用户即将到期 #账号失效期,超过此时间未修改密码,账号将暂时失效 #账号取消时间,超过此时间后,账号无法使用(收费服务商) #保留字段,暂时没有用处 “!” ——用户被禁用 “*” ——用户不可以登录 “!!” ——禁用(一般创建完未设置密码时使用) 为空 ——表示登录时不需要密码 9/20/2018 Confidential Property
Confidential Property 用户组 我们为什么需要用户组,假设这样一个场景,有多个人在同一台机器做A事情,有另一波人也在这台机器做B事情,做A和B事情时大家需要的权限各不相同。我们知道,linux系统中可以为每个用户设置不同的权限,若我们要分别对所有用户设置相应的权限,那么问题来了,若A小组需要修改某个权限,我们要一个个分别做修改,效率非常低效;而且,每次新添加一个成员,也要重新设置相应的权限。 cat /etc/group 9/20/2018 Confidential Property
Confidential Property 用户组 bin #群组名称,群识别标志 x #群组密码 1 #组ID,系统识别群的唯一标识 bin,daemon #群组下的账号列表 用户组是权限的容器,用户组下的所有用户,可以继承所在组的权限。 群组密码我们平时很少使用,只有在需要用群组登陆时才会设置。该密码也保存在/etc/shadow中。 如果在root组里面,将某个用户名加入到账号列表字段中,则该账号的组就变成了root。 9/20/2018 Confidential Property
Confidential Property 账号管理 一般情况下,我们一定要避免直接操作修改这些文件/etc/passwd、/etc/shadow、/etc/group。 adduser 添加用户 passwd 修改密码。 chfn 修改用户资料。 chsh 更改用户的shell chmod 更改用户的权限 chown 更改所有者 chgrp 更改用户组 sudo 临时提升为root权限 who 显示当前谁在使用 whoami 显示自己是谁 9/20/2018 Confidential Property
Confidential Property 账号管理 #创建一个mytest账号,目录在/opt/testfolder下,id为1234,组权限为root root@localhost [~] useradd -u1234 -groot -d/opt/testfolder mytest #查看创建用户的相关信息 root@localhost [~] grep mytest /etc/passwd mytest:x:1234:0::/opt/testfolder:/bin/bash root@localhost [~] ls -l /opt/testfolder/ total 0 #刚创建完用户,密码为'!!',表示被禁用 root@localhost [~] grep mytest /etc/shadow mytest:!!:16514:0:99999:7::: #设置密码 root@localhost [~] passwd mytest #设置后再看,账号禁用已被取消 root@localhost [~] grep mytest /etc/shadow 9/20/2018 Confidential Property
Confidential Property 账号管理 mytest@localhost [~] chfn Changing finger information for mytest. Password: Name []: ranshy Office []: 夏之冰雪工作室 Office Phone []: 88888888 Home Phone []: 66666666 Finger information changed. #查看修改后的信息 mytest@localhost [~] grep mytest /etc/passwd mytest:x:1234:0:ranshy,夏之冰雪工作室,88888888,66666666:/opt/testfolder:/bin/bash 9/20/2018 Confidential Property
Confidential Property 权限管理 linux系统下的所有文件,对不同用户都是有不同权限的,而控制用户权限的是chmod指令。介绍chmod指令前,我们首先了解下文件和目录的相关权限。 mytest@localhost [~] mkdir folder mytest@localhost [~] touch file mytest@localhost [~] ls -l total 4 -rw-r--r--. 1 mytest root 0 Mar 20 14:09 file drwxr-xr-x. 2 mytest root 4096 Mar 20 14:09 folder 9/20/2018 Confidential Property
Confidential Property 权限管理 ls -l | tail -n1 | awk '{gsub(/ /,"\n");print}' drwxr-xr-x. #文件类型和文件权限,第一个字符是文件的类型标志,后9个为权限标志 2 #硬链接数 mytest #文件或目录的拥有者 root #文件或目录所属的分组 4096 #文件或目录的大小 Mar #创建月 20 #创建日 14:09 #创建具体时间 folder #文件或目录的创建名称 9/20/2018 Confidential Property
Confidential Property 权限管理 在这里,重点讲解文件类型以及权限,需要注意几个知识点: 第一个字符代表文件类型,“-”表示普通文件,“d”表示目录,“b”表示块设备文件,“c”为字符设备文件,“l”表示文件链接。 linux文件权限有三种,即可读、可写、可执行,对应的就是rwx,没有权限则用字符“-”标识,对于目录而言可执行代表可以cd进入。 而文件权限的又分为三组,因此这里由九个字符组成rwxr-xr-x,红色为文件拥有者权限,绿色为文件所属用户组的权限,黄色代表其它用户的权限,root拥有所有文件拥有者的权限。 文件权限采用八进制设计,各个权限的值代表的数字为r(4)、w(2)、x(1)、-(0),例如folder目录权限rwxr-xr-x对应的数字为755。 9/20/2018 Confidential Property
Confidential Property 权限管理 chmod –R 777 folder chmod a-rwx file chmod u+rwx test/ chmod g=rx test/ chmod o-rwx test/ 9/20/2018 Confidential Property
Confidential Property 账号操作 whoami who sudo shell su root sudo su 9/20/2018 Confidential Property
Confidential Property 账号操作 提高linux服务器的账号安全级别,我们通常是禁止root账号直接远程连接(如ssh),而仅提供普通用户连接权限。普通用户连接后,再通过切换账号来获得root权限。 #修改/etc/ssh/sshd_config #文件查找“#PermitRootLogin yes”,将前面的“#”去掉,短尾“Yes”改为“No” UseDNS no AddressFamily inet PermitRootLogin no root@localhost [~] service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ] 9/20/2018 Confidential Property
Confidential Property 账号操作 赋予一个用户root权限,有多种方法,这里介绍一种最常用的、推荐的方法。修改/etc/sudoers文件,找到root设置那一行,在下面添加类似内容,保存即可。若加入NOPASSWD,则切换管理员时不需要密码。 ## Allow root to run any commands anywhere root ALL=(ALL) ALL ranshy ALL=(ALL) ALL #增加NOPASSWD选项,不需要输入密码 mytest@localhost [~] vi /etc/sudoers ## Allow root to run any commands anywhere root ALL=(ALL) ALL ranshy ALL=(ALL) NOPASSWD: ALL 9/20/2018 Confidential Property
Confidential Property The End 9/20/2018 Confidential Property