管理员用户一般默认为:root用户
cat /etc/passwd 查看用户账户信息文件
普通用户:普通用户都是由管理员用户创建的,拥有的权限是受限的
普通用户在自己的家目录拥有完整的权限(bin、sbin受限)
程序用户:安装操作系统以及某些特定程序时,会安装一些低权限的账号,
主要用来维持特定的系统程序,以及某个第三方程序的正常运行;
这些用户是不能登录到系统的(nologin)
通过uid区分用户类型:
管理员 0
普通用户 centos7,1000+;centos6,500+;
程序用户 centos7,1-999;centos6,1-499;
id root 查看root用户的简略信息
gpasswd -a user1 user2 将用户1添加为用户2的附加组
group 基本组(私有组) 基本组只能有一个
dn 附加组(公共组) 附加组可以有多个
在Linux系统中:我们统一用账户、用户作为标的
用户名;x密码占位符;0 uid;0 gid;root 用户全名;/root 用户的家目录
/bin/bash 登录到shell bash解释器;可以登录到系统
/sbin/nologin 不能登录到系统,适用于一般用户
/etc/shadow 用户账号文件
保存用户的密码、账户有效期等信息
文件位置:/etc/shadow
每一行对应一个用户的密码记录
用户名;密码
添加用户账号
useradd [选项] 用户名
常用选项:
-u 指定uid号(uid号要未被使用)
-d 指定用户家目录的位置
-e 指定用户账户的失效时间;yyyy-mm-dd
-g 指定用户的基本组
-G 指定用户的附加组
-M 不建立用户的家目录
-S 指定用户的登录shell
查看用户信息:
cat /etc/passwd
cat /shadow
id 用户名
创建密码的两种方式:
passwd 用户名
echo 密码 | passwd --stdin 用户名
passwd 管理用户账户
-d 清空账户密码;清空后可以免密登录
-l 锁定账户;锁定后无法登录(小写L)
-s 查看账户的状态,是否被锁定
-u 解锁账户
su 切换用户
su = su - root 切换到root用户
su - 用户A 切换到指定用户A(完全切换)
su 用户A 切换到用户A(不完全切换)
exit 关闭当前用户;退回到上一用户
修改主机名:
hostname 主机A 修改主机名为“主机A”;临时修改
hostname set-hostname 永久修改,刷新即可;
vim /etc/hostname 永久修改,但需要重启才能生效;
usermod 修改用户账户属性
usermod [选项] 命令
-u 修改用户的uid号
-d 修改用户家目录的位置
-e 修改用户账户的失效时间
-g 修改用户的基本组(私有组)
-G 修改用户的附加组(公共组)
-s 修改用户的登录shell
-L 锁定用户
-U 解锁用户
锁定用户的两种方法
1.passwd -l 锁密码
2.usermod -L 所账户
cp /etc/skel/.bashrc/ /home/test/
cp /etc/skel/.bash_profile/ /home/test
userdel 删除用户
userdel -r 删除用户及其家目录
配置文件
source 文件 读取、令文件立即生效
source /etc/profile 在当前bash环境下读取并执行 /etc/profile 中的命令
/etc/bashrc 用户账号的初始配置文件;是系统的全局配置文件,对所有用户都生效
包含一些系统级别的环境变量和默认的系统级别的 shell 配置
vim /etc/profile
alias cat="cat -n" 设置别名
:wq!
source /etc/profile 读取并执行
~/.bash_profile 该文件是用户登录时被执行的脚本
可以用来设置环境变量和一些常用的命令别名等信息。
通常用来为用户定制个性化的系统环境。
vim .bash_profile
alias cat="cat -n"
source .bash_profile
修改之后重新登录shell即可
~/.bashrc 该文件是在每个新的bash shell打开时被执行的脚本
通常用来定义一些用户自己的shell函数、命令别名、路径、颜色等等
vim .bashrc
alias cat="cat -n"
source .bashrc
/etc/bashrc 该文件是系统全局的bash配置文件,对所有用户都有效
可以在该文件中添加系统全局的环境变量、别名等信息
通常用来为所有用户定制系统级别的配置信息
这些配置文件是在不同的环境下被执行的,执行的顺序也不同。
通常在登录系统时:
系统会首先执行 /etc/profile 文件
然后 /.bash_profile 文件会被执行
然后再执行 /.bashrc 文件
而在退出bash shell时,~/.bash_logout文件会被执行
例:指定用户登陆时,以脚本的形式执行,弹出来提示语 "欢迎你!"
vim /test.sh
#!/bin/bash
echo "提示语!"
chmod 777 /test.sh
chown student:student /test.sh
vim /home/student/.bash_profile
里面的编辑内容:(跳转到最后一行,添加脚本)
添加一行:/tset.sh
groupadd 添加组
groupdel 删除组
gpasswd 添加、删除组账号文件
gpasswd [选项] 组账号名
gpasswd 添加、删除组成员
常用选项:
-a 向组内添加一个用户
-d 从组内删除一个用户
-M 定义组成员列表,以逗号分隔
cat /etc/gshadow 查看组账号密码
查询已经登录到主机的用户信息
w
who
users
文件/目录的权限和归属
访问权限
·读取r:允许查看文件内容、显示目录列表
·写入w:允许修改文件内容、允许在目录中新建、移动、删除文件或子目录
·可执行x:允许运行程序、切换目录
归属(所有权)
·属主:拥有该文件或目录的用户账号
·属组:拥有该文件或目录的组账号
chmod 修改文件的权限
u 文件的所有者
g 文件所在组
o 其他用户
a 所有用户
chmod 用户 修改 权限 文件名
chmod ugoa +-= rwx 文件名
chmod -R 递归修改
chown 设置文件和目录的归属
chown 所有者:所在组 文件名
chown root.root 123 更改文件123的所有者和所在组为root
chown root 123 只改所有者
chown .root 123 只改所在组
chown -R root aa 递归修改aa及其子目录和文件的所有者为root
chown -R aa/bb/cc 只对最后的文件cc生效
umask 决定创建目录和文件之后的默认权限
文件默认:666 目录默认:777;文件默认不给予执行权限
例:umask 555
touch ky30
例:cp /etc/passwd/ /opt/ky30 cp和两个文件所需的最低权限
cp 需要可执行x
passwd 需要可读r
ky30 需要可写w
实验题:
一、用户的家目录丢失后如何恢复?
1.先创建一个用户test,把它的家目录设置到/opt目录下
2.再修改用户test的家目录到/home/test
cat /opt/passwd 查看一下用户的信息,可以看到路径已经修改成功了;
但是home目录下却没有对应的目录;此时达到了题意“家目录丢失”
3.由于家目录丢失,所以并不能正常切换用户;下面我们来解决这个问题
首先在/home目录下创建一个test目录;
然后从/etc/skel/复制两个文件:(.bashrc和.bash_profile)test目录;
将test目录和复制过来的两个配置文件的所有者修改为test
再su - test 就可以正常切换用户test了
二、编辑初始配置文件,看一下效果
1.通过vim /etc/profile 进入初始配置文件
2.到最后一行输入alias ls='ls -l' 设置一个别名;然后:wq!保存退出
3.退出vim后;source /etc/profile 读取并执行刚配置过的文件
可以看到ls便可以长格式显示;切换到其他用户也同样生效
三、写一个脚本文件;使当切换指定用户时,出现欢迎词
1. 在/opt目录下创建一个test.sh文件
2. vim test.sh 进入这个文件;
输入#!/bin/bash
echo "欢迎你!"
保存退出;chmod 777 test.sh 赋予test.sh文件读、写、执行的权限;
创建一个用户student ;修改test.sh文件的所有者和所在组为student;
vim /home/student/.bash_profile 进入studen用户的配置文件,
在最后面添加路径 /opt/test.sh,保存退出
然后su - student 切换用户,出现欢迎词