Linux 用户、权限、搜索

Posted by Jackson on 2017-07-10

1.用户和用户组的查看

用户命令:ll /usr/sbin/user*

1
2
3
4
useradd
userdel
usermod
usernetctl

用户组命令: ll /usr/sbin/group*

1
2
3
4
groupadd	
groupdel
groupmod
groupmems
1
2
3
4
5
6
7
8
9
10
11
12
[root@localhost sbin]# ll /usr/sbin/user*

-rwxr-x---. 1 root root 118232 Oct 31 2018 /usr/sbin/useradd
-rwxr-x---. 1 root root 80400 Oct 31 2018 /usr/sbin/userdel
-rwxr-x---. 1 root root 113856 Oct 31 2018 /usr/sbin/usermod
-rwsr-xr-x. 1 root root 11376 Oct 31 2018 /usr/sbin/usernetctl
[root@localhost sbin]# ll /usr/sbin/group*
-rwxr-x---. 1 root root 65520 Oct 31 2018 /usr/sbin/groupadd
-rwxr-x---. 1 root root 57080 Oct 31 2018 /usr/sbin/groupdel
-rwxr-x---. 1 root root 57120 Oct 31 2018 /usr/sbin/groupmems
-rwxr-x---. 1 root root 76432 Oct 31 2018 /usr/sbin/groupmod
[root@localhost sbin]#

2.添加用户:useradd hadoop

1
2
3
4
5
6
7
8
[root@localhost sbin]# useradd hadoop

[root@localhost sbin]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
。。。。。。。
hadoop:x:1000:1000::/home/hadoop:/bin/bash

刚添加的hadoop的用户的uid

1
2
3
4
5
6
7
8
9
[root@localhost sbin]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
。。。。。
hadoop:x:1000:
1
2
3
4
[root@localhost sbin]# id hadoop
uid=1000(hadoop) gid=1000(hadoop) groups=1000(hadoop)
用户id 用户主组id 用户组id
[root@localhost sbin]#

创建一个用户,默认会创建该用户的同名用户组,且设置这个用户的主组,并且创建/home/hadoop用户目录

1
2
/etc/group		存储用户组文件夹
/etc/passwd 存储创建的用户的文件夹

进入用户家目录

1
2
3
4
5
6
7
8
9
[root@localhost hadoop]# cd /home/hadoop/
[root@localhost hadoop]# ll -a
total 12
drwx------ 2 hadoop hadoop 62 Nov 29 08:04 .
drwxr-xr-x. 3 root root 20 Nov 29 08:04 ..
-rw-r--r-- 1 hadoop hadoop 18 Oct 31 2018 .bash_logout
-rw-r--r-- 1 hadoop hadoop 193 Oct 31 2018 .bash_profile
-rw-r--r-- 1 hadoop hadoop 231 Oct 31 2018 .bashrc
所属用户 所属用户组

使用ll查看文件夹的大小是错误的,可以使用du -sh 来查看问价的具体大小

3.新建和删除一个用户所做的事情

新建用户:

  • a.在用户文件(/etc/passwd) 添加用户信息
  • b.在用户组文件(/etc/group)添加用户组信息
  • c.在/home/hadoop添加用户文件夹

删除用户:

  • a.在用户文件中(/etc/passwd)将用户的信息删除
  • b.当用户组中只有该用户一个用户时候,就会将这个用户删除,组会自动校验
  • c.删除用户并不会删除/home下面的用户的文件夹
1
2
3
4
[root@localhost ~]# cat /etc/passwd | grep hadoop
hadoop:x:1000:1000::/home/hadoop:/bin/bash
[root@localhost ~]# cat /etc/group | grep hadoop
hadoop:x:1000:

模拟用户缺失样式:
当将用户目录下面的:.bash_logout .bash_profile .bashrc
此三个文件删除之后,再进行切换用户会丢失样式,此时我们可以将其他用户下面的这三个文件拷贝到该用户的家目录下面,然后修正此三个文件的用户和用户组,也可以将/etc/skel 下面的此三个文件拷贝到该用户目录下面。

操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[root@localhost ~]# id ruoze
uid=1000(ruoze) gid=1000(ruoze) groups=1000(ruoze)
[root@localhost ~]# cd /home/
[root@localhost home]# ll
total 0
drwx------. 4 ruoze ruoze 112 Nov 28 11:12 ruoze
[root@localhost home]# cd ruoze/
[root@localhost ruoze]# ll
total 0
[root@localhost ruoze]# ll -a
total 16
drwx------. 4 ruoze ruoze 112 Nov 28 11:12 .
drwxr-xr-x. 3 root root 19 Nov 28 11:11 ..
-rw-------. 1 ruoze ruoze 5 Nov 28 11:12 .bash_history
-rw-r--r--. 1 ruoze ruoze 18 Oct 31 2018 .bash_logout
-rw-r--r--. 1 ruoze ruoze 193 Oct 31 2018 .bash_profile
-rw-r--r--. 1 ruoze ruoze 231 Oct 31 2018 .bashrc
drwxrwxr-x. 3 ruoze ruoze 18 Nov 28 11:12 .cache
drwxrwxr-x. 3 ruoze ruoze 18 Nov 28 11:12 .config
[root@localhost ruoze]# rm -f .bash*
[root@localhost ruoze]# ll -a
total 0
drwx------. 4 ruoze ruoze 35 Nov 28 11:14 .
drwxr-xr-x. 3 root root 19 Nov 28 11:11 ..
drwxrwxr-x. 3 ruoze ruoze 18 Nov 28 11:12 .cache
drwxrwxr-x. 3 ruoze ruoze 18 Nov 28 11:12 .config
[root@localhost ruoze]# su - ruoze
Last login: Thu Nov 28 11:12:37 CST 2019 on tty1
-bash-4.2$

重新将问价拷贝回去,样式回复:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@localhost ruoze]# cp /etc/skel/.* /home/ruoze/
cp: omitting directory ‘/etc/skel/.’
cp: omitting directory ‘/etc/skel/..’
[root@localhost ruoze]# ll -a
total 12
drwx------. 4 ruoze ruoze 91 Nov 28 11:17 .
drwxr-xr-x. 3 root root 19 Nov 28 11:11 ..
-rw-r--r--. 1 root root 18 Nov 28 11:17 .bash_logout
-rw-r--r--. 1 root root 193 Nov 28 11:17 .bash_profile
-rw-r--r--. 1 root root 231 Nov 28 11:17 .bashrc
drwxrwxr-x. 3 ruoze ruoze 18 Nov 28 11:12 .cache
drwxrwxr-x. 3 ruoze ruoze 18 Nov 28 11:12 .config
[root@localhost ruoze]# su - ruoze
Last login: Thu Nov 28 11:14:26 CST 2019 on pts/0
[ruoze@localhost ~]$
[ruoze@localhost ~]$

将hadoop用户添加到另外一个组bigdata:

1
2
3
groupadd bigdata
usermod -a -G bigdata hadoop
id hadoop

操作:

1
2
3
4
5
6
7
8
9
10
11
a.创建bigdata用户组
[root@localhost /]# groupadd bigdata
[root@localhost /]# cat /etc/group | grep bigdata
bigdata:x:1001:
[root@localhost /]#
b.将ruoze添加到bigdata用户组里面
[root@localhost /]# usermod -a -G bigdata ruoze
[root@localhost /]# id ruoze
uid=1000(ruoze) gid=1000(ruoze) groups=1000(ruoze),1001(bigdata)
[root@localhost /]#
c.将bigdata设置为若泽的主组

查看命令帮助:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[root@localhost /]# usermod --help
Usage: usermod [options] LOGIN

Options:
-c, --comment COMMENT new value of the GECOS field
-d, --home HOME_DIR new home directory for the user account
-e, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE
-f, --inactive INACTIVE set password inactive after expiration
to INACTIVE
-g, --gid GROUP force use GROUP as new primary group
-G, --groups GROUPS new list of supplementary GROUPS
-a, --append append the user to the supplemental GROUPS
mentioned by the -G option without removing
him/her from other groups
-h, --help display this help message and exit
-l, --login NEW_LOGIN new value of the login name
-L, --lock lock the user account
-m, --move-home move contents of the home directory to the
new location (use only with -d)
-o, --non-unique allow using duplicate (non-unique) UID
-p, --password PASSWORD use encrypted password for the new password
-R, --root CHROOT_DIR directory to chroot into
-s, --shell SHELL new login shell for the user account
-u, --uid UID new UID for the user account
-U, --unlock unlock the user account
-Z, --selinux-user SEUSER new SELinux user mapping for the user account

[root@localhost /]# usermod -g bigdata ruoze
[root@localhost /]# id ruoze
uid=1000(ruoze) gid=1001(bigdata) groups=1001(bigdata)
[root@localhost /]#

4.设置密码:

1
2
3
4
5
6
7
[root@localhost /]# passwd ruoze
Changing password for user ruoze.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost /]#

5.切换用户:

  • su ruoze 切换到ruoze用户
  • su - ruoze 切换到ruoze用户,并且执行环境变量
  • .bash_profile su ruoze 不会执行 ,su - ruoze 会执行该文件
  • .bashrc su ruoze 和 su - ruoze 都会执行该文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@localhost home]# cd /home/ruoze/
[root@localhost ruoze]# ll
total 0
[root@localhost ruoze]# ll -a
total 16
drwx------. 4 ruoze bigdata 112 Nov 28 11:19 .
drwxr-xr-x. 3 root root 19 Nov 28 11:11 ..
-rw-------. 1 ruoze bigdata 5 Nov 28 11:19 .bash_history
-rw-r--r--. 1 root root 18 Nov 28 11:17 .bash_logout
-rw-r--r--. 1 root root 193 Nov 28 11:17 .bash_profile
-rw-r--r--. 1 root root 231 Nov 28 11:17 .bashrc
drwxrwxr-x. 3 ruoze bigdata 18 Nov 28 11:12 .cache
drwxrwxr-x. 3 ruoze bigdata 18 Nov 28 11:12 .config
[root@localhost ruoze]# su ruoze
[ruoze@localhost ~]$ exit
exit
[root@localhost ruoze]# su - ruoze
Last login: Thu Nov 28 12:39:58 CST 2019 on pts/0
[ruoze@localhost ~]$ exit
logout
[root@localhost ruoze]#

5.普通用户获取root用户最大权限

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@localhost ruoze]# vim /etc/sudoers
[root@localhost ruoze]# cd ~
[root@localhost ~]# ll
total 4
-rw-------. 1 root root 1276 Nov 28 11:04 anaconda-ks.cfg
[root@localhost ~]# echo "www.ruoze.com" >>rz.log
[root@localhost ~]# ll
total 8
-rw-------. 1 root root 1276 Nov 28 11:04 anaconda-ks.cfg
-rw-r--r--. 1 root root 14 Nov 28 13:31 rz.log
[root@localhost ~]# su ruoze
[ruoze@localhost root]$ ll
ls: cannot open directory .: Permission denied
[ruoze@localhost root]$ sudo ll
sudo: ll: command not found
[ruoze@localhost root]$ sudo ls -l
total 8
-rw-------. 1 root root 1276 Nov 28 11:04 anaconda-ks.cfg
-rw-r--r--. 1 root root 14 Nov 28 13:31 rz.log
[ruoze@localhost root]$ ls -l
ls: cannot open directory .: Permission denied
[ruoze@localhost root]$ cat rz.log
cat: rz.log: Permission denied
[ruoze@localhost root]$ sudo cat rz.log
www.ruoze.com
[ruoze@localhost root]$

6./etc/passwd

修改配置文件ruoze 用户最后的地方为以下两种情况

1
2
ruoze:x:1002:1003::/home/ruoze:/bin/false    
ruoze:x:1002:1003::/home/ruoze:/sbin/nologin

进行用户切换,发现切换不了用户
su - ruoze

对应CDH有很多的组件都有自己的用户
hdfs 有自己的用户 hdfs
hbase 有自己的用户 hbase
出现问题时候,我们可以进行修改对应组件的/bin/bash

7.权限问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
ERROR:Permission denied
chmod -R 777 文件/文件夹 修改文件或者文件夹的权限
chown -R 用户:用户组 文件夹/文件 修改文件或者文件夹的所有者

***** -R 参数基本上只有在这两个地方用到了

-rw-r--r--. 1 root root 14 Nov 28 13:31 rz.log
第一个字母含义:-代表文件 d 代表文件夹 l 代表链接
r: read 4
w: write 2
x: 执行 1
-: 无权限 0

rwx = 7
rw = 6
rx = 5
wx = 3

-rwx-rw--r--. 1 root root 14 Nov 28 13:31 rz.log
rwx 第一组 代表root用户对此文件或者文件夹的权限
rw 第二组 代表root用户组对此文件或文件夹的权限
r 第三组 代表其他组所属的用户对此文件或者文件夹的权限

8.查看文件大小

使用ll查看文件夹的大小可能不准确,可以使用du -sh 查看文件或者文件夹
对于正在滚动的文件可以先对其进行备份 cp rz.log rz.log.bak

9.文件权限案例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
[root@localhost tmp]# cd /tmp/	进入tmp文件夹
[root@localhost tmp]# ll
-rw-r--r-- 1 root root 18 Nov 28 16:25 apache.log

[root@localhost tmp]# su - ruoze

[ruoze@localhost ~]$ cd /tmp/
[ruoze@localhost tmp]$ ll
-rw-r--r-- 1 root root 18 Nov 28 16:25 apache.log

测试第三组权限
[ruoze@localhost tmp]$ vim apache.log
使用ctrl + z强制退出之后产生交换文件

[1]+ Stopped vim apache.log
[ruoze@localhost tmp]$ ll -a
drwxrwxrwt. 9 root root 255 Nov 28 16:27 .
dr-xr-xr-x. 17 root root 224 Nov 28 11:03 ..
-rw-r--r-- 1 root root 18 Nov 28 16:25 apache.log
-rw------- 1 ruoze bigdata 12288 Nov 28 16:27 .apache.log.swp

修改文件的权限为646,使用ruoze用户进行编辑保存成功
[root@localhost ~]# id ruoze
uid=1000(ruoze) gid=1001(bigdata) groups=1001(bigdata)
[root@localhost ~]# cd /tmp/
[root@localhost tmp]# ll
-rw-r--r-- 1 root root 18 Nov 28 16:25 apache.log

[root@localhost tmp]# chmod 646 apache.log
[root@localhost tmp]# ll
-rw-r--rw- 1 root root 18 Nov 28 16:25 apache.log

[root@localhost tmp]# su - ruoze
Last login: Thu Nov 28 16:26:44 CST 2019 on pts/0
[ruoze@localhost ~]$ cd /tmp/
[ruoze@localhost tmp]$ vim apache.log ===保存成功

测试第二组权限:先将ruoze用户添加到root用户组,再次使用ruoze用户编辑
[root@localhost tmp]# id ruoze
uid=1000(ruoze) gid=1001(bigdata) groups=1001(bigdata),0(root)

[root@localhost tmp]# ll
-rw-r--r-- 1 root root 35 Nov 28 16:33 apache.log

[root@localhost tmp]# su ruoze
[ruoze@localhost tmp]$ vim apache.log ==>编辑失败
[ruoze@localhost tmp]$ exit;
exit
[root@localhost tmp]# chmod 646 apache.log
[root@localhost tmp]# chmod 664 apache.log
[root@localhost tmp]# ll
-rw-rw-r-- 1 root root 35 Nov 28 16:33 apache.log
[root@localhost tmp]# su ruoze
[ruoze@localhost tmp]$ vim apache.log ==>编辑成功

10.搜索find

1
2
3
4
5
6
7
8
9
10
11
12
13
history 查看历史记录
ps -ef 查看进程
top 查看系统情况

[root@localhost tmp]# mkdir xxxflinkxxx

[root@localhost tmp]# find / -name '*flink*'
/sys/devices/pci0000:00/0000:00:11.0/0000:02:01.0/net/ens33/iflink
/sys/devices/virtual/net/lo/iflink
/tmp/xxxflinkxxx

[root@localhost tmp]# find /tmp -name '*flink*'
/tmp/xxxflinkxxx

11.对用户进行修改用户和用户组

1
usermod -g ruoze -G ruoze,bigdata,jespjon ruoze