目录
绪论:
1、家目录丢失恢复
2、用户账号
2.1 用户账号文件:/etc/passwd 编辑
2.2 用户账号文件密码存储:/etc/shadow
3、添加用户账号(创建用户):useradd
4、创建密码:passwd 用户
5、切换用户:su
6、修改用户账户的属性:usermod 选项 用户名
7、全局生效和个人生效用户账号初始配置文件
7.1 全局生效
7.2 个人生效
8、指定用户登陆时,以脚本的形式执行,弹出来提示语 "欢迎你!"
9、组账户文件:group
补充:
10、文件/目录的权限和归属
root:管理员默认用户
uid:是确定管理员身份
管理员uid=0就是管理员,拥有最高权限
用户的信息都在 vim /etc/passwd下面
id root 查看uid和gid号和基本组
gpasswd -a lt root 给root超级用户添加一个附加组
cat /etc/group查看
给普通用户添加一个附加组用户:
groups=1002(lisi):为基本组(私有组),只能有一个
1000(dn):为附加组(公共组,可以有多个)
在linux系统中:我们统一用用户作为标的
管理员用户
普通用户:普通用户都是管理员用户创建的,拥有的权限是受限的,普通用户在自己的家目录拥有完整的权限
程序用户:是在安装操作系统以及默写特定程序时,会安装一些低权限的账号,这些用户是不允许登录到系统的,它的作用是维持特定的系统程序以及某个第三方程序的正常运行
三种用户是按照uid号进行区分:
管理员uid:0
普通用户:1000+(centos7)
程序用户:1-999
用户标识号:uid
组账户标识:gid
模拟环境:在干净的虚拟机环境下
建立用户:useradd yh1
进入到它的家目录删掉模拟环境:
cd /home
rm -rf yh1
此时:su - yh1会出现:
在后面输入su回管理员用户
在/home家目录里面建立用户yh的目录:mkdir yh1
再次su - yh1会出现:
输入exit退出。。。因为此时只有目录里面没有配置文件
所以需要到 /etc/skel 里面复制出来:
cp /etc/skel/.bash_profile /home/yh1
cp /etc/skel/.bashrc /home/yh1 到yh1里面
此时在/home下面ll:
发现 yh1的属主和属组是root 需要chown改成yh1:chown yh1:yh1 yh1
此时可能会报错,需要cat /etc/passwd
可以看到图中test用户没有建立组:
test属于ky30,需要:groupadd test
(要以用户为标的)
此时就可以:chown yh1:yh1 yh1(给目录的权限)
到cd /home/yh1
ll 显示total 0是因为那些是隐藏文件
修改.bash_profile和.bashrc的属主和属组
chown yh1:yh1 .bash_profile
chown yh1:yh1 .bashrc
最后:su - yh1显示:
root:用户名
x:密码站位符
0:uid号
0:gid号
root:用户全名
/root:用户的家目录
/bin/bash:登录的shell信息,表示用的bash解释器,可以登录到系统
/sbin/nologin或者/bin/false:不能登录到系统
root:用户名
第二长段字符:密码
格式:useradd 选项 用户名(u d s 比较重要)
useradd -u :指定uid号,uid不能重复未被使用的
useradd -d:指定用户家目录的位置
useradd -e:指定用户账户的失效时间,格式是yyyy-mm-dd
useradd -g:指定用户的基本组
useradd -G:指定用户的附加组
useradd -M:不建立用户的家目录,如果不建立家目录账号可能出现异常情况
useradd -s:指定用户的登录shell
删除用户:
userdel删除用户 userdel -r 多余的不用的信息删除,删除家目录
出现userdel: user lt is currently used by process 6116 可以用kill -9 6116也可以一直exit退到不能退为止
不指定条件添加用户:useradd yh
查看:cat /etc/passwd或者cat /etc/shadow 或者id yh
例题:创建一个用户,制定它的uid号1010,指定家目录到/opt/test,指定基本组的组名,再指定附加组,在指定登录shell
uesradd ky
useradd ky30
useradd -u 1010 -d /opt/test -g ky -G ky30 -s /bin/bash test
创建好用户要创建密码
passwd 用户
或者echo 123 | passwd --stdin ky30
passwd -d:清空用户账户的密码,也就是不需要密码就可以直接登录
passwd -l:锁定用户的账户,已经被锁定的就无法登陆
passwd -S:查看用户账户的状态,是不是被锁定
passwd -u:解锁用户账户
{
prd:生产环境
pre:预生产环境
sit:测试环境
dev:开发环境
}
su - 用户名
su 用户名
直接su切换回root用户,在root用户下su有刷新功能
hostname ky30临时修改主机名 没有变化su刷新一下
hostnamectl set-hostname ky30 永久修改,不需要重启系统,su刷新一下就生效
vim /etc/hostname进入编辑,保存退出,但是要重启生效,永久修改
usermod -u:修改用户的uid号
usermod -d:修改用户的家目录位置
usermod -e:修改用户账户的失效时间
usermod -g:修改用户的基本组
usermod -G:修改用户的附加组
usermod -s:修改用户的登录shell
usermod -L:锁定账号
usermod -U:解锁用户账户
例子:usermod -L yh
面试题:锁定用户的两种方法:
1、锁密码 passwd -l
2、锁用户 usermod -L
用户账号的初始配置文件:/etc/profile 全局生效,所有用户生效
source /etc/profile 读取配置文件中的命令即刻生效,不用重启
命令:在 /home 目录下:vim /etc/profile
注意cat和=之间没有空格
刷新一下:source /etc/profile 读取配置文件中的命令即刻生效,不用重启
此时cat /etc/passwd 里面的别名就会生效,把查看的文件都进行编号,
全局生效:此时进入到其他用户也会生效
命令一样
命令:
1、 bashrc个人:
注意进入到vim .bashrc里面要注意cat和=之间没有空格
2、bash_profile个人
命令:
useradd yh
cd /opt
vim test.sh
cd /home/yh1
vim .bash_profile
source .bash_profile会跳出
此时也可以进入yh1进行 source .bash_profile也会跳出
cat /etc/group
groupadd ky30 添加组账号
groupadd -g 1100 ky30 gid号的方式添加组
添加删除组成员:gpasswd
gpasswd -M yh1,yh2,yh3 yh
cat etc/group
把yh1,2,3添加到yh里面去
删除:gpasswd -d yh1 yh
把yh1从yh组里面删除
查询已经登录到主机的用户信息:
w
who
users
chmod:赋予权限
u 文件的所有者
g 文件所在组
o 其他用户
a 所有用户
chmod ugoa +-= 文件名/目录名 +:给权限 - :收回
只给所有者执行权限:chmod u+x 123
收回:chmod u-x 123
r=4 w=2 x=1
chmod 权限 文件名
给文件所有者r,所在组w,其他用户x:chmod 421 文件名
文件一般没有执行的权限,需要用到chmod赋予
chmod -R递归所有目录的权限:chmod -R 444 目录名
但是目录一定有执行权限
chmod -R 777 aa/bb/cc 只有cc生效
chown:设置文件和目录的归属(修改所有者和所在组)
chown lt:lt 文件名 所有者和所在组都改
chown lt 文件名 只改所有者
chown :lt 文件名 只改所在组
chown -R lt:lt 目录 里面的所有文件都改了
chown -R lt:lt aa/bb/cc 还是只有cc变化
umask:决定了创建完文件目录的默认权限,默认022
touch ky30 默认权限644
文件默认权限是666,目录的默认权限是777。减去umask
但是umask 555 文件的权限应该是111,但是不给文件执行权限,文件减去umask之后是奇数自动加一,所以是222.目录不受影响。想要给文件执行权限可以chmod
面试题:cp /etc/passwd /opt/ky30 能够执行命令的最低权限
cp 执行
passwd 可读
ky30 可写
总结:
· 看管理员:uid 0 管理员
cat /etc/passwd所有的用户信息
· useradd 创建用户
passwd 密码
echo 密码 | passwd --stdin 用户名
锁定解锁密码 passwd -l passwd -u
· usermod -u -s
锁定用户解锁用户 usermod -L -U
· 删除用户: userdel -r 家目录一起删
· groupadd:创建组
删除组:groupdel
添加删除组成员:gpasswd
· 权限:chmod igoa +-= rwx
chmod 777 或者666
chmod -R 目录 (目录和目录下所有的都改变)
要是递归子目录只变最后一个
· chown 改属主和属组