1.用户 用户组
[root@localhost ~]# ll /usr/sbin/user*
-rwxr-x---. 1 root root 118192 Nov 6 2016 /usr/sbin/useradd
-rwxr-x---. 1 root root 80360 Nov 6 2016 /usr/sbin/userdel
-rws--x--x. 1 root root 40312 Jun 10 2014 /usr/sbin/userhelper
-rwxr-x---. 1 root root 113840 Nov 6 2016 /usr/sbin/usermod
-rwsr-xr-x. 1 root root 11288 Aug 4 2017 /usr/sbin/usernetctl
[root@localhost ~]# ll /usr/sbin/group*
-rwxr-x---. 1 root root 65480 Nov 6 2016 /usr/sbin/groupadd
-rwxr-x---. 1 root root 57016 Nov 6 2016 /usr/sbin/groupdel
-rwxr-x---. 1 root root 57064 Nov 6 2016 /usr/sbin/groupmems
-rwxr-x---. 1 root root 76424 Nov 6 2016 /usr/sbin/groupmod
[root@localhost ~]#
添加用户:
[root@localhost ~]# useradd kaiyue
[root@localhost ~]# id kaiyue
uid=1004(kaiyue) gid=1004(kaiyue) groups=1004(kaiyue)
[root@localhost ~]#
创建一个普通用户,默认创建这个名称的用户组kaiyue,且设置这个用户主组为kaiyue 且创建/home/kaiyue
/etc/passwd 存放用户
/etc/group 存放用户组
[root@localhost ~]# cd /home 进入home组
[root@localhost home]# ll
total 2
drwx------. 3 hadoop hadoop 78 Nov 10 00:05 hadoop
drwx------. 3 kaiyue kaiyue 78 Nov 10 18:10 kaiyue 已自动创建/home/kaiyue
所属用户 所属用户组
一个文件夹或者文件:drwx------. 权限
kaiyue kaiyue 用户和用户组
Nov 10 18:10 时间 ll -rt 按照时间排序
59 文件夹大小(理解错误)
删除用户:
[root@localhost home]# userdel kaiyue
[root@localhost home]# id kaiyue 查询用户
id: kaiyue: no such user 已经找不到了
[root@localhost home]# cat /etc/passwd | grep kaiyue 用户已经查不到了
[root@localhost home]# cat /etc/group | grep kaiyue 用户组已经查不到了
因为kaiyue该组只有kaiyue用户,当这个用户删除时,组会校验就他自己会自动删除,若组里还有其他用户则不会删除
[root@localhost home]# ll
total 2
drwx------. 3 hadoop hadoop 78 Nov 10 00:05 hadoop
drwx------. 3 1004 1004 78 Nov 10 18:10 kaiyue
重新创建:
[root@localhost home]# useradd kaiyue 重新创建用户kaiyue
useradd: warning: the home directory already exists. 提示home(家目录)已经存在
Not copying any file from skel directory into it.
Creating mailbox file: File exists
[root@localhost home]# id kaiyue
uid=1004(kaiyue) gid=1004(kaiyue) groups=1004(kaiyue)
也就是创建用户kaiyue,家目录已经在home目录里存在了,不需要创建家目录,但是kaiyue用户还是有的
模拟切换用户丢失样式
[root@localhost home]# cd /home/kaiyue
[root@localhost kaiyue]# ll
total 0
[root@localhost kaiyue]# ll -a
total 12
drwx------. 5 kaiyue kaiyue 107 Nov 10 19:28 .
drwxr-xr-x. 7 root root 73 Nov 10 18:10 ..
-rw-r--r--. 1 kaiyue kaiyue 18 Aug 3 2017 .bash_logout
-rw-r--r--. 1 kaiyue kaiyue 193 Aug 3 2017 .bash_profile
-rw-r--r--. 1 kaiyue kaiyue 231 Aug 3 2017 .bashrc
[root@localhost kaiyue]# rm -rf .bash* .bash* 模糊匹配 在当前文件夹删除所有的.bash开头文件
[root@localhost kaiyue]# ll -a
total 0
drwx------. 5 kaiyue kaiyue 51 Nov 10 19:43 .
drwxr-xr-x. 7 root root 73 Nov 10 18:10 .. 确认已经删除了.bash开头文件
打开新会话
[root@localhost ~]# su - kaiyue 切换用户kaiyue
Last login: Wed Nov 10 19:28:01 CST 2021 on pts/3
-bash-4.2$ 样式发生了改变,应该显示[kaiyue@localhost ~]$
如何恢复呢
[root@localhost kaiyue]# cp /etc/skel/.* ./ ./当前光标所处文件夹 相对路径
[root@localhost kaiyue]# cp /etc/skel/.* /home/kaiyue/ 也可以拷贝到/home/kaiyue/ 绝对路径
效果一样 不确定就用下面的绝对路径比较好 绝对路径/home/kaiyue 不能写出./home/kaiyue
[root@localhost kaiyue]# ll -a
total 12
drwx------. 5 kaiyue kaiyue 107 Nov 10 20:04 .
drwxr-xr-x. 7 root root 73 Nov 10 18:10 ..
-rw-r--r--. 1 root root 18 Nov 10 20:04 .bash_logout
-rw-r--r--. 1 root root 193 Nov 10 20:04 .bash_profile
-rw-r--r--. 1 root root 231 Nov 10 20:04 .bashrc 已经cp好,用户和用户组属于root
权限属于root
[root@localhost kaiyue]# chown kaiyue:kaiyue .bash*修正权限 用户:用户组 所有bash开头文件
[root@localhost kaiyue]# ll
total 0
[root@localhost kaiyue]# ll -a
total 12
drwx------. 5 kaiyue kaiyue 107 Nov 10 20:04 .
drwxr-xr-x. 7 root root 73 Nov 10 18:10 ..
-rw-r--r--. 1 kaiyue kaiyue 18 Nov 10 20:04 .bash_logout
-rw-r--r--. 1 kaiyue kaiyue 193 Nov 10 20:04 .bash_profile
-rw-r--r--. 1 kaiyue kaiyue 231 Nov 10 20:04 .bashrc 已经修正好
新建会话
[root@localhost ~]# su - kaiyue
Last login: Wed Nov 10 19:43:54 CST 2021 on pts/4
[kaiyue@localhost ~]$ 样式已恢复
添加kaiyue用户到另外一个组bigdata
[root@localhost kaiyue]# groupadd bigdata ---添加一个新组bigdata
[root@localhost kaiyue]# cat /etc/group | grep bigdata
bigdata:x:1005:
[root@localhost ~]# usermod -a -G bigdata kaiyue ---追加 bigdata组给用户
[root@localhost ~]# id kaiyue ---用于显示用户的ID,以及所属群组的ID
uid=1004(kaiyue) gid=1004(kaiyue) groups=1004(kaiyue),1005(bigdata)
主组是kaiyue groups追加了bigdata组
一个用户可以属于多个组 主组只有一个
修改bigdata为kaiyue的主组
[root@localhost ~]# usermod -g bigdata kaiyue
[root@localhost ~]# id kaiyue
uid=1004(kaiyue) gid=1005(bigdata) groups=1005(bigdata)
---修改主组成功,但丢失了kaiyue的组
将kaiyue组追加给kaiyue用户
[root@localhost ~]# usermod -a -G kaiyue kaiyue
[root@localhost ~]# id kaiyue
uid=1004(kaiyue) gid=1005(bigdata) groups=1005(bigdata),1004(kaiyue)
2.设置密码
给kaiyue用户 设置密码
[root@localhost ~]# passwd kaiyue ---passwd如果后面不跟用户,默认修改当前用户密码
Changing password for user kaiyue.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]#
3.切换用户
pwd 立刻得知您目前所在的工作目录的绝对路径名称
su kaiyue 切换用户
su - kaiyue 切换用户,改变环境变量
代表切换该用户的家目录,且执行环境变量文件
.bash_profile 环境变量文件su kaiyue不会执行
.bashrc 环境变量文件 su kaiyue su - kaiyue 都执行
两个会话演示区别
[root@localhost ~]# su kaiyue
[kaiyue@localhost root]$ pwd
/root ----权限受限,无法执行命令
[root@localhost ~]# su - kaiyue
Last login: Thu Nov 11 01:08:48 CST 2021 on pts/3
[kaiyue@localhost ~]$ pwd
/home/kaiyue
4.普通用户获取root的最大权限
vi /etc/sudoers
kaiyue ALL=(root) NOPASSWD:ALL
如图:
Connection 连接拒绝
Permission denied 权限受限
先创建测试文件
[root@localhost ~]# echo "www.baidu.com" >> 1.log
[root@localhost ~]# ls
1.log a anaconda-ks.cfg initial-setup-ks.cfg
[root@localhost ~]# cat 1.log
www.baidu.com
再验证sudo命令带和不带的效果
[root@localhost ~]# su kaiyue
[kaiyue@localhost root]$ ls
ls: cannot open directory .: Permission denied
[kaiyue@localhost root]$ sudo ls
1.log a anaconda-ks.cfg initial-setup-ks.cfg
[kaiyue@localhost root]$ cat 1.log
cat: 1.log: Permission denied
[kaiyue@localhost root]$ sudo cat 1.log
www.baidu.com
5./etc/passwd 重点讲
[root@localhost ~]# vi /etc/passwd 执行之后,尾行显示如下
jepson:x:1003:1003::/home/jepson:/bin/bash
kaiyue:x:1004:1005::/home/kaiyue:/bin/bash
尾巴修改为/sbin/nologin 或者 /bin/flase 无法登陆
用户存在
su - kaiyue 切不过去 就应该想到/etc/passwd中对应尾巴为/sbin/nologin 或者 /bin/flase 无法登陆
修改为/bin/bash 可以切过去
CDH 很多的组件
hafs组件 hdfs用户
su - hdfs
vi /etc/passwd 中对应修改为 /bin/bash
hbase组件 hbase用户
yarn组件 yarn用户
6.权限
错误 :Permission denied
chmod 是控制用户对文件的权限的命令
chown 用于设置文件所有者和文件关联组的命令
chmod -R 777 文件夹/文件路径
chown -R 用户:用户组 文件夹/文件路径
777 代表任意的用户用户组都有读写执行的权限
[root@localhost ~]# ll
total 12
-rw-r--r--. 1 root root 14 Nov 11 03:16 1.log
drwxr-xr-x. 7 root root 102 Nov 10 02:41 a
第一个字母:d 代表文件夹 - 代表文件 l 链接
rwxr-xr-x
r代表 read 4
w 代表write 2
x 代表执行 1
- 没权限 0
7=rwx
6=rw
5=rx
3=wx
rwx 第一组 7 代表文件或者文件夹的用户root,有读写执行的权限
r-x 第二组 5 代表文件或者文件夹的用户组root,有读和执行的权限
r-x 第三组 5 代表其他组的所属用户对这个文件或文件夹的权限:读和执行
比如以下案例:
[root@localhost ~]# mkdir b
[root@localhost ~]# pwd
/root
[root@localhost ~]# ll
total 12
-rw-r--r--. 1 root root 14 Nov 11 03:16 1.log
drwxr-xr-x. 7 root root 102 Nov 10 02:41 a
-rw-------. 1 root root 1817 Nov 9 19:07 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 Nov 11 05:34 b
-rw-r--r--. 1 root root 1848 Nov 9 19:17 initial-setup-ks.cfg
[root@localhost ~]# cp 1.log /root/b/
[root@localhost ~]# ll
total 12
-rw-r--r--. 1 root root 14 Nov 11 03:16 1.log
drwxr-xr-x. 7 root root 102 Nov 10 02:41 a
-rw-------. 1 root root 1817 Nov 9 19:07 anaconda-ks.cfg
drwxr-xr-x. 2 root root 19 Nov 11 05:35 b
-rw-r--r--. 1 root root 1848 Nov 9 19:17 initial-setup-ks.cfg
[root@localhost ~]# du -sh 1.log
4.0K 1.log
[root@localhost ~]# du -sh b
4.0K b
[root@localhost ~]#
案例:
/tmp 是一个系统产生临时文件的存放目录,同时每个用户都可以对他进行读写操作
[root@localhost /]# cd /tmp
[root@localhost tmp]#echo "www.baidu.com" >> 1.log
[root@localhost tmp]# ll
total 2288
-rw-r--r--. 1 root root 14 Nov 11 20:04 1.log
[root@localhost tmp]# su - jepson
[jepson@localhost ~]$ cd /tmp
[jepson@localhost tmp]$ cat 1.log
www.baidu.com
[jepson@localhost tmp]$ ll
total 2288
-rw-r--r--. 1 root root 14 Nov 11 20:04 1.log
jepson用户只有读的权限,现在给jepson用户加一个写(w)的权限
[jepson@localhost tmp]$ vi /tmp/1.log ----第一次编辑,可以编辑,保存失败,ctrl+z中断操作
因为是ctrl+z中断操作的,所以会产生swp文件,在编辑退出是输入q!,强制退出,不会产生swp文件
姑且以ctrl+z中断为例子
第二次编辑,先给jepson添加一个写的权限
新建会话,切换到root,给jepson添加一个写的权限
[root@localhost tmp]# chmod 646 1.log
[root@localhost tmp]#
total 12
-rw-r--rw-. 1 root root 14 Nov 11 03:16 1.log
drwxr-xr-x. 7 root root 102 Nov 10 02:41 a
切换到会话jepson登录的会话,尝试编辑
[jepson@localhost ~]$ vi /tmp/1.log
提示如下:
E325: ATTENTION
Found a swap file by the name "/tmp/.1.log.swp" ---- .1.log.swp 隐藏的缓存文件
wq!的时候会提示:
"/tmp/1.log" E212: Can't open file for writing
Press ENTER or type command to continue ----无法保存,ctrl+z中断操作
/tmp/.1.log.swp 此文件需要删除之后 ,才能编辑1.log
[root@localhost ~]# cd /tmp
[jepson@localhost tmp]$ rm -f .1.log.swp 或者 rm -f /tmp/.1.log.swp
[jepson@localhost tmp]$ vi /tmp/1.log 我添加了两行2
[jepson@localhost tmp]$ cat 1.log
www.baidu.com
222222222222
222222222222 ------修改成
给jepson追加用户组root,然后通过修改用户组的权限,给jepson添加一个写的权限
将1.log文件的权限修改为初始设置的权限 ---撤回第三组之前赋予的写的权限
[root@localhost tmp]# chmod 644 1.log
切换jepson登录的会话进行编辑,添加一行3
[jepson@localhost tmp]$ vi /tmp/1.log
"1.log" E212: Can't open file for writing -----已经不能写入了
Press ENTER or type command to continue
切换root登录的会话
[root@localhost tmp]# usermod -a -G root jepson ----将jepson用户添加到root用户组
[root@localhost tmp]# id jepson ----查询一下
uid=1003(jepson) gid=1003(jepson) groups=1003(jepson),0(root) ----已经添加好了
[root@localhost tmp]# ll
total 3048
-rw-rw-r--. 1 jepson jepson 40 Nov 12 00:18 !
-rw-r--r--. 1 root root 40 Nov 12 00:18 1.log ----root 用户组只有读(r)的权限
[root@localhost tmp]# chmod 664 /tmp/1.log ----给用户组追加一个写(w)的权限
[root@localhost tmp]# ll ----查看一下
total 3048
-rw-rw-r--. 1 jepson jepson 40 Nov 12 00:18 !
-rw-rw-r--. 1 root root 40 Nov 12 00:18 1.log -----已经修改好了
切换jepson的会话,验证一下写(w)的权限,编辑1.log,添加一行3
[jepson@localhost tmp]$ vi /tmp/1.log
提示:
"1.log" E212: Can't open file for writing -----还不能写入
Press ENTER or type command to continue
我重新登录一下jepson用户,再测试
[jepson@localhost ~]$ vi /tmp/1.log
[jepson@localhost ~]$ cat /tmp/1.log
www.baidu.com
222222222222
222222222222
333333333333 -----保存成功
注意:修改用户组的权限,该用户组的用户需要重新登录权限才能生效
7.查看文件、文件夹大小
查看文件大小使用:
ll
du -sh xxx.log
查看文件夹大小使用:
du -sh yyy
8.搜索 find
history 历史记录
ps -ef 查看进程
top 系统情况
某个大数据组件hadoop,部署在哪里呢?
[root@localhost tmp]# cd /usr/local
[root@localhost local]# mkdir xxxhadoopxxx
[root@localhost local]# mkdir hadoop
[root@localhost local]# find / -name '*hadoop*'
[root@localhost local]# find /usr/local -name '*hadoop*'
find 路径 -name '*xxx* ' *为模糊查询