目标
- 整理 用户用户组
- 整理
sudo
命令 - 整理 用户无法登录
passwd
文件 - 权限
rwx------ chmod chown
案例 - 其他命令
- su find du
等
用户和用户组
针对用户的相关文件在:/usr/sbin/user*
[root@aliyun ~]# ll /usr/sbin/user* |
针对用户组的相关文件在:/usr/sbin/group*
[root@aliyun ~]# ll /usr/sbin/group* |
可以打印出PATH
路径,就会发现/user/sbin
已经被添加在了PATH
环境中了,可以从主机的任意位置使用这些命令
[root@aliyun ~]# echo $PATH |
需求:
1. 添加hadoop
用户
2. 删除hadoop
用户
3. 重新创建hadoop
用户,模拟用户丢失样式,并修正样式
4. 创建bigdata
用户组,并把hadoop
用户添加进这个用户组
5. 修改bigdata
为hadoop
的主组
添加
hadoop
用户[root@aliyun ~]# useradd hadoop
[root@aliyun ~]# id hadoop
uid=1000(hadoop) gid=1000(hadoop) groups=1000(hadoop)删除
hadoop
用户使用命令帮助查看
userdel
命令[root@aliyun ~]# userdel --help
Usage: userdel [options] LOGIN
Options:
-f, --force force some actions that would fail otherwise
e.g. removal of user still logged in
or files, even if not owned by the user
-h, --help display this help message and exit
-r, --remove remove home directory and mail spool
-R, --root CHROOT_DIR directory to chroot into
-Z, --selinux-user remove any SELinux user mapping for the user会发现
-r
选项是删除家目录在这里我们选择删除用户的时候不删除家目录
[root@aliyun ~]# userdel hadoop
[root@aliyun ~]# id hadoop
id: hadoop: no such user
[root@aliyun home]# cat /etc/passwd | grep ruoze
[root@aliyun home]# cat /etc/group | grep ruoze因为
hadoop
该组只有hadoop
用户,当这个用户删除时,组会校验就他自己,会自动删除重新创建
hadoop
用户,模拟用户丢失样式,并修正样式创建
hadoop
用户[root@aliyun ~]# useradd hadoop
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Creating mailbox file: File exists
[root@aliyun ~]# id hadoop
uid=1000(hadoop) gid=1000(hadoop) groups=1000(hadoop)模拟用户丢失样式
[hadoop@aliyun ~]$ ll -a .bash*
-rw-r--r-- 1 hadoop hadoop 18 Dec 7 2016 .bash_logout
-rw-r--r-- 1 hadoop hadoop 193 Dec 7 2016 .bash_profile
-rw-r--r-- 1 hadoop hadoop 231 Dec 7 2016 .bashrc
[hadoop@aliyun ~]$ rm -rf .bash*[root@aliyun ~]# su - hadoop #切换用户
Last login: Sun Nov 17 09:29:10 CST 2019 on pts/0
-bash-4.2$ #用户样式丢失修正样式 (这里只有root权限才可以拷贝)
[root@aliyun ~]# ll -a /etc/skel/
total 20
drwxr-xr-x. 2 root root 4096 Aug 18 2017 .
drwxr-xr-x. 81 root root 4096 Nov 17 09:27 ..
-rw-r--r-- 1 root root 18 Dec 7 2016 .bash_logout
-rw-r--r-- 1 root root 193 Dec 7 2016 .bash_profile
-rw-r--r-- 1 root root 231 Dec 7 2016 .bashrc[root@aliyun ~]# cp /etc/skel/ .bash* /home/hadoop/
cp: omitting directory ‘/etc/skel/’[root@aliyun ~]# su - hadoop #样式回来了
Last login: Sun Nov 17 09:33:39 CST 2019 on pts/2
[hadoop@aliyun ~]$创建
bigdata
用户组,并把hadoop
用户添加进这个用户组[root@aliyun ~]# groupadd bigdata
[root@aliyun ~]# usermod -a -G bigdata hadoop
[root@aliyun ~]# id hadoop
uid=1000(hadoop) gid=1000(hadoop) groups=1000(hadoop),1001(bigdata)20200309更新:
mysqladmin
的属组一里加入hadoop
用户usermod -a -G hadoop mysqladmin
修改
bigdata
为hadoop
的属组查看命令帮助发现有一条命令是改变用户的属组的
-g, --gid GROUP force use GROUP as new primary group
[root@aliyun ~]# usermod -g bigdata hadoop #强制改变属组
[root@aliyun ~]# id hadoop
uid=1000(hadoop) gid=1001(bigdata) groups=1001(bigdata)
sudo命令
sudo
命令是让普通用户具备root
用户的权限
添加普通用户具备root
权限的文件是:/etc/sudoers
90 ## Allow root to run any commands anywhere |
用户无法登录 修改passwd
文件
在模拟用户无法登陆之前,先说明管理用户信息的文件是:/etc/passwd
[root@aliyun ~]# tail -3 /etc/passwd |
需要注意的是最后一个冒号后面是用户的登陆权限
需求:
1. 模拟用户的登录权限是/bin/false
,修改,并登录
2. 模拟用户的登录权限是/sbin/nologin
,修改,并登录
1. 模拟用户的登录权限是/bin/false
,修改,并登录
模拟用户的登录权限是
/bin/false
[root@aliyun ~]# cat /etc/passwd | grep hadoop
hadoop:x:1000:1001::/home/hadoop:/bin/false尝试登录
[root@aliyun ~]# su - hadoop
Last login: Sun Nov 17 09:37:25 CST 2019 on pts/2
[root@aliyun ~]# #登录失败查看用户文件权限,并修改
[root@aliyun ~]# cat /etc/passwd | grep 'hadoop'
hadoop:x:1000:1001::/home/hadoop:/bin/bash再次登录
[root@aliyun ~]# su - hadoop
Last login: Sun Nov 17 09:56:43 CST 2019 on pts/1
[hadoop@aliyun ~]$ #登录成功
2. 模拟用户的登录权限是/sbin/nologin
,修改,并登录
模拟用户的登录权限是
/sbin/nologin
[root@aliyun ~]# cat /etc/passwd | grep hadoop
hadoop:x:1000:1001::/home/hadoop:/sbin/nologin尝试登录
[root@aliyun ~]# su - hadoop
Last login: Sun Nov 17 09:59:35 CST 2019 on pts/1
This account is currently not available.
[root@aliyun ~]# #登录失败查看用户文件权限,并修改
[root@aliyun ~]# cat /etc/passwd | grep 'hadoop'
hadoop:x:1000:1001::/home/hadoop:/bin/bash再次登录
[root@aliyun ~]# su - hadoop
Last login: Sun Nov 17 09:56:43 CST 2019 on pts/1
[hadoop@aliyun ~]$ #登录成功
rwx------
chmod
chown
案例
查看文件或者目录的读写执行权限
[root@aliyun ~]# ll test.txt |
rw-
第一组 6 代表文件或文件夹的用户root
,读写
r--
第二组 4 代表文件或文件夹的用户组root
,读
r--
第三组 4 代表其他组的所属用户对这个文件或文件夹的权限: 读
chmod
命令用来修改文件或者目录的读写执行权限,加 -R
表示递归修改
chown
命令用来修改文件或者目录的属主和属组,加 -R
表示递归修改
需求:
1. 修改 test.tx
t 文件的属组为bigdata
2. test.txt
文件的权限为属主读写执行,属组读执行
修改
test.txt
文件的属组为bigdata
[root@aliyun ~]# chown -R :bigdata test.txt
[root@aliyun ~]# ll test.txt
-rw-r--r-- 1 root bigdata 12 Nov 12 23:36 test.txt修改
test.txt
文件的权限为属主可读写执行,属组可读执行,其他可读[root@aliyun ~]# chmod -R 754 test.txt
[root@aliyun ~]# ll test.txt
-rwxr-xr-- 1 root bigdata 12 Nov 12 23:36 test.txt注意:
-R
参数,目前可认为只有chown
和chmod
命令有,其他都为-r
其他命令 - su
find
du
su
命令用来切换用户,使用su -
用户名的方式,切换的时候把环境也切换了
[root@aliyun ~]# su - hadoop #su - 用户名 |
需要注意 .bash_profile
和 .bashrc
两个文件中的环境生效的区别
.bash_profile文件 su ruoze不会执行,su - ruoze 都执行 |
find
命令用来查找文件,在不确定文件名的情况下使用模糊匹配
[hadoop@aliyun root]$ find /home -name '*hadoop*' |
du
命令用来查看文件或者目录大小
虽然 ls -l 也可以查看文件或者目录的大小,但是 ls -l
显示的目录大小并不准确
[root@aliyun ~]# ll -h size.log/ |
再使用du -sh
查看一次
[root@aliyun ~]# du -sh size.log/ |
最后进入size.log
文件夹查看文件的大小
[root@aliyun log]# du -sh lastlog |