管理员用户默认为root,一般情况下是不变的,用户的身份是按照uid来进行定义的
管理员用户:uid:0,管理员用户拥有最高权限
普通用户:uid:1000+(centos7)500+(centos6),普通用户都是管理员用户创建的,拥有的权限是受限的,普通用户在自己的家目录拥有完整的权限(bin、sbin)
程序用户:uid:1-999(centos7)1-499(centos6),安装操作系统以及某些特定程序时会安装一些低权限的账号,这些用户是不允许登录到系统的,用于维持特定的系统程序以及某个第三方程序的正常运行
id 用户名 :查看用户的uid
uid=1001(lisi) gid=1001(lisi) groups=1001(lisi),1000(hqy)
基本组 附加组
用户账号文件/etc/passwd
基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改。
在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字串并进行暴力破解,因此存在一定的安全隐患。后来经改进后,将密码转存入专门的shadow文件中,而passwd文件中仅保留密码占位符“x”。
root : x : 0 : 0 : root : /root : /bin/bash
字段1:用户帐号的名称
字段2:用户密码占位符“x”
字段3:用户帐号的UID号
字段4:所属基本组帐号的GID号
字段5:用户全名
字段6:宿主目录
字段7:登录Shell信息(/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)
用户账号文件/etc/shadow
默认只有 root 用户能够读取 shadow 文件中的内容,且不允许直接编辑该文件中的内容。
root : $6$VyOUGqOC$v5HlLM1wagZC/FwGfnrtJFnlT : 18445 : 0 : 99999 : 7 : : :
字段1:用户帐号的名称
字段2:使用MD5加密的密码字串信息,当为“*”或“!!”时表示此用户不能登录到系统。若该字段内容为空,则该用户无须密码即可登录系统
字段3:上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数
字段4:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制
字段5:密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制
字段6:提前多少天警告用户密码将过期,默认值为7
字段7:在密码过期之后多少天禁用此用户
字段8:帐号失效时间,此字段指定了用户作废的天数(从1970年01月01日起计算),默认值为空,表示账号永久可用。
字段9:保留字段(未使用)
用户的基本命令:
切换用户:
su - 用户名:完整切换
su 用户名:不完整切换
su不指定用户默认登录管理员账户
su在root用户下具有刷新的功能
修改主机名:
hostname 用户名:临时修改主机名
hostnamectl set-houstname 用户名:永久修改主机名
exit:退出当前用户
w:查询已经登录到主机的用户信息
who:w的简略版
users:用户
1. useradd:创建用户
格式:useradd 选项(多个选项) 用户名
选项:
-u:指定uid号,uid号必须未被使用
-d:指定用户的家目录的位置
-e:指定用户账号的失效时间y-m-d
-g:指定用户的基本组
-G:指定用户的附加组
-M:不建立用户的家目录
-s:指定用户的登录shell
例题:
创建一个用户,指定uid为1010,指定家目录为/opt/test,指定基本组为ky,指定附加组为ky30
useradd -u 1010 -d /opt/test -g ky -G ky30 test
2. 设置密码:(面试题)
(1). echo 密码 | passwd --stdin 用户名
(2). passwd
passwd 用户名:设置密码
-d:清空用户账户的密码,也就是可以不需要密码就可以登录
-l:锁定用户账户,锁定了之后就不发登录
-S:查看用户账号的状态(是否被锁定)
-u:解锁用户账户
3. usermod:修改用户账号的属性
格式:
usermod 项目 用户名
-u:修改用户的uid
-d:修改用户的家目录位置
-e:修改用户账户的失效时间
-g:修改用户的基本组
-G:修改用户的公共组
-s:修改用户的登录shell
-L:锁定用户
-U:解锁用户账户
面试题:
锁定用户的两种方法:
1.passwd -l
2.usermod -L
当用户的家目录丢失时该怎么解决:
新建家目录:
cd /home
mkdir test
复制配置文件.bashrc和.bash_profile到家目录中:
cp /etc/skel/.bashrc /home/test/
cp /etc/skel/.bash_profile /home/test/
修改权限:
chown test:test test
cd /home/test
chown test:test .bashrc
chown test:test .bash_profile
4. userdel -r:删除用户账号
5. 配置文件:
/etc/profile:用户账号的初始配置文件,对所有用户都生效
~/.bash_profile:用户自定义,只对当前用户生效
~/.bashrc:用户自定义,只对当前用户生效
sourc命令:读取配置文件使其理解生效
6.group:组账号文件
groupadd:添加组账号
groupdel:删除组账号
gpasswd:添加删除组成员
文件/目录的权限和归属
访问权限:
读取r:允许查看文件内容、显示目录列表
写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行x:允许运行程序、切换目录
归属:
属主:拥有该文件或目录的用户账号
属组:拥有该文件或目录的组账号
chomd:设置文件/目录的权限
-R:递归修改权限,只会对最后一个子目录生效
第一个字符为文件类型,后面三个为一组,第一组为所有者权限,第二组为所在组权限,第三组为其他用户的权限
方法一:
u:文件所有者
g:文件所在组
o:其他用户
a:所有用户
格式:
chomd u/g/o/a +/-/= r/w/x 文件名/目录名
方法二:
r:4
w:2
x:1
格式:
chomd 777 文件名/目录名 - rwx rwx rwx
7 7 7
chown:设置文件/目录的归属
-R:递归修改归属,只会对最后一个子目录生效
格式:
chown 所有者 : 所在组 文件名/目录-------两个都改
chown 所有者 文件名/目录------------------只改所有者
chown : 所在组 文件名/目录----------------只改所在组
umask:文件和目录的创建之后的权限;临时的默认为022
文件默认权限:666 ;目录的默认权限:777
默认权限 - umask = 创建后文件权限
文件默认不给执行权限
目录自带执行权限
面试题: cp /etc/passwd /opt/ky30 cp的命令需要的最低权限
cp:执行
passwd:读
ky30:写